curl --request GET \
--url https://api.everhour.com/team/users \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.everhour.com/team/users"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.everhour.com/team/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.everhour.com/team/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.everhour.com/team/users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.everhour.com/team/users")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.everhour.com/team/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 1304,
"email": "john.bender@example.com",
"name": "John Bender",
"role": "admin",
"status": "active",
"type": "employee",
"createdAt": "2016-08-13 15:27:30",
"isEmailVerified": true,
"groups": [
{
"id": 1,
"name": "Admins"
}
],
"permissions": {
"billingBudgets": "write",
"userLimits": "write",
"costs": "write",
"invoices": "write",
"expenses": "write"
},
"timeTrackingPolicy": {
"allowTimeWithoutTask": true,
"allowManualTimeInput": true,
"allowFutureTime": false,
"allowCompletedTaskTime": true,
"allowTimeWithoutEstimate": true,
"allowExceedEstimate": false,
"allowManageEstimates": true,
"lockTimeAfter": 2,
"lockTimePeriod": "days"
},
"favorite": false,
"headline": "CEO",
"phone": "+1 555 0100",
"externalId": "M-3490",
"avatarUrl": "https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d07ca81.jpg",
"avatarUrlLarge": "https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d10830c.jpg",
"capacity": 144000,
"cost": 2500,
"costHistory": null,
"resourcePlannerAccess": {
"viewMine": false,
"editMine": false,
"viewAll": false,
"editAll": false
}
}
]Get All Users
List all members of the team, including removed ones. Each member comes back with profile, group, permission, and time tracking policy fields. What you see depends on your own access: cost returns 0 unless you have the costs permission, and permissions returns an empty array ([]) for members with no elevated access.
Supports query for name search and limit for pagination — see Pagination.
curl --request GET \
--url https://api.everhour.com/team/users \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.everhour.com/team/users"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.everhour.com/team/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.everhour.com/team/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.everhour.com/team/users"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.everhour.com/team/users")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.everhour.com/team/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 1304,
"email": "john.bender@example.com",
"name": "John Bender",
"role": "admin",
"status": "active",
"type": "employee",
"createdAt": "2016-08-13 15:27:30",
"isEmailVerified": true,
"groups": [
{
"id": 1,
"name": "Admins"
}
],
"permissions": {
"billingBudgets": "write",
"userLimits": "write",
"costs": "write",
"invoices": "write",
"expenses": "write"
},
"timeTrackingPolicy": {
"allowTimeWithoutTask": true,
"allowManualTimeInput": true,
"allowFutureTime": false,
"allowCompletedTaskTime": true,
"allowTimeWithoutEstimate": true,
"allowExceedEstimate": false,
"allowManageEstimates": true,
"lockTimeAfter": 2,
"lockTimePeriod": "days"
},
"favorite": false,
"headline": "CEO",
"phone": "+1 555 0100",
"externalId": "M-3490",
"avatarUrl": "https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d07ca81.jpg",
"avatarUrlLarge": "https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d10830c.jpg",
"capacity": 144000,
"cost": 2500,
"costHistory": null,
"resourcePlannerAccess": {
"viewMine": false,
"editMine": false,
"viewAll": false,
"editAll": false
}
}
]Authorizations
Query Parameters
Filter users by name or email.
Maximum number of users to return.
Response
OK
1304
"john.bender@example.com"
"John Bender"
admin, supervisor, member, member_limited "admin"
active, invited, pending, removed "active"
employee, contractor "employee"
Format: Y-m-d H:i:s
"2016-08-13 15:27:30"
true
Groups the member belongs to. Empty array when the member is in no group.
Show child attributes
Show child attributes
Areas the user can access beyond the base role. A key is present only when the user has access to that area. Users with no elevated access return an empty array ([]) instead of an object — treat both as "no permissions".
Show child attributes
Show child attributes
Time tracking rules that apply to the user. Team defaults unless the team overrides them for this member.
Show child attributes
Show child attributes
Whether you marked this member as a favorite.
false
Job title. Empty string when not set.
"CEO"
Omitted when not set.
"+1 555 0100"
Employee ID from your own system, set on the member profile. Omitted when not set.
"M-3490"
Omitted when the member has no avatar.
"https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d07ca81.jpg"
Omitted when the member has no avatar.
"https://d36887svjhykt4.cloudfront.net/users/1304-15ea197d10830c.jpg"
Weekly capacity in seconds.
144000
Hourly cost in cents. Returns 0 when you lack the costs permission.
2500
Past hourly cost values. null when the member has no cost history or you lack the costs permission.
null
Resource planner access flags. Returned for the authenticated user.
Show child attributes
Show child attributes
