curl --request GET \
--url https://api.everhour.com/users/me \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.everhour.com/users/me"
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/users/me', 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/users/me",
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/users/me"
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/users/me")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.everhour.com/users/me")
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
},
"timezone": 3,
"apiKey": "<string>",
"isSuspended": false,
"hasPassword": true,
"dateFormat": 1,
"dateTimeFormat": 12,
"timeFormat": 1,
"exportTimeFormat": 4,
"exportCsvSeparator": 1,
"timeRounding": 1,
"timeRoundingDirection": "nearest",
"startPage": "time",
"activityMode": "detailed",
"country": "<string>",
"timeOffPermissions": {
"read": "all",
"write": "request"
},
"notificationSettings": {},
"clockOutSettings": {},
"accounts": [
{
"id": "as:1185184465308295",
"platform": "as",
"name": "John Bender",
"email": "john.bender@example.com",
"status": "active",
"createdAt": "2020-07-20 09:39:09"
}
],
"team": {
"id": 2,
"name": "Acme Inc",
"createdAt": "2016-08-13 18:10:36",
"logoUrl": "https://d36887svjhykt4.cloudfront.net/teams/2-16a7d93a236d9b.jpg",
"owner": {
"id": 7,
"name": "Jane Doe",
"headline": "CPO"
},
"workdays": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"beginningOfWeek": 1,
"workHoursFrom": "09:00",
"workHoursTo": "18:00",
"workTimeMin": 23400,
"workTimeMax": 30600,
"allowFutureTracking": false,
"lockTimeEnabled": true,
"lockTimeAfter": 2,
"lockTimePeriod": "days",
"defaultRate": 5000,
"defaultCost": 2500,
"defaultCapacity": 144000,
"currencyDetails": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"billing": {
"plan": "team_monthly",
"status": "paid",
"seats": 18,
"quantity": 18,
"paidPeriodEnd": "2026-10-07 10:00:53",
"trialEndedAt": "2018-08-03 10:26:27",
"billingEmail": "billing@example.com",
"canManageSeats": true
},
"planFeatures": {},
"applications": {},
"timeOffPermissions": {
"read": "all",
"write": "request"
}
},
"rate": 5000
}Get Current User
Retrieve the user that owns the API key. Returns every field of the team member object plus personal settings: timezone, date and time formats, time off permissions, connected integration accounts, and the full team object.
curl --request GET \
--url https://api.everhour.com/users/me \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.everhour.com/users/me"
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/users/me', 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/users/me",
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/users/me"
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/users/me")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.everhour.com/users/me")
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
},
"timezone": 3,
"apiKey": "<string>",
"isSuspended": false,
"hasPassword": true,
"dateFormat": 1,
"dateTimeFormat": 12,
"timeFormat": 1,
"exportTimeFormat": 4,
"exportCsvSeparator": 1,
"timeRounding": 1,
"timeRoundingDirection": "nearest",
"startPage": "time",
"activityMode": "detailed",
"country": "<string>",
"timeOffPermissions": {
"read": "all",
"write": "request"
},
"notificationSettings": {},
"clockOutSettings": {},
"accounts": [
{
"id": "as:1185184465308295",
"platform": "as",
"name": "John Bender",
"email": "john.bender@example.com",
"status": "active",
"createdAt": "2020-07-20 09:39:09"
}
],
"team": {
"id": 2,
"name": "Acme Inc",
"createdAt": "2016-08-13 18:10:36",
"logoUrl": "https://d36887svjhykt4.cloudfront.net/teams/2-16a7d93a236d9b.jpg",
"owner": {
"id": 7,
"name": "Jane Doe",
"headline": "CPO"
},
"workdays": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"beginningOfWeek": 1,
"workHoursFrom": "09:00",
"workHoursTo": "18:00",
"workTimeMin": 23400,
"workTimeMax": 30600,
"allowFutureTracking": false,
"lockTimeEnabled": true,
"lockTimeAfter": 2,
"lockTimePeriod": "days",
"defaultRate": 5000,
"defaultCost": 2500,
"defaultCapacity": 144000,
"currencyDetails": {
"code": "USD",
"name": "US Dollar",
"symbol": "$"
},
"billing": {
"plan": "team_monthly",
"status": "paid",
"seats": 18,
"quantity": 18,
"paidPeriodEnd": "2026-10-07 10:00:53",
"trialEndedAt": "2018-08-03 10:26:27",
"billingEmail": "billing@example.com",
"canManageSeats": true
},
"planFeatures": {},
"applications": {},
"timeOffPermissions": {
"read": "all",
"write": "request"
}
},
"rate": 5000
}Authorizations
Response
OK
Every field of the team member object, plus the settings below that only the authenticated user sees. The response also carries onboarding and UI state fields that are internal to the Everhour apps — do not rely on them.
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
UTC offset in hours (e.g. -5, 5.5).
3
The user's personal API key — the same key used in the X-Api-Key header.
false
false when the user signs in through SSO or a connected account only.
true
Code for the user's date format.
1
Code for the user's date and time format.
12
Code for the user's duration format.
1
Code for the duration format used in exports.
4
Code for the column separator used in CSV exports.
1
Code for the rounding interval applied to time entries.
1
How rounding is applied.
"nearest"
Page the user lands on after signing in.
"time"
"detailed"
ISO 3166-1 alpha-2 country code.
What the user may do with time off.
Show child attributes
Show child attributes
Email and push notification preferences.
Automatic clock-out preferences.
Integration accounts connected to the user, such as Asana or GitHub.
Show child attributes
Show child attributes
The team the user belongs to. Returned by GET /users/me.
Show child attributes
Show child attributes
Hourly bill rate in cents (admins only).
5000
