Tommy
v1.0.0The Tommy API is organized around the REST methodology, and it uses resource-oriented URLs, and common HTTP response codes to indicate API errors. All requests are authenticated using an api-key which can be obtained from your developer dashboard.
https://api.mytommy.com/v11.0.0Authentication
basicAuthhttpHTTP Basic Authentication. Works over `HTTP` and `HTTPS`
Scheme: basic
api_keyapiKeyProvide your API key via the api_key header.
API Key: api_key in header
Account
Manage accounts and search across users and teams.
Search users
Get all users and teams who's mobile or username match the given search term.
termstringrequiredquerySearch term used to filter accounts
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/accounts/search'const response = await fetch('https://api.mytommy.com/v1/accounts/search', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/accounts/search')
data = response.json()[
{
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get the current account
Get the current user account.
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/current_account'const response = await fetch('https://api.mytommy.com/v1/me/current_account', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/current_account')
data = response.json(){
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update the current account
Update the current user account. \ The current account may be a User, Team, or TeamMember type.
current_account_idinteger (int64)requiredqueryThe polymorphic Account ID
current_account_typestringrequiredqueryThe polymorphic Account Type (User, Team, TeamMember)
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/me/current_account'const response = await fetch('https://api.mytommy.com/v1/me/current_account', {
method: 'PUT',
});
const data = await response.json();import requests
response = requests.put('https://api.mytommy.com/v1/me/current_account')
data = response.json(){
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}User
Endpoints for the authenticated user profile and settings.
Get the current user object
Get the current user object.
User response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me'const response = await fetch('https://api.mytommy.com/v1/me', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me')
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update the current user object
Update the current user object.
application/jsonrequiredUserInput request
A representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
photostring (binary)passwordstringUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/me' \
-H 'Content-Type: application/json' \
-d '{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}'const response = await fetch('https://api.mytommy.com/v1/me', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}),
});
const data = await response.json();import requests
payload = {
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}
response = requests.put('https://api.mytommy.com/v1/me', json=payload)
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get all accounts belonging to the current user
Get all accounts belonging to the current user.
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/accounts'const response = await fetch('https://api.mytommy.com/v1/me/accounts', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/accounts')
data = response.json()[
{
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get work-life score chart data for the current user
Get work-life score chart data for the current user.
WLS chart data
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/wls'const response = await fetch('https://api.mytommy.com/v1/me/wls', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/wls')
data = response.json(){
"labels": [
"string"
],
"values": [
0
],
"team_values": {},
"feedback": [
"string"
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get the current account
Get the current user account.
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/current_account'const response = await fetch('https://api.mytommy.com/v1/me/current_account', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/current_account')
data = response.json(){
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update the current account
Update the current user account. \ The current account may be a User, Team, or TeamMember type.
current_account_idinteger (int64)requiredqueryThe polymorphic Account ID
current_account_typestringrequiredqueryThe polymorphic Account Type (User, Team, TeamMember)
Account response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/me/current_account'const response = await fetch('https://api.mytommy.com/v1/me/current_account', {
method: 'PUT',
});
const data = await response.json();import requests
response = requests.put('https://api.mytommy.com/v1/me/current_account')
data = response.json(){
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get user settings
Get user settings objects.
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/settings'const response = await fetch('https://api.mytommy.com/v1/me/settings', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/settings')
data = response.json(){}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get user setting value
Get a user setting value.
namestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/me/settings/{name}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/settings/{name}')
data = response.json(){}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update user setting value
Update a user setting value.
application/jsonrequiredSettingData request
dataobjectrequiredSetting data as JSON, boolean, integer or string.
contextstring_formatstringnamestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/me/settings/{name}' \
-H 'Content-Type: application/json' \
-d '{
"data": {},
"context": "string",
"_format": "string"
}'const response = await fetch('https://api.mytommy.com/v1/me/settings/{name}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"data": {},
"context": "string",
"_format": "string"
}),
});
const data = await response.json();import requests
payload = {
"data": {},
"context": "string",
"_format": "string"
}
response = requests.put('https://api.mytommy.com/v1/me/settings/{name}', json=payload)
data = response.json(){
"data": {},
"context": "string",
"_format": "string"
}{}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete user setting value
Delete a user setting value.
namestringrequiredpathSetting name
No content
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/me/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/me/settings/{name}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/me/settings/{name}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a User on the system
Create a User on the system.
application/jsonrequiredUserInput request
A representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
photostring (binary)passwordstringUser response
User response
Unauthorized
Forbidden
Validation error
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/users' \
-H 'Content-Type: application/json' \
-d '{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}'const response = await fetch('https://api.mytommy.com/v1/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}),
});
const data = await response.json();import requests
payload = {
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}
response = requests.post('https://api.mytommy.com/v1/users', json=payload)
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Send a verification SMS
Send an account verification SMS to the user's mobile number.
idinteger (int64)requiredpathUser id
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/users/{id}/send_verification_sms'const response = await fetch('https://api.mytommy.com/v1/users/{id}/send_verification_sms', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/users/{id}/send_verification_sms')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Send a verification email
Send an account verification email to the user's email address.
idinteger (int64)requiredpathUser id
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/users/{id}/send_verification_email'const response = await fetch('https://api.mytommy.com/v1/users/{id}/send_verification_email', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/users/{id}/send_verification_email')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Reset a user password
Reset a user password for the account associated with the provided email address or mobile number.
loginstringrequiredqueryThe user email address or mobile number
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/users/reset_password'const response = await fetch('https://api.mytommy.com/v1/users/reset_password', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/users/reset_password')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Login
This method handles users who are \ authenticating with an email or phone, and password combination.
application/jsonrequiredUserCredentials request
User login credentials
loginstringrequiredpasswordstringrequiredUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/sessions' \
-H 'Content-Type: application/json' \
-d '{
"login": "string",
"password": "string"
}'const response = await fetch('https://api.mytommy.com/v1/sessions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"login": "string",
"password": "string"
}),
});
const data = await response.json();import requests
payload = {
"login": "string",
"password": "string"
}
response = requests.post('https://api.mytommy.com/v1/sessions', json=payload)
data = response.json(){
"login": "string",
"password": "string"
}{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Logout
This method destroys the current user session.
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/sessions'const response = await fetch('https://api.mytommy.com/v1/sessions', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/sessions')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get the current account QR code image
Get the current account QR code image.
Image response
Unauthorized
Forbidden
Not Found
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/qr'const response = await fetch('https://api.mytommy.com/v1/me/qr', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/qr')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a user
Get a user object by slug.
idstringrequiredpathUser slug or ID
User response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/users/{id}'const response = await fetch('https://api.mytommy.com/v1/users/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/users/{id}')
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Search users
Get all users who's mobile number matches the given search term.
termstringrequiredquerySearch term used to filter users
User response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/users/search'const response = await fetch('https://api.mytommy.com/v1/users/search', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/users/search')
data = response.json()[
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Verify a user account
Verify a user account using the given pin code.
pinstringrequiredqueryVerification PIN code
user_idinteger (int64)queryOptional user identifier to scope the verification lookup
emailstringqueryOptional email used for verification lookup
mobilestringqueryOptional mobile number used for verification lookup
User response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/users/verify'const response = await fetch('https://api.mytommy.com/v1/users/verify', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/users/verify')
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Workforce
Scheduling, shifts, attendance, and workforce management.
Get work-life score chart data for the current user
Get work-life score chart data for the current user.
WLS chart data
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/me/wls'const response = await fetch('https://api.mytommy.com/v1/me/wls', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/me/wls')
data = response.json(){
"labels": [
"string"
],
"values": [
0
],
"team_values": {},
"feedback": [
"string"
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get account
Get account settings.
Workforce response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce'const response = await fetch('https://api.mytommy.com/v1/workforce', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce')
data = response.json(){
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {},
"id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update account
Update account settings.
application/jsonrequiredWorkforceInput request
Object for updating a Workforce account
namestringDisplay name
week_startstringmondayturesdaywednesdaytimeclock_require_gpsbooleantimeclock_require_photobooleantimeclock_enable_mobilebooleantimeclock_enable_webbooleantimeclock_enable_kioskbooleantimesheets_rounding_methodstringnoneupdownnearesttimesheets_rounding_minutesintegertimesheets_enable_break_roundingbooleanshift_upcoming_notification_minutesintegerMinutes before shift start to send notification
shift_forgot_clockin_minutesintegerMinutes after shift start to send forgot clockin notification
shift_forgot_clockout_minutesintegerMinutes after shift end to send forgot clockout notification
shift_notifications_enabledbooleanEnable/disable shift notifications
event_notifications_enabledbooleanEnable/disable event notifications
dataobjectArbitrary data storage
Workforce response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce' \
-H 'Content-Type: application/json' \
-d '{
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {}
}),
});
const data = await response.json();import requests
payload = {
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": True,
"timeclock_require_photo": True,
"timeclock_enable_mobile": True,
"timeclock_enable_web": True,
"timeclock_enable_kiosk": True,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": True,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": True,
"event_notifications_enabled": True,
"data": {}
}
response = requests.put('https://api.mytommy.com/v1/workforce', json=payload)
data = response.json(){
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {}
}{
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {},
"id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get employees as manager
Get employees as manager.
WorkforceEmployee response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/employees'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/employees', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/employees')
data = response.json()[
{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an employee as manager
Get an employee as manager by ID.
user_idstringrequiredpathWorkforceEmployee response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/employees/{user_id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/employees/{user_id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/employees/{user_id}')
data = response.json(){
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an employee
Update an employee by ID.
application/jsonrequiredWorkforceEmployeeInput request
Object for updating an employee
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
has_vehiclebooleancompliance_checkstringnotesstringuser_idstringrequiredpathWorkforceEmployee response
Unauthorized
Forbidden
Validation error
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/employees/{user_id}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"has_vehicle": true,
"compliance_check": "string",
"notes": "string"
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/employees/{user_id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"has_vehicle": true,
"compliance_check": "string",
"notes": "string"
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"team_id": 0,
"favorite": True,
"mute": True,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"has_vehicle": True,
"compliance_check": "string",
"notes": "string"
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/employees/{user_id}', json=payload)
data = response.json(){
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"has_vehicle": true,
"compliance_check": "string",
"notes": "string"
}{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get availabilities
Get availabilities belonging to the current account.
WorkforceAvailability response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/availabilities'const response = await fetch('https://api.mytommy.com/v1/workforce/availabilities', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/availabilities')
data = response.json()[
{
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15",
"id": 0,
"user_id": 0,
"team_id": 0,
"employee_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get availability for date
Get a availability for date.
datestring (date)requiredpathAvailability date
WorkforceAvailability response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/availabilities/{date}'const response = await fetch('https://api.mytommy.com/v1/workforce/availabilities/{date}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/availabilities/{date}')
data = response.json(){
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15",
"id": 0,
"user_id": 0,
"team_id": 0,
"employee_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update availability for date
Update availability for date.
application/jsonrequiredWorkforceAvailabilityInput request
Object for updating a availability
amintegerpmintegerndintegeram_lockedbooleanpm_lockedbooleannd_lockedbooleandatestring (date)datestring (date)requiredpathAvailability date
WorkforceAvailability response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/availabilities/{date}' \
-H 'Content-Type: application/json' \
-d '{
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15"
}'const response = await fetch('https://api.mytommy.com/v1/workforce/availabilities/{date}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15"
}),
});
const data = await response.json();import requests
payload = {
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": True,
"pm_locked": True,
"nd_locked": True,
"date": "2024-01-15"
}
response = requests.put('https://api.mytommy.com/v1/workforce/availabilities/{date}', json=payload)
data = response.json(){
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15"
}{
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15",
"id": 0,
"user_id": 0,
"team_id": 0,
"employee_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a shift question
Create a shift question.
application/jsonrequiredWorkforceShiftQuestion request
Object representing a shift question
team_idinteger (int64)textstringoffset_minutesinteger (int64)whenstringalwaysstart_shiftend_shiftalwaysbooleanenabledbooleantag_idsArray<integer>WorkforceShiftQuestion response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/shift_questions' \
-H 'Content-Type: application/json' \
-d '{
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shift_questions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": True,
"enabled": True,
"tag_ids": [
0
]
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/shift_questions', json=payload)
data = response.json(){
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}{
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get shifts
Get shifts belonging to the current account.
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/shifts'const response = await fetch('https://api.mytommy.com/v1/workforce/shifts', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/shifts')
data = response.json()[
{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get active shifts
Get active shifts belonging to the current account.
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/shifts/active'const response = await fetch('https://api.mytommy.com/v1/workforce/shifts/active', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/shifts/active')
data = response.json()[
{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a shift
Get a shift by ID.
idinteger (int64)requiredpathWorkforceShift id
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/shifts/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/shifts/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/shifts/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get shift questions
Get shift questions by shift ID.
idinteger (int64)requiredpathWorkforceShift id
WorkforceShiftQuestion response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/shifts/{id}/questions'const response = await fetch('https://api.mytommy.com/v1/workforce/shifts/{id}/questions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/shifts/{id}/questions')
data = response.json()[
{
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a shift answer
Create a shift answer.
application/jsonrequiredWorkforceShiftAnswer request
Object representing a shift answer
team_idinteger (int64)shift_idinteger (int64)shift_question_idinteger (int64)attendance_idinteger (int64)user_idinteger (int64)textstringidstringrequiredpathWorkforceShiftAnswer response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/shifts/{id}/answers' \
-H 'Content-Type: application/json' \
-d '{
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}'const response = await fetch('https://api.mytommy.com/v1/workforce/shifts/{id}/answers', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}),
});
const data = await response.json();import requests
payload = {
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}
response = requests.post('https://api.mytommy.com/v1/workforce/shifts/{id}/answers', json=payload)
data = response.json(){
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}{
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get shifts as manager
Get shifts as manager.
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/shifts'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shifts', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/shifts')
data = response.json()[
{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a shift
Create a shift.
application/jsonrequiredWorkforceShiftInput request
Object for updating a shift
titlestringHuman-friendly title
start_atstring (date-time)end_atstring (date-time)statusstringopenassignedpublishedCurrent status
location_idinteger (int64)location_namestringrolestringdepartmentstringdetailsstringdataobjectWorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/shifts' \
-H 'Content-Type: application/json' \
-d '{
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shifts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}),
});
const data = await response.json();import requests
payload = {
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/shifts', json=payload)
data = response.json(){
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a shift as manager
Get a shift as manager by ID.
idinteger (int64)requiredpathWorkforceShift id
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/shifts/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shifts/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/shifts/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a shift as manager
Update a shift as a manager by ID.
application/jsonrequiredWorkforceShiftInput request
Object for updating a shift
titlestringHuman-friendly title
start_atstring (date-time)end_atstring (date-time)statusstringopenassignedpublishedCurrent status
location_idinteger (int64)location_namestringrolestringdepartmentstringdetailsstringdataobjectidinteger (int64)requiredpathWorkforceShift id
WorkforceShift response
Unauthorized
Forbidden
Validation error
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/shifts/{id}' \
-H 'Content-Type: application/json' \
-d '{
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shifts/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}),
});
const data = await response.json();import requests
payload = {
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/shifts/{id}', json=payload)
data = response.json(){
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete a shift as manager
Delete a shift as a manager by ID.
idinteger (int64)requiredpathWorkforceShift id
WorkforceShift response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/workforce/manager/shifts/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shifts/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/workforce/manager/shifts/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a shift request
Create a shift request.
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/shift_requests'const response = await fetch('https://api.mytommy.com/v1/workforce/shift_requests', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/workforce/shift_requests')
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a shift request
Update or update a shift request by ID.
idinteger (int64)requiredpathWorkforceShiftRequest id
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/shift_requests/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/shift_requests/{id}', {
method: 'PUT',
});
const data = await response.json();import requests
response = requests.put('https://api.mytommy.com/v1/workforce/shift_requests/{id}')
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete a shift request
Delete a shift request by ID.
idinteger (int64)requiredpathWorkforceShiftRequest id
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/workforce/shift_requests/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/shift_requests/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/workforce/shift_requests/{id}')
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get shift requests as manager
Get shift request as manager.
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/shift_requests'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shift_requests', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/shift_requests')
data = response.json()[
{
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a shift request as manager
Create a shift request as manager.
application/jsonrequiredWorkforceShiftRequestInput request
Object for updating a shift request
user_idinteger (int64)shift_idinteger (int64)statusstringrequestedshortlistedapprovedrejectedcanceledCurrent status
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/shift_requests' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"shift_id": 0,
"status": "active"
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shift_requests', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"shift_id": 0,
"status": "active"
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"shift_id": 0,
"status": "active"
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/shift_requests', json=payload)
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active"
}{
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a shift request as manager
Get a shift request as manager by ID.
idinteger (int64)requiredpathWorkforceShiftRequest id
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}')
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a shift request as manager
Update a shift request as manager by ID.
application/jsonrequiredWorkforceShiftRequestInput request
Object for updating a shift request
user_idinteger (int64)shift_idinteger (int64)statusstringrequestedshortlistedapprovedrejectedcanceledCurrent status
idinteger (int64)requiredpathWorkforceShiftRequest id
WorkforceShiftRequest response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"shift_id": 0,
"status": "active"
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"shift_id": 0,
"status": "active"
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"shift_id": 0,
"status": "active"
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/shift_requests/{id}', json=payload)
data = response.json(){
"user_id": 0,
"shift_id": 0,
"status": "active"
}{
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get timesheets
Get timesheets belonging to the current account.
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/timesheets'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheets', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/timesheets')
data = response.json()[
{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a timesheet
Get a timesheet by ID.
idinteger (int64)requiredpathWorkforceTimesheet id
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/timesheets/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheets/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/timesheets/{id}')
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an timesheet
Update an timesheet by ID.
application/jsonrequiredWorkforceTimesheetInput request
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleanidinteger (int64)requiredpathWorkforceTimesheet id
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/timesheets/{id}' \
-H 'Content-Type: application/json' \
-d '{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheets/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": True
}
response = requests.put('https://api.mytommy.com/v1/workforce/timesheets/{id}', json=payload)
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete a timesheet
Delete a timesheet by ID.
idinteger (int64)requiredpathWorkforceTimesheetItem id
Null response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/workforce/timesheets/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheets/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/workforce/timesheets/{id}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get timesheets as manager
Get timesheets as manager.
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/timesheets'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheets', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/timesheets')
data = response.json()[
{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a timesheet as manager
Create a timesheet as manager.
application/jsonrequiredWorkforceTimesheetInput request
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleanWorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/timesheets' \
-H 'Content-Type: application/json' \
-d '{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheets', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": True
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/timesheets', json=payload)
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a timesheet
Get a timesheet as manager by ID.
idinteger (int64)requiredpathWorkforceTimesheet id
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/timesheets/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheets/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/timesheets/{id}')
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an timesheet
Update an timesheet as manager by ID.
application/jsonrequiredWorkforceTimesheetInput request
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleanidinteger (int64)requiredpathWorkforceTimesheet id
WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/timesheets/{id}' \
-H 'Content-Type: application/json' \
-d '{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheets/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": True
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/timesheets/{id}', json=payload)
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Bulk update timesheets as manager
Bulk update timesheets as manager by an array of IDs.
application/jsonrequiredWorkforceTimesheetBulkInput request
Object for bulk updating a timesheets
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleantimesheet_idsArray<integer>WorkforceTimesheet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/timesheets/bulk_update' \
-H 'Content-Type: application/json' \
-d '{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"timesheet_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheets/bulk_update', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"timesheet_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": True,
"timesheet_ids": [
0
]
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/timesheets/bulk_update', json=payload)
data = response.json(){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"timesheet_ids": [
0
]
}[
{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get timesheet items
Get timesheet items for the current account.
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/timesheet_items'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheet_items', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/timesheet_items')
data = response.json()[
{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a timesheet item
Create a timesheet item.
application/jsonrequiredWorkforceTimesheetItemInput request
Object for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualbooleanWorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/timesheet_items' \
-H 'Content-Type: application/json' \
-d '{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheet_items', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": True
}
response = requests.post('https://api.mytommy.com/v1/workforce/timesheet_items', json=payload)
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a timesheet item
Get a timesheet item by ID.
idinteger (int64)requiredpathWorkforceTimesheetItem id
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/timesheet_items/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheet_items/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/timesheet_items/{id}')
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a timesheet item
Update a timesheet item by ID.
application/jsonrequiredWorkforceTimesheetItemInput request
Object for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualbooleanidinteger (int64)requiredpathWorkforceTimesheetItem id
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/timesheet_items/{id}' \
-H 'Content-Type: application/json' \
-d '{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheet_items/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": True
}
response = requests.put('https://api.mytommy.com/v1/workforce/timesheet_items/{id}', json=payload)
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete a timesheet item
Delete a timesheet item by ID.
idinteger (int64)requiredpathWorkforceTimesheetItem id
Null response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/workforce/timesheet_items/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/timesheet_items/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/workforce/timesheet_items/{id}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get timesheet items
Get timesheet items belonging to the current account.
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/timesheet_items'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheet_items', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/timesheet_items')
data = response.json()[
{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a timesheet item
Create a timesheet item.
application/jsonrequiredWorkforceTimesheetItemInput request
Object for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualbooleanWorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/timesheet_items' \
-H 'Content-Type: application/json' \
-d '{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheet_items', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": True
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/timesheet_items', json=payload)
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a timesheet item as manager
Get a timesheet item as manager by ID.
idinteger (int64)requiredpathWorkforceTimesheetItem id
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}')
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a timesheet item as manager
Update a timesheet item as manager by ID.
application/jsonrequiredWorkforceTimesheetItemInput request
Object for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualbooleanidinteger (int64)requiredpathWorkforceTimesheetItem id
WorkforceTimesheetItem response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}' \
-H 'Content-Type: application/json' \
-d '{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}),
});
const data = await response.json();import requests
payload = {
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": True
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/timesheet_items/{id}', json=payload)
data = response.json(){
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get attendances
Get attendances for the current account.
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/attendances'const response = await fetch('https://api.mytommy.com/v1/workforce/attendances', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/attendances')
data = response.json()[
{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create an attendance
Create an attendance.
application/jsonrequiredWorkforceAttendanceInput request
Object for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobjectWorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/attendances' \
-H 'Content-Type: application/json' \
-d '{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/attendances', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}),
});
const data = await response.json();import requests
payload = {
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}
response = requests.post('https://api.mytommy.com/v1/workforce/attendances', json=payload)
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get active attendances
Get active attendance for the current account.
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/attendances/active'const response = await fetch('https://api.mytommy.com/v1/workforce/attendances/active', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/attendances/active')
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an attendance
Get an attendance by ID.
idinteger (int64)requiredpathWorkforceAttendance id
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/attendances/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/attendances/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/attendances/{id}')
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an attendance
Update an attendance by ID.
application/jsonrequiredWorkforceAttendanceInput request
Object for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobjectidinteger (int64)requiredpathWorkforceAttendance id
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/attendances/{id}' \
-H 'Content-Type: application/json' \
-d '{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/attendances/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}),
});
const data = await response.json();import requests
payload = {
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}
response = requests.put('https://api.mytommy.com/v1/workforce/attendances/{id}', json=payload)
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get attendances
Get attendances belonging to the current account.
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/attendances'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/attendances', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/attendances')
data = response.json()[
{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create an attendance
Create an attendance.
application/jsonrequiredWorkforceAttendanceInput request
Object for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobjectWorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/workforce/manager/attendances' \
-H 'Content-Type: application/json' \
-d '{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/attendances', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}),
});
const data = await response.json();import requests
payload = {
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}
response = requests.post('https://api.mytommy.com/v1/workforce/manager/attendances', json=payload)
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get active attendances as manager
Get active attendances as manager.
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/attendances/active'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/attendances/active', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/attendances/active')
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an attendance as manager
Get an attendance as manager by ID.
idinteger (int64)requiredpathWorkforceAttendance id
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/workforce/manager/attendances/{id}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/attendances/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/workforce/manager/attendances/{id}')
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an attendance as manager
Update an attendance as manager by ID.
application/jsonrequiredWorkforceAttendanceInput request
Object for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobjectidinteger (int64)requiredpathWorkforceAttendance id
WorkforceAttendance response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/workforce/manager/attendances/{id}' \
-H 'Content-Type: application/json' \
-d '{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}'const response = await fetch('https://api.mytommy.com/v1/workforce/manager/attendances/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}),
});
const data = await response.json();import requests
payload = {
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}
response = requests.put('https://api.mytommy.com/v1/workforce/manager/attendances/{id}', json=payload)
data = response.json(){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Contact
Manage contacts: invite, accept, and share connections.
Get contacts
Get all contacts belonging to the current account.
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/contacts'const response = await fetch('https://api.mytommy.com/v1/contacts', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/contacts')
data = response.json()[
{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create contact
Create a contact for a user that may not already exist on Tommy. The created user will be invited to join the current user or team.
application/jsonrequiredContactRequest request
A representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
team_idsArray<integer>viastringContact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts' \
-H 'Content-Type: application/json' \
-d '{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"team_ids": [
0
],
"via": "string"
}'const response = await fetch('https://api.mytommy.com/v1/contacts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"team_ids": [
0
],
"via": "string"
}),
});
const data = await response.json();import requests
payload = {
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"team_ids": [
0
],
"via": "string"
}
response = requests.post('https://api.mytommy.com/v1/contacts', json=payload)
data = response.json(){
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"team_ids": [
0
],
"via": "string"
}{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a contact
Get a contact object by friend user ID.
friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/contacts/{friend_id}'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/contacts/{friend_id}')
data = response.json(){
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a contact
Update a single contact object.
application/jsonrequiredContact request
A representation of a Contact
friend_idinteger (int64)requiredFriend user ID
favoritebooleanmutebooleanpersonalbooleanrolesArray<string>Array of roles assigned to the Contact
locationsArray<string>Array of locations assigned to the Contact
tagsArray<string>Array of tags assigned to the Contact
idinteger (int64)typestringfirst_namestringlast_namestringicon_urlstringemailstringmobilestringstatusstringmemberbooleanTrue when the friend has signed up to Tommy
last_online_atstring (date-time)friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/contacts/{friend_id}' \
-H 'Content-Type: application/json' \
-d '{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}),
});
const data = await response.json();import requests
payload = {
"friend_id": 0,
"favorite": True,
"mute": True,
"personal": True,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": True,
"last_online_at": "2024-01-15T09:30:00Z"
}
response = requests.put('https://api.mytommy.com/v1/contacts/{friend_id}', json=payload)
data = response.json(){
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Import bulk contacts
Import bulk contacts from a mobile phone or other device. Imported contacts must provide first_name and mobile or email parameters.
application/jsonrequiredUsers request
A representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts/import' \
-H 'Content-Type: application/json' \
-d '[
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}
]'const response = await fetch('https://api.mytommy.com/v1/contacts/import', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify([
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}
]),
});
const data = await response.json();import requests
payload = [
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}
]
response = requests.post('https://api.mytommy.com/v1/contacts/import', json=payload)
data = response.json()[
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}
][
{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Send contact request
Send a contact request to join the given user or team.
application/jsonTeamID request
team_idinteger (int64)friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts/{friend_id}/add' \
-H 'Content-Type: application/json' \
-d '{
"team_id": 0
}'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}/add', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"team_id": 0
}),
});
const data = await response.json();import requests
payload = {
"team_id": 0
}
response = requests.post('https://api.mytommy.com/v1/contacts/{friend_id}/add', json=payload)
data = response.json(){
"team_id": 0
}{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Invite contact
Invite the given user to become a contact of the current user or team.
friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts/{friend_id}/invite'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}/invite', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/contacts/{friend_id}/invite')
data = response.json(){
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Accept contact request
Accept an incoming contact request from the given user.
application/jsonrequiredTeamIDs request
team_idsArray<integer>friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts/{friend_id}/accept' \
-H 'Content-Type: application/json' \
-d '{
"team_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}/accept', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"team_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"team_ids": [
0
]
}
response = requests.post('https://api.mytommy.com/v1/contacts/{friend_id}/accept', json=payload)
data = response.json(){
"team_ids": [
0
]
}{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Reject contact request
Reject an incoming contact request from the given user.
friend_idinteger (int64)requiredpathUser friend_id
Contact response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/contacts/{friend_id}/decline'const response = await fetch('https://api.mytommy.com/v1/contacts/{friend_id}/decline', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/contacts/{friend_id}/decline')
data = response.json(){
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Team
Team resources, members, and related operations.
Create a team
Create a team.
Team response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/teams'const response = await fetch('https://api.mytommy.com/v1/teams', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/teams')
data = response.json(){
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get the current team object
Get the current team object.
Team response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/team'const response = await fetch('https://api.mytommy.com/v1/team', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/team')
data = response.json(){
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update the current team object
Update the current team object.
application/jsonrequiredTeamInput request
A representation of a Team
idinteger (int64)requiredUnique team identifier
user_idinteger (int64)requiredOwner user ID
namestringrequiredTeam display name
photostring (binary)icon_urlstringTeam icon URL
emailstringphonestringstatusstringCurrent status
slugstringfeaturesobjectFeature flags enabled for the team
Feature flags enabled for the team
compliancebooleantimesheetsbooleantimeclockbooleanavailabilitybooleanordersbooleanclientsbooleantrainingbooleanleavebooleandocumentsbooleanschedulingbooleanndisbooleanexperimentalbooleanmileagebooleanTeam response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/team' \
-H 'Content-Type: application/json' \
-d '{
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}'const response = await fetch('https://api.mytommy.com/v1/team', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}),
});
const data = await response.json();import requests
payload = {
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": True,
"timesheets": True,
"timeclock": True,
"availability": True,
"orders": True,
"clients": True,
"training": True,
"leave": True,
"documents": True,
"scheduling": True,
"ndis": True,
"experimental": True,
"mileage": True
}
}
response = requests.put('https://api.mytommy.com/v1/team', json=payload)
data = response.json(){
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get team settings
Get team settings objects.
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/team/settings'const response = await fetch('https://api.mytommy.com/v1/team/settings', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/team/settings')
data = response.json(){}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update team features
Bulk update team feature flags. Unknown keys are ignored.
application/jsonrequiredfeaturesobjectFeature flags enabled for the team
Feature flags enabled for the team
compliancebooleantimesheetsbooleantimeclockbooleanavailabilitybooleanordersbooleanclientsbooleantrainingbooleanleavebooleandocumentsbooleanschedulingbooleanndisbooleanexperimentalbooleanmileagebooleanUpdated team features
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PATCH 'https://api.mytommy.com/v1/team/features' \
-H 'Content-Type: application/json' \
-d '{
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}'const response = await fetch('https://api.mytommy.com/v1/team/features', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}),
});
const data = await response.json();import requests
payload = {
"features": {
"compliance": True,
"timesheets": True,
"timeclock": True,
"availability": True,
"orders": True,
"clients": True,
"training": True,
"leave": True,
"documents": True,
"scheduling": True,
"ndis": True,
"experimental": True,
"mileage": True
}
}
response = requests.patch('https://api.mytommy.com/v1/team/features', json=payload)
data = response.json(){
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get team setting value
Get a team setting value.
namestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/team/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/team/settings/{name}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/team/settings/{name}')
data = response.json(){}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update team setting value
Update a team setting value.
application/jsonrequiredSettingData request
dataobjectrequiredSetting data as JSON, boolean, integer or string.
contextstring_formatstringnamestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/team/settings/{name}' \
-H 'Content-Type: application/json' \
-d '{
"data": {},
"context": "string",
"_format": "string"
}'const response = await fetch('https://api.mytommy.com/v1/team/settings/{name}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"data": {},
"context": "string",
"_format": "string"
}),
});
const data = await response.json();import requests
payload = {
"data": {},
"context": "string",
"_format": "string"
}
response = requests.put('https://api.mytommy.com/v1/team/settings/{name}', json=payload)
data = response.json(){
"data": {},
"context": "string",
"_format": "string"
}{}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete team setting value
Delete a team setting value.
namestringrequiredpathSetting name
No content
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/team/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/team/settings/{name}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/team/settings/{name}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Apply demo data
Apply industry-specific demo data to the current team.
application/jsonrequiredDemo data application parameters
seed_typestringworkforceaged_carehospitalitynursingpartnerretailconstructionload_testingThe type of demo data to apply
optionsobjectOptional parameters to customize the demo data generation
Optional parameters to customize the demo data generation
number_of_team_membersintegerNumber of team members to create
number_of_locationsintegerNumber of locations to create
number_of_pay_templatesintegerNumber of pay templates to create
number_of_shiftsintegerNumber of shifts to create
number_of_timesheetsintegerNumber of timesheets to create
total_team_membersintegerTotal team members for load testing
locations_countintegerNumber of locations for load testing
pay_templates_countintegerNumber of pay templates for load testing
chats_countintegerNumber of chats for load testing
leave_requests_countintegerNumber of leave requests for load testing
shifts_per_member_per_weekintegerShifts per member per week for load testing
weeks_backintegerWeeks back for load testing
weeks_forwardintegerWeeks forward for load testing
attendance_ratenumber (float)Attendance rate for load testing (0.0 to 1.0)
Demo data sync started successfully
Invalid seed type
Unauthorized
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/team/demo_data/apply' \
-H 'Content-Type: application/json' \
-d '{
"seed_type": "workforce",
"options": {
"number_of_team_members": 0,
"number_of_locations": 0,
"number_of_pay_templates": 0,
"number_of_shifts": 0,
"number_of_timesheets": 0,
"total_team_members": 0,
"locations_count": 0,
"pay_templates_count": 0,
"chats_count": 0,
"leave_requests_count": 0,
"shifts_per_member_per_week": 0,
"weeks_back": 0,
"weeks_forward": 0,
"attendance_rate": 0
}
}'const response = await fetch('https://api.mytommy.com/v1/team/demo_data/apply', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"seed_type": "workforce",
"options": {
"number_of_team_members": 0,
"number_of_locations": 0,
"number_of_pay_templates": 0,
"number_of_shifts": 0,
"number_of_timesheets": 0,
"total_team_members": 0,
"locations_count": 0,
"pay_templates_count": 0,
"chats_count": 0,
"leave_requests_count": 0,
"shifts_per_member_per_week": 0,
"weeks_back": 0,
"weeks_forward": 0,
"attendance_rate": 0
}
}),
});
const data = await response.json();import requests
payload = {
"seed_type": "workforce",
"options": {
"number_of_team_members": 0,
"number_of_locations": 0,
"number_of_pay_templates": 0,
"number_of_shifts": 0,
"number_of_timesheets": 0,
"total_team_members": 0,
"locations_count": 0,
"pay_templates_count": 0,
"chats_count": 0,
"leave_requests_count": 0,
"shifts_per_member_per_week": 0,
"weeks_back": 0,
"weeks_forward": 0,
"attendance_rate": 0
}
}
response = requests.post('https://api.mytommy.com/v1/team/demo_data/apply', json=payload)
data = response.json(){
"seed_type": "workforce",
"options": {
"number_of_team_members": 0,
"number_of_locations": 0,
"number_of_pay_templates": 0,
"number_of_shifts": 0,
"number_of_timesheets": 0,
"total_team_members": 0,
"locations_count": 0,
"pay_templates_count": 0,
"chats_count": 0,
"leave_requests_count": 0,
"shifts_per_member_per_week": 0,
"weeks_back": 0,
"weeks_forward": 0,
"attendance_rate": 0
}
}{
"success": true,
"message": "string",
"sync_id": 0,
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Reset demo data
Remove all generated demo data from the current team.
Demo data reset successfully
Unauthorized
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/team/demo_data/reset'const response = await fetch('https://api.mytommy.com/v1/team/demo_data/reset', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/team/demo_data/reset')
data = response.json(){
"success": true,
"message": "string",
"team_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get all members belonging to the current team
Get all members belonging to the current team.
TeamMember response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/team/members'const response = await fetch('https://api.mytommy.com/v1/team/members', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/team/members')
data = response.json()[
{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a team member
Get a single team member object by it's corresponding user ID.
user_idinteger (int64)requiredpathUser user_id
TeamMember response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/team/members/{user_id}'const response = await fetch('https://api.mytommy.com/v1/team/members/{user_id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/team/members/{user_id}')
data = response.json(){
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a team member
Update a single team member object.
application/jsonrequiredTeamMember request
Object that represents a Team Member
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
idinteger (int64)user_idinteger (int64)team_idinteger (int64)first_namestringlast_namestringemailstringmobilestringmanagerbooleanmemberbooleanTrue when the team member has signed up to Tommy
statusstringicon_urlstringaddon_linksArray<any>Array of profile links accessible by the current User on the Team Member profile
titlestringHuman-friendly title
packagestringurlstringicon_urlstringuser_idinteger (int64)requiredpathUser user_id
TeamMember response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/team/members/{user_id}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}'const response = await fetch('https://api.mytommy.com/v1/team/members/{user_id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"team_id": 0,
"favorite": True,
"mute": True,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": True,
"member": True,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}
response = requests.put('https://api.mytommy.com/v1/team/members/{user_id}', json=payload)
data = response.json(){
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Invite team member
Invite a member to the current team.
application/jsonrequiredTeamMember request
Object that represents a Team Member
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
idinteger (int64)user_idinteger (int64)team_idinteger (int64)first_namestringlast_namestringemailstringmobilestringmanagerbooleanmemberbooleanTrue when the team member has signed up to Tommy
statusstringicon_urlstringaddon_linksArray<any>Array of profile links accessible by the current User on the Team Member profile
titlestringHuman-friendly title
packagestringurlstringicon_urlstringTeamMember response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/team/members/invite' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}'const response = await fetch('https://api.mytommy.com/v1/team/members/invite', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"team_id": 0,
"favorite": True,
"mute": True,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": True,
"member": True,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}
response = requests.post('https://api.mytommy.com/v1/team/members/invite', json=payload)
data = response.json(){
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a teams
Get a teams object by slug.
idstringrequiredpathTeam slug
Team response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/teams/{id}'const response = await fetch('https://api.mytommy.com/v1/teams/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/teams/{id}')
data = response.json(){
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Developer
Developer-focused endpoints for addons and integrations.
Get all developers on the system
Get all developers on the system.
Developer response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers'const response = await fetch('https://api.mytommy.com/v1/developers', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers')
data = response.json()[
{
"name": "Example Name",
"details": "string",
"icon_url": "string",
"addons": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
],
"actions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
],
"solutions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"name": "Example Name",
"summary": "string",
"description": "Short description"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a developer
Get a developer object by user ID.
idinteger (int64)requiredpathDeveloper id
Developer response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers/{id}'const response = await fetch('https://api.mytommy.com/v1/developers/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers/{id}')
data = response.json(){
"name": "Example Name",
"details": "string",
"icon_url": "string",
"addons": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
],
"actions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
],
"solutions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"name": "Example Name",
"summary": "string",
"description": "Short description"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get developer addons
Get all addons for a specific developer.
idinteger (int64)requiredpathDeveloper id
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers/{id}/addons'const response = await fetch('https://api.mytommy.com/v1/developers/{id}/addons', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers/{id}/addons')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get developer actions
Get all actions for a specific developer.
idinteger (int64)requiredpathDeveloper id
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers/{id}/actions'const response = await fetch('https://api.mytommy.com/v1/developers/{id}/actions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers/{id}/actions')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Addon
Discover, manage, and interact with addons.
Get developer addons
Get all addons for a specific developer.
idinteger (int64)requiredpathDeveloper id
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers/{id}/addons'const response = await fetch('https://api.mytommy.com/v1/developers/{id}/addons', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers/{id}/addons')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get all addons
Get all addons available for install by the current team or user.
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons'const response = await fetch('https://api.mytommy.com/v1/addons', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get recommended addons
Get all recommended addons available for install by the current team or user.
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/recommended'const response = await fetch('https://api.mytommy.com/v1/addons/recommended', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/recommended')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get popular addons
Get all addons in order of popularity.
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/popular'const response = await fetch('https://api.mytommy.com/v1/addons/popular', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/popular')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get installed addons
Get all addons installed for the current team or user.
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/installed'const response = await fetch('https://api.mytommy.com/v1/addons/installed', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/installed')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an addon
Get an addon by it's package name.
packagestringrequiredpathAddon package
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{package}'const response = await fetch('https://api.mytommy.com/v1/addons/{package}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{package}')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Report addon as inappropriate
Report addon as inappropriate.
packagestringrequiredpathAddon package
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/addons/{package}/report'const response = await fetch('https://api.mytommy.com/v1/addons/{package}/report', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/addons/{package}/report')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get addon actions
Get all actions for an addon.
packagestringrequiredpathAddon package
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{package}/actions'const response = await fetch('https://api.mytommy.com/v1/addons/{package}/actions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{package}/actions')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get installed addon
Get an installed addon.
addon_packagestringrequiredpathAddon package
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{addon_package}/install'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{addon_package}/install')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Install addon
Install an addon.
application/jsonrequiredAddon request
idinteger (int64)requiredUnique identifier
user_idinteger (int64)requireddeveloper_idinteger (int64)packagestringrequiredtitlestringHuman-friendly title
authorstringenvironmentstringversionstringdescriptionstringHuman-friendly description
homepagestringicon_urlstringfile_base_urlstringinstalledbooleanupdated_atstring (date-time)Last update timestamp (ISO8601)
rolesArray<string>Array of roles required to install this addon.
permissionsArray<object>input_devicesArray<object>localesArray<string>viewsArray<any>idstringUnique identifier
titlestringHuman-friendly title
typestringpathstringindexbooleanicon_urlstringaddon_packagestringrequiredpathAddon package
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/addons/{addon_package}/install' \
-H 'Content-Type: application/json' \
-d '{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}),
});
const data = await response.json();import requests
payload = {
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": True,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": True,
"icon_url": "string"
}
]
}
response = requests.post('https://api.mytommy.com/v1/addons/{addon_package}/install', json=payload)
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update installed addon
Update an installed addon.
addon_packagestringrequiredpathAddon package
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/addons/{addon_package}/install'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install', {
method: 'PUT',
});
const data = await response.json();import requests
response = requests.put('https://api.mytommy.com/v1/addons/{addon_package}/install')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete installed addon
Delete an installed addon.
addon_packagestringrequiredpathAddon package
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/addons/{addon_package}/install'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/addons/{addon_package}/install')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get addon permissions
Get all addon permission objects.
addon_packagestringrequiredpathAddon package
Permission response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{addon_package}/install/permissions'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions')
data = response.json(){
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get addon permission
Get an addon permission object.
addon_packagestringrequiredpathAddon package
namestringrequiredpathPermission name
Permission response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}')
data = response.json(){
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update addon permission
Update an addon permission object.
application/jsonrequiredPermission request
user_idinteger (int64)team_idinteger (int64)namestringDisplay name
titlestringHuman-friendly title
hintstringresource_typestringresource_kindstringoperationsArray<string>Array of permissable operations
addon_packagestringrequiredpathAddon package
namestringrequiredpathPermission name
Permission response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}
response = requests.put('https://api.mytommy.com/v1/addons/{addon_package}/install/permissions/{name}', json=payload)
data = response.json(){
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}{
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get all addon settings
Get all addon settings objects.
addon_packagestringrequiredpathAddon package
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{addon_package}/install/settings'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/settings', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{addon_package}/install/settings')
data = response.json(){
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get addon setting
Get an addon setting object.
addon_packagestringrequiredpathAddon package
namestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}')
data = response.json(){
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update addon settings
Update an addon settings object.
application/jsonrequiredSetting request
user_idinteger (int64)team_idinteger (int64)addon_install_idinteger (int64)resource_idinteger (int64)resource_typestringcontextstringformatstringdataobjectrequiredSetting data as JSON.
addon_packagestringrequiredpathAddon package
namestringrequiredpathSetting name
Setting response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}
response = requests.put('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}', json=payload)
data = response.json(){
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}{
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete addon setting
Delete an addon setting object.
addon_packagestringrequiredpathAddon package
namestringrequiredpathSetting name
Null response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}'const response = await fetch('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/addons/{addon_package}/install/settings/{name}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Search addons
Get all addons matching the given search term.
termstringrequiredquerySearch term used to filter addons
Addon response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/search'const response = await fetch('https://api.mytommy.com/v1/addons/search', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/search')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Action
List and manage actions, triggers, and related tasks.
Get developer actions
Get all actions for a specific developer.
idinteger (int64)requiredpathDeveloper id
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/developers/{id}/actions'const response = await fetch('https://api.mytommy.com/v1/developers/{id}/actions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/developers/{id}/actions')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get all actions
Get all available actions.
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions'const response = await fetch('https://api.mytommy.com/v1/actions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get popular actions
Get all actions in order of popularity.
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/popular'const response = await fetch('https://api.mytommy.com/v1/actions/popular', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/popular')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get installed actions
Get all installed actions for the current team or user.
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installed'const response = await fetch('https://api.mytommy.com/v1/actions/installed', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/installed')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get recent actions
Get recently used actions for the current team or user.
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/recent'const response = await fetch('https://api.mytommy.com/v1/actions/recent', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/recent')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get action
Get a specific action by ID.
idstringrequiredpathAction id
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/{id}'const response = await fetch('https://api.mytommy.com/v1/actions/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get action variables
Get variables for a specific action.
idstringrequiredpathAction id
object response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/{id}/variables'const response = await fetch('https://api.mytommy.com/v1/actions/{id}/variables', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/{id}/variables')
data = response.json(){}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}List action installs
Get all action installs for the current team or user.
ActionInstall response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installs'const response = await fetch('https://api.mytommy.com/v1/actions/installs', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/installs')
data = response.json()[
{
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Install action
Install an action for the current team or user.
application/jsonrequiredAction request
idinteger (int64)Unique identifier
user_idinteger (int64)developer_idinteger (int64)action_version_idinteger (int64)authorstringtriggeranyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
activityanyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
dependenciesobjectnamestringDisplay name
summarystringdescriptionstringHuman-friendly description
icon_urlstringinstalledbooleankindstringuniquebooleanAction response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/actions/installs' \
-H 'Content-Type: application/json' \
-d '{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}'const response = await fetch('https://api.mytommy.com/v1/actions/installs', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}),
});
const data = await response.json();import requests
payload = {
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": True,
"kind": "string",
"unique": True
}
response = requests.post('https://api.mytommy.com/v1/actions/installs', json=payload)
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get installed action
Get an action install by ID.
idstringrequiredpathActionInstall id
ActionInstall response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installs/{id}'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/installs/{id}')
data = response.json(){
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update action install
Update an action install.
application/jsonrequiredActionInstall request
idinteger (int64)Unique identifier
action_idinteger (int64)addon_install_idinteger (int64)titlestringHuman-friendly title
summarystringdescriptionstringHuman-friendly description
scheduleobjectinstalledbooleandeleted_atstring (date-time)updated_atstring (date-time)Last update timestamp (ISO8601)
tag_idsArray<integer>tags_listArray<string>triggeranyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
activityanyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
settingsobjectidstringrequiredpathActionInstall id
ActionInstall response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/actions/installs/{id}' \
-H 'Content-Type: application/json' \
-d '{
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}),
});
const data = await response.json();import requests
payload = {
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": True,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}
response = requests.put('https://api.mytommy.com/v1/actions/installs/{id}', json=payload)
data = response.json(){
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}{
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete installed action
Delete an action install.
idstringrequiredpathActionInstall id
ActionInstall response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/actions/installs/{id}'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/actions/installs/{id}')
data = response.json(){
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Run an action
Run an installed action.
application/jsonrequiredTriggerData request
trigger_dataobjectTrigger data object
idstringrequiredpathActionInstall id
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installs/{id}/run' \
-H 'Content-Type: application/json' \
-d '{
"trigger_data": {}
}'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}/run', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"trigger_data": {}
}),
});
const data = await response.json();import requests
payload = {
"trigger_data": {}
}
response = requests.get('https://api.mytommy.com/v1/actions/installs/{id}/run', json=payload)
data = response.json(){
"trigger_data": {}
}{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Run an action later
Schedule an installed action to run later.
idstringrequiredpathActionInstall id
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installs/{id}/run_later'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}/run_later', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/installs/{id}/run_later')
data = response.json(){
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get action event history
Get history for an installed action.
idstringrequiredpathActionInstall id
AuditLog response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/installs/{id}/history'const response = await fetch('https://api.mytommy.com/v1/actions/installs/{id}/history', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/installs/{id}/history')
data = response.json()[
{
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"message": "string"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get addon actions
Get all actions for an addon.
packagestringrequiredpathAddon package
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/addons/{package}/actions'const response = await fetch('https://api.mytommy.com/v1/addons/{package}/actions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/addons/{package}/actions')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Search actions
Search actions by term.
termstringrequiredquerySearch term used to filter actions
Action response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/actions/search'const response = await fetch('https://api.mytommy.com/v1/actions/search', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/actions/search')
data = response.json()[
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Chat
Start chats, list conversations, and manage participants.
Get chat rooms
Get all chat rooms.
Chat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/chats'const response = await fetch('https://api.mytommy.com/v1/chats', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/chats')
data = response.json()[
{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create chat room
Create a chat room with multiple users.
application/jsonrequiredChatInput request
titlestringThe chat room title.
groupbooleanfavoritebooleanmutebooleanuser_idsArray<integer>Chat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/chats' \
-H 'Content-Type: application/json' \
-d '{
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/chats', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"title": "Example Title",
"group": True,
"favorite": True,
"mute": True,
"user_ids": [
0
]
}
response = requests.post('https://api.mytommy.com/v1/chats', json=payload)
data = response.json(){
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get or create chat room
Get or create a chat room with multiple given users.
application/jsonrequiredChatInitiateInput request
Array of user IDs to initiate the chat with.
user_idsArray<integer>requiredChat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/chats/initiate' \
-H 'Content-Type: application/json' \
-d '{
"user_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/chats/initiate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"user_ids": [
0
]
}
response = requests.post('https://api.mytommy.com/v1/chats/initiate', json=payload)
data = response.json(){
"user_ids": [
0
]
}{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get chat
Get a single chat object by it's ID.
idinteger (int64)requiredpathChat id
Chat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/chats/{id}'const response = await fetch('https://api.mytommy.com/v1/chats/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/chats/{id}')
data = response.json(){
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update chat
Update a chat object.
application/jsonrequiredChatInput request
titlestringThe chat room title.
groupbooleanfavoritebooleanmutebooleanuser_idsArray<integer>idinteger (int64)requiredpathChat id
Chat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/chats/{id}' \
-H 'Content-Type: application/json' \
-d '{
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}'const response = await fetch('https://api.mytommy.com/v1/chats/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}),
});
const data = await response.json();import requests
payload = {
"title": "Example Title",
"group": True,
"favorite": True,
"mute": True,
"user_ids": [
0
]
}
response = requests.put('https://api.mytommy.com/v1/chats/{id}', json=payload)
data = response.json(){
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete chat
Delete a chat object.
application/jsonrequiredChat request
A representation of a Chat
idinteger (int64)Unique chat identifier
user_idinteger (int64)The user ID of the chat owner.
team_idinteger (int64)The team ID.
titlestringThe chat room title.
groupbooleanfavoritebooleanmutebooleanunread_messages_countinteger (int64)usersArray<any>idinteger (int64)Unique identifier
chat_idinteger (int64)requireduser_idinteger (int64)requiredfirst_namestringlast_namestringicon_urlstringdeletedbooleanidinteger (int64)requiredpathChat id
Chat response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/chats/{id}' \
-H 'Content-Type: application/json' \
-d '{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}'const response = await fetch('https://api.mytommy.com/v1/chats/{id}', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}),
});
const data = await response.json();import requests
payload = {
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": True,
"favorite": True,
"mute": True,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": True
}
]
}
response = requests.delete('https://api.mytommy.com/v1/chats/{id}', json=payload)
data = response.json(){
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get chat messages
Get all messages belonging to the given chat.
chat_idinteger (int64)requiredpathChat chat_id
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/chats/{chat_id}/messages'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/messages', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/chats/{chat_id}/messages')
data = response.json()[
{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create create message
Create a chat and send it to the chat participants.
application/jsonrequiredMessageInput request
chat_idinteger (int64)sender_idinteger (int64)requiredbodystringrequiredkindstringsend_atstring (date-time)Time in the future to send the message
attachmentsArray<string>Object for creating or updating an Attachment.
chat_idinteger (int64)requiredpathChat chat_id
Message response
Unauthorized
Forbidden
Rate limit error
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/chats/{chat_id}/messages' \
-H 'Content-Type: application/json' \
-d '{
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}),
});
const data = await response.json();import requests
payload = {
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}
response = requests.post('https://api.mytommy.com/v1/chats/{chat_id}/messages', json=payload)
data = response.json(){
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get chat message
Get a chat message belonging to the given chat.
chat_idinteger (int64)requiredpathChat chat_id
idinteger (int64)requiredpathMessage id
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}')
data = response.json(){
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete chat message
Delete a chat message belonging to the given chat.
chat_idinteger (int64)requiredpathChat chat_id
idinteger (int64)requiredpathMessage id
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/chats/{chat_id}/messages/{id}')
data = response.json(){
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get chat users
Get all users participating in the given chat.
chat_idinteger (int64)requiredpathChat chat_id
ChatUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/chats/{chat_id}/users'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/users', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/chats/{chat_id}/users')
data = response.json()[
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create chat user
Create and add a user to the chat.
application/jsonrequiredUserID request
User ID parameter
user_idinteger (int64)chat_idinteger (int64)requiredpathChat chat_id
ChatUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/chats/{chat_id}/users' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 0
}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"user_id": 0
}),
});
const data = await response.json();import requests
payload = {
"user_id": 0
}
response = requests.post('https://api.mytommy.com/v1/chats/{chat_id}/users', json=payload)
data = response.json(){
"user_id": 0
}{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete chat user
Delete a chat user.
chat_idinteger (int64)requiredpathChat chat_id
user_idinteger (int64)requiredpathUser user_id
ChatUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/chats/{chat_id}/users/{user_id}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/users/{user_id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/chats/{chat_id}/users/{user_id}')
data = response.json(){
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create reaction
Create a reaction to a message in the chat.
application/jsonrequiredReactionInput request
message_idinteger (int64)requiredThe message ID to react to
valuestringrequiredThe reaction emoji value
chat_idinteger (int64)requiredpathChat chat_id
MessageFlag response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/chats/{chat_id}/reactions' \
-H 'Content-Type: application/json' \
-d '{
"message_id": 0,
"value": "string"
}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/reactions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"message_id": 0,
"value": "string"
}),
});
const data = await response.json();import requests
payload = {
"message_id": 0,
"value": "string"
}
response = requests.post('https://api.mytommy.com/v1/chats/{chat_id}/reactions', json=payload)
data = response.json(){
"message_id": 0,
"value": "string"
}{
"id": 123,
"user_id": 0,
"message_id": 0,
"chat_id": 0,
"kind": "string",
"value": "string",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete reaction
Delete a reaction from a message.
chat_idinteger (int64)requiredpathChat chat_id
idinteger (int64)requiredpathMessageFlag id
MessageFlag response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/chats/{chat_id}/reactions/{id}'const response = await fetch('https://api.mytommy.com/v1/chats/{chat_id}/reactions/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/chats/{chat_id}/reactions/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"message_id": 0,
"chat_id": 0,
"kind": "string",
"value": "string",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create and send a chat message to the receiver
Create and send a chat message to the receiver.
application/jsonrequiredMessageInput request
chat_idinteger (int64)sender_idinteger (int64)requiredbodystringrequiredkindstringsend_atstring (date-time)Time in the future to send the message
attachmentsArray<string>Object for creating or updating an Attachment.
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/messages' \
-H 'Content-Type: application/json' \
-d '{
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}'const response = await fetch('https://api.mytommy.com/v1/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}),
});
const data = await response.json();import requests
payload = {
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}
response = requests.post('https://api.mytommy.com/v1/messages', json=payload)
data = response.json(){
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get recent chat messages
Get recent chat messages for the current account scope.
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/messages/recent'const response = await fetch('https://api.mytommy.com/v1/messages/recent', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/messages/recent')
data = response.json()[
{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get favorite chat messages
Get favorite chat messages for the current account scope.
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/messages/favorite'const response = await fetch('https://api.mytommy.com/v1/messages/favorite', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/messages/favorite')
data = response.json()[
{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Message
Send and retrieve messages, mark read, and more.
Update message
Update a message object.
application/jsonrequiredMessageInput request
chat_idinteger (int64)sender_idinteger (int64)requiredbodystringrequiredkindstringsend_atstring (date-time)Time in the future to send the message
attachmentsArray<string>Object for creating or updating an Attachment.
idinteger (int64)requiredpathMessage id
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/messages/{id}' \
-H 'Content-Type: application/json' \
-d '{
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}'const response = await fetch('https://api.mytommy.com/v1/messages/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}),
});
const data = await response.json();import requests
payload = {
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}
response = requests.put('https://api.mytommy.com/v1/messages/{id}', json=payload)
data = response.json(){
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete message
Delete a message object.
application/jsonrequiredMessage request
A representation of a Message
idinteger (int64)Unique message identifier
chat_idinteger (int64)Associated chat ID
sender_idinteger (int64)bodystringMessage contents
kindstringchat_titlestringsender_first_namestringsender_last_namestringsender_icon_urlstringsent_atstring (date-time)attachmentsArray<any>Object that represents an Attachment.
signed_idstringcontent_typestringfilenamestringurlstringidinteger (int64)requiredpathMessage id
Message response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/messages/{id}' \
-H 'Content-Type: application/json' \
-d '{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}'const response = await fetch('https://api.mytommy.com/v1/messages/{id}', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}),
});
const data = await response.json();import requests
payload = {
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}
response = requests.delete('https://api.mytommy.com/v1/messages/{id}', json=payload)
data = response.json(){
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Fragment
Reusable content fragments and related operations.
Get fragments
Get all fragments.
Fragment response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/fragments'const response = await fetch('https://api.mytommy.com/v1/fragments', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/fragments')
data = response.json()[
{
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create an fragment
Create an fragment
application/jsonrequiredFragmentInput request
Object for creating or updating an Fragment.
kindstringnamestringDisplay name
datastringtimestring (date-time)parent_idinteger (int64)attachmentsArray<string>Object for creating or updating an Attachment.
Fragment response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/fragments' \
-H 'Content-Type: application/json' \
-d '{
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}'const response = await fetch('https://api.mytommy.com/v1/fragments', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}),
});
const data = await response.json();import requests
payload = {
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}
response = requests.post('https://api.mytommy.com/v1/fragments', json=payload)
data = response.json(){
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an fragment
Get an fragment object.
idinteger (int64)requiredpathFragment id
Fragment response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/fragments/{id}'const response = await fetch('https://api.mytommy.com/v1/fragments/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/fragments/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an fragment
Update an fragment object.
application/jsonrequiredFragmentInput request
Object for creating or updating an Fragment.
kindstringnamestringDisplay name
datastringtimestring (date-time)parent_idinteger (int64)attachmentsArray<string>Object for creating or updating an Attachment.
idinteger (int64)requiredpathFragment id
Fragment response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/fragments/{id}' \
-H 'Content-Type: application/json' \
-d '{
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}'const response = await fetch('https://api.mytommy.com/v1/fragments/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}),
});
const data = await response.json();import requests
payload = {
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}
response = requests.put('https://api.mytommy.com/v1/fragments/{id}', json=payload)
data = response.json(){
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete an fragment
Delete an fragment object.
idinteger (int64)requiredpathFragment id
Fragment response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/fragments/{id}'const response = await fetch('https://api.mytommy.com/v1/fragments/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/fragments/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Invitation
Create, accept, decline, and manage invitations.
Get all invitations associated with the current account
Get all invitations associated with the current account.
Invitation response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/invitations'const response = await fetch('https://api.mytommy.com/v1/invitations', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/invitations')
data = response.json()[
{
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create invitation
Create an invitation link for a member or non-menmer to connect with the current user or team.
application/jsonrequiredInvitationInput request
Object for creating an Invitation.
friend_idinteger (int64)invitee_idinteger (int64)invitee_typestringmessagestringInvitation response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/invitations' \
-H 'Content-Type: application/json' \
-d '{
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string"
}'const response = await fetch('https://api.mytommy.com/v1/invitations', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string"
}),
});
const data = await response.json();import requests
payload = {
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string"
}
response = requests.post('https://api.mytommy.com/v1/invitations', json=payload)
data = response.json(){
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string"
}{
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get invitations
Get an invitations object by token.
tokeninteger (int64)requiredpathInvitation token
Invitation response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/invitations/{token}'const response = await fetch('https://api.mytommy.com/v1/invitations/{token}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/invitations/{token}')
data = response.json(){
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Accept an invitation
Accept an invitation belonging to the given token.
tokenstringrequiredpathInvitation token
Invitation response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/invitations/{token}/accept'const response = await fetch('https://api.mytommy.com/v1/invitations/{token}/accept', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/invitations/{token}/accept')
data = response.json(){
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Reject an invitation
Reject an invitation belonging to the given token.
tokenstringrequiredpathInvitation token
Invitation response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/invitations/{token}/decline'const response = await fetch('https://api.mytommy.com/v1/invitations/{token}/decline', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/invitations/{token}/decline')
data = response.json(){
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Event
List and manage events and attendances.
Get events
Get all events.
Event response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/events'const response = await fetch('https://api.mytommy.com/v1/events', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/events')
data = response.json()[
{
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create an event
Create an event
application/jsonrequiredEventInput request
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)Event response
Unauthorized
Forbidden
Validation error
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/events' \
-H 'Content-Type: application/json' \
-d '{
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}'const response = await fetch('https://api.mytommy.com/v1/events', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}),
});
const data = await response.json();import requests
payload = {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}
response = requests.post('https://api.mytommy.com/v1/events', json=payload)
data = response.json(){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}{
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an event
Get an event object.
idinteger (int64)requiredpathEvent id
Event response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/events/{id}'const response = await fetch('https://api.mytommy.com/v1/events/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/events/{id}')
data = response.json(){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an event
Update an event object.
application/jsonrequiredEventInput request
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)idinteger (int64)requiredpathEvent id
Event response
Unauthorized
Forbidden
Validation error
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/events/{id}' \
-H 'Content-Type: application/json' \
-d '{
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}'const response = await fetch('https://api.mytommy.com/v1/events/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}),
});
const data = await response.json();import requests
payload = {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}
response = requests.put('https://api.mytommy.com/v1/events/{id}', json=payload)
data = response.json(){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}{
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete an event
Delete an event object.
idinteger (int64)requiredpathEvent id
Event response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/events/{id}'const response = await fetch('https://api.mytommy.com/v1/events/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/events/{id}')
data = response.json(){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Session
Authentication and session-related endpoints.
Login
This method handles users who are \ authenticating with an email or phone, and password combination.
application/jsonrequiredUserCredentials request
User login credentials
loginstringrequiredpasswordstringrequiredUser response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/sessions' \
-H 'Content-Type: application/json' \
-d '{
"login": "string",
"password": "string"
}'const response = await fetch('https://api.mytommy.com/v1/sessions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"login": "string",
"password": "string"
}),
});
const data = await response.json();import requests
payload = {
"login": "string",
"password": "string"
}
response = requests.post('https://api.mytommy.com/v1/sessions', json=payload)
data = response.json(){
"login": "string",
"password": "string"
}{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Logout
This method destroys the current user session.
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/sessions'const response = await fetch('https://api.mytommy.com/v1/sessions', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/sessions')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Geolocation
Geo services such as reverse geocoding and lookups.
Wallet
Payments, balances, and transactions.
Get wallet
Get wallet owned by the current account.
Wallet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet'const response = await fetch('https://api.mytommy.com/v1/wallet', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet')
data = response.json()[
{
"id": 123,
"user_id": 0,
"balance": 129900,
"credit_limit": 0,
"enable_notifications": true,
"show_balance": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update a wallet
Update a wallet.
application/jsonrequiredWalletInput request
Object for updating a Wallet
enable_notificationsbooleanshow_balancebooleanWallet response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/wallet' \
-H 'Content-Type: application/json' \
-d '{
"enable_notifications": true,
"show_balance": true
}'const response = await fetch('https://api.mytommy.com/v1/wallet', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"enable_notifications": true,
"show_balance": true
}),
});
const data = await response.json();import requests
payload = {
"enable_notifications": True,
"show_balance": True
}
response = requests.put('https://api.mytommy.com/v1/wallet', json=payload)
data = response.json(){
"enable_notifications": true,
"show_balance": true
}{
"id": 123,
"user_id": 0,
"balance": 129900,
"credit_limit": 0,
"enable_notifications": true,
"show_balance": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get wallet cards
Get wallet cards connected to the current account.
WalletCard response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet/cards'const response = await fetch('https://api.mytommy.com/v1/wallet/cards', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet/cards')
data = response.json()[
{
"id": 123,
"wallet_id": 0,
"wallet_account_id": 0,
"name": "Example Name",
"icon_url": "string",
"balance": 0,
"credit_limit": 0,
"active": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get wallet accounts
Get wallet accounts connected to the current account.
WalletAccount response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet/accounts'const response = await fetch('https://api.mytommy.com/v1/wallet/accounts', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet/accounts')
data = response.json()[
{
"id": 123,
"team_id": 0,
"name": "Example Name",
"card_name": "string",
"phone": "string",
"vendor_reference": "string",
"icon_url": "string",
"description": "Short description",
"enable_chat": true,
"enable_integrations": true,
"active": true
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a wallet account
Get a wallet account by ID.
idinteger (int64)requiredpathWalletAccount id
WalletAccount response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet/accounts/{id}'const response = await fetch('https://api.mytommy.com/v1/wallet/accounts/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet/accounts/{id}')
data = response.json(){
"id": 123,
"team_id": 0,
"name": "Example Name",
"card_name": "string",
"phone": "string",
"vendor_reference": "string",
"icon_url": "string",
"description": "Short description",
"enable_chat": true,
"enable_integrations": true,
"active": true
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get wallet transactions
Get wallet transactions belonging to the current account.
WalletTransaction response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet/transactions'const response = await fetch('https://api.mytommy.com/v1/wallet/transactions', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet/transactions')
data = response.json()[
{
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"icon_url": "string",
"invoice_url": "string",
"status": "active",
"amount": 0,
"vendor_reference": "string"
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create a wallet transaction
Create a wallet transaction.
application/jsonrequiredWalletTransactionInput request
Object for creating or updating a Wallet Transaction
wallet_card_idinteger (int64)requiredwallet_account_idinteger (int64)requiredaddon_idinteger (int64)addon_install_idinteger (int64)payee_namestringamountnumber (double)requiredWalletTransaction response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/wallet/transactions' \
-H 'Content-Type: application/json' \
-d '{
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"amount": 0
}'const response = await fetch('https://api.mytommy.com/v1/wallet/transactions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"amount": 0
}),
});
const data = await response.json();import requests
payload = {
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"amount": 0
}
response = requests.post('https://api.mytommy.com/v1/wallet/transactions', json=payload)
data = response.json(){
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"amount": 0
}{
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"icon_url": "string",
"invoice_url": "string",
"status": "active",
"amount": 0,
"vendor_reference": "string"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get a wallet transaction
Get a wallet transaction by ID.
idinteger (int64)requiredpathWalletTransaction id
WalletTransaction response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/wallet/transactions/{id}'const response = await fetch('https://api.mytommy.com/v1/wallet/transactions/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/wallet/transactions/{id}')
data = response.json(){
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"icon_url": "string",
"invoice_url": "string",
"status": "active",
"amount": 0,
"vendor_reference": "string"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Refund a wallet transaction
Refund a wallet transaction by ID.
idinteger (int64)requiredpathWalletTransaction id
WalletTransaction response
Unauthorized
Forbidden
Validation error
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/wallet/transactions/{id}/refund'const response = await fetch('https://api.mytommy.com/v1/wallet/transactions/{id}/refund', {
method: 'POST',
});
const data = await response.json();import requests
response = requests.post('https://api.mytommy.com/v1/wallet/transactions/{id}/refund')
data = response.json(){
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"icon_url": "string",
"invoice_url": "string",
"status": "active",
"amount": 0,
"vendor_reference": "string"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Vendor
Vendor catalogs, products, and orders.
Get vendor orders
Get all vendor orders.
vendor_team_idstringrequiredpathTeam team_id
VendorOrder response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders'const response = await fetch('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders')
data = response.json()[
{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Create an vendor order
Create an vendor order
application/jsonrequiredVendorOrderInput request
Object for creating or updating an VendorOrder.
assignee_idinteger (int64)assignee_team_idinteger (int64)namestringDisplay name
statusstringCurrent status
canceledbooleandataobjectevent_attributesobjectObject for creating or updating an Event.
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)coupon_idsArray<integer>Array coupon IDs.
order_items_attributesArray<object>Object for creating or updating an VendorOrderItem.
orderable_idinteger (int64)orderable_typestringquantityinteger (int64)vendor_team_idstringrequiredpathTeam team_id
VendorOrder response
Unauthorized
Forbidden
Validation error
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders' \
-H 'Content-Type: application/json' \
-d '{
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}'const response = await fetch('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}),
});
const data = await response.json();import requests
payload = {
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": True,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}
response = requests.post('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders', json=payload)
data = response.json(){
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get an vendor order
Get an vendor order object.
vendor_team_idstringrequiredpathTeam team_id
idinteger (int64)requiredpathVendorOrder id
VendorOrder response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}'const response = await fetch('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Update an vendor order
Update an vendor order object.
application/jsonrequiredVendorOrderInput request
Object for creating or updating an VendorOrder.
assignee_idinteger (int64)assignee_team_idinteger (int64)namestringDisplay name
statusstringCurrent status
canceledbooleandataobjectevent_attributesobjectObject for creating or updating an Event.
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)coupon_idsArray<integer>Array coupon IDs.
order_items_attributesArray<object>Object for creating or updating an VendorOrderItem.
orderable_idinteger (int64)orderable_typestringquantityinteger (int64)vendor_team_idstringrequiredpathTeam team_id
idinteger (int64)requiredpathVendorOrder id
VendorOrder response
Unauthorized
Forbidden
Validation error
Internal error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X PUT 'https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}' \
-H 'Content-Type: application/json' \
-d '{
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}'const response = await fetch('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}),
});
const data = await response.json();import requests
payload = {
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": True,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}
response = requests.put('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}', json=payload)
data = response.json(){
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Cancel an vendor order
Cancel an vendor order object.
vendor_team_idstringrequiredpathTeam team_id
idinteger (int64)requiredpathVendorOrder id
VendorOrder response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}'const response = await fetch('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/vendors/{vendor_team_id}/orders/{id}')
data = response.json(){
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Device
Device registration and device actions.
Register a device
Register a mobile device for push notifications.
application/jsonrequiredDevice request
User device
idinteger (int64)Unique device identifier
user_idinteger (int64)requiredplatformstringiosandroidrequiredDevice platform type
environmentstringdevelopmentproductionDevice build environment
uuidstringrequiredDevice UUID
tokenstringDevice token
Device response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X POST 'https://api.mytommy.com/v1/devices' \
-H 'Content-Type: application/json' \
-d '{
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}'const response = await fetch('https://api.mytommy.com/v1/devices', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}),
});
const data = await response.json();import requests
payload = {
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}
response = requests.post('https://api.mytommy.com/v1/devices', json=payload)
data = response.json(){
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}{
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Delete a device
Delete a mobile device.
idinteger (int64)requiredpathDevice ID
Success response
Unauthorized
Forbidden
Internal error
Unexpected error
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X DELETE 'https://api.mytommy.com/v1/devices/{id}'const response = await fetch('https://api.mytommy.com/v1/devices/{id}', {
method: 'DELETE',
});
const data = await response.json();import requests
response = requests.delete('https://api.mytommy.com/v1/devices/{id}')
data = response.json(){
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Tag
Tagging resources for organization.
Syncs
Synchronization endpoints and statuses.
List syncs
Get a paginated list of sync operations for the current team.
pageinteger (int32)queryPage number for pagination
perinteger (int32)queryNumber of items per page
Syncs retrieved successfully
Unauthorized
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/syncs'const response = await fetch('https://api.mytommy.com/v1/syncs', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/syncs')
data = response.json()[
{
"id": 123,
"team_id": 0,
"user_id": 0,
"integration_id": 0,
"status": "active",
"direction": "import",
"item_type": "string",
"progress_percentage": 0,
"total_items": 0,
"success_items": 0,
"failed_items": 0,
"options": {},
"message": "string",
"started_at": "2024-01-15T09:30:00Z",
"ended_at": "2024-01-15T09:30:00Z",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00",
"user": {
"id": 0,
"name": "string",
"email": "string"
}
}
]{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Get sync details
Get detailed information about a specific sync operation.
idinteger (int64)requiredpathID of the sync to retrieve
Sync details retrieved successfully
Unauthorized
Not Found
api_keyapiKey in headerProvide your API key via the api_key header.
curl -X GET 'https://api.mytommy.com/v1/syncs/{id}'const response = await fetch('https://api.mytommy.com/v1/syncs/{id}', {
method: 'GET',
});
const data = await response.json();import requests
response = requests.get('https://api.mytommy.com/v1/syncs/{id}')
data = response.json(){
"id": 123,
"team_id": 0,
"user_id": 0,
"integration_id": 0,
"status": "active",
"direction": "import",
"item_type": "string",
"progress_percentage": 0,
"total_items": 0,
"success_items": 0,
"failed_items": 0,
"options": {},
"message": "string",
"started_at": "2024-01-15T09:30:00Z",
"ended_at": "2024-01-15T09:30:00Z",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00",
"user": {
"id": 0,
"name": "string",
"email": "string"
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}Models
Account
objectA representation of a Account
idinteger (int64)Unique account identifier
typestringuser_idinteger (int64)team_idinteger (int64)namestringAccount display name
contact_namestringkindstringicon_urlstringmobilestringnotification_countinteger (int64){
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
}Attachment
objectObject that represents an Attachment.
signed_idstringcontent_typestringfilenamestringurlstring{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}User
objectA representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png"
}UserInput
objectA representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
photostring (binary)passwordstring{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"photo": "<binary>",
"password": "string"
}Team
objectA representation of a Team
idinteger (int64)requiredUnique team identifier
user_idinteger (int64)requiredOwner user ID
namestringrequiredTeam display name
photostring (binary)icon_urlstringTeam icon URL
emailstringphonestringstatusstringCurrent status
slugstringfeaturesobjectFeature flags enabled for the team
Feature flags enabled for the team
compliancebooleantimesheetsbooleantimeclockbooleanavailabilitybooleanordersbooleanclientsbooleantrainingbooleanleavebooleandocumentsbooleanschedulingbooleanndisbooleanexperimentalbooleanmileageboolean{
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}TeamFeatures
objectFeature flags enabled for the team
compliancebooleantimesheetsbooleantimeclockbooleanavailabilitybooleanordersbooleanclientsbooleantrainingbooleanleavebooleandocumentsbooleanschedulingbooleanndisbooleanexperimentalbooleanmileageboolean{
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}TeamInput
objectA representation of a Team
idinteger (int64)requiredUnique team identifier
user_idinteger (int64)requiredOwner user ID
namestringrequiredTeam display name
photostring (binary)icon_urlstringTeam icon URL
emailstringphonestringstatusstringCurrent status
slugstringfeaturesobjectFeature flags enabled for the team
Feature flags enabled for the team
compliancebooleantimesheetsbooleantimeclockbooleanavailabilitybooleanordersbooleanclientsbooleantrainingbooleanleavebooleandocumentsbooleanschedulingbooleanndisbooleanexperimentalbooleanmileageboolean{
"id": 9876,
"user_id": 12345,
"name": "Operations",
"photo": "<binary>",
"icon_url": "https://cdn.example.com/teams/ops.png",
"email": "string",
"phone": "string",
"status": "active",
"slug": "string",
"features": {
"compliance": true,
"timesheets": true,
"timeclock": true,
"availability": true,
"orders": true,
"clients": true,
"training": true,
"leave": true,
"documents": true,
"scheduling": true,
"ndis": true,
"experimental": true,
"mileage": true
}
}TeamMemberInput
objectObject for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
]
}TeamMember
objectObject that represents a Team Member
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
idinteger (int64)user_idinteger (int64)team_idinteger (int64)first_namestringlast_namestringemailstringmobilestringmanagerbooleanmemberbooleanTrue when the team member has signed up to Tommy
statusstringicon_urlstringaddon_linksArray<any>Array of profile links accessible by the current User on the Team Member profile
titlestringHuman-friendly title
packagestringurlstringicon_urlstring{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}DeveloperInput
objectObject representing a Tommy developer
namestringDisplay name
detailsstring{
"name": "Example Name",
"details": "string"
}Developer
objectObject representing a Tommy developer
namestringDisplay name
detailsstringicon_urlstringaddonsArray<any>idinteger (int64)requiredUnique identifier
user_idinteger (int64)requireddeveloper_idinteger (int64)packagestringrequiredtitlestringHuman-friendly title
authorstringenvironmentstringversionstringdescriptionstringHuman-friendly description
homepagestringicon_urlstringfile_base_urlstringinstalledbooleanupdated_atstring (date-time)Last update timestamp (ISO8601)
rolesArray<string>Array of roles required to install this addon.
permissionsArray<object>input_devicesArray<object>localesArray<string>viewsArray<any>idstringUnique identifier
titlestringHuman-friendly title
typestringpathstringindexbooleanicon_urlstringactionsArray<any>idinteger (int64)Unique identifier
user_idinteger (int64)developer_idinteger (int64)action_version_idinteger (int64)authorstringtriggeranyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
activityanyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
dependenciesobjectnamestringDisplay name
summarystringdescriptionstringHuman-friendly description
icon_urlstringinstalledbooleankindstringuniquebooleansolutionsArray<any>idinteger (int64)Unique identifier
user_idinteger (int64)developer_idinteger (int64)namestringDisplay name
summarystringdescriptionstringHuman-friendly description
{
"name": "Example Name",
"details": "string",
"icon_url": "string",
"addons": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}
],
"actions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}
],
"solutions": [
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"name": "Example Name",
"summary": "string",
"description": "Short description"
}
]
}Solution
objectidinteger (int64)Unique identifier
user_idinteger (int64)developer_idinteger (int64)namestringDisplay name
summarystringdescriptionstringHuman-friendly description
{
"id": 123,
"user_id": 0,
"developer_id": 0,
"name": "Example Name",
"summary": "string",
"description": "Short description"
}Chat
objectA representation of a Chat
idinteger (int64)Unique chat identifier
user_idinteger (int64)The user ID of the chat owner.
team_idinteger (int64)The team ID.
titlestringThe chat room title.
groupbooleanfavoritebooleanmutebooleanunread_messages_countinteger (int64)usersArray<any>idinteger (int64)Unique identifier
chat_idinteger (int64)requireduser_idinteger (int64)requiredfirst_namestringlast_namestringicon_urlstringdeletedboolean{
"id": 222,
"user_id": 0,
"team_id": 0,
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"unread_messages_count": 0,
"users": [
{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}
]
}ChatInput
objecttitlestringThe chat room title.
groupbooleanfavoritebooleanmutebooleanuser_idsArray<integer>{
"title": "Example Title",
"group": true,
"favorite": true,
"mute": true,
"user_ids": [
0
]
}ChatInitiateInput
objectArray of user IDs to initiate the chat with.
user_idsArray<integer>required{
"user_ids": [
0
]
}ChatUser
objectidinteger (int64)Unique identifier
chat_idinteger (int64)requireduser_idinteger (int64)requiredfirst_namestringlast_namestringicon_urlstringdeletedboolean{
"id": 123,
"chat_id": 0,
"user_id": 0,
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"deleted": true
}MessageFlag
objectidinteger (int64)Unique identifier
user_idinteger (int64)message_idinteger (int64)chat_idinteger (int64)kindstringThe type of flag (read, reaction, etc.)
valuestringThe reaction emoji value
created_atstring (date-time)Creation timestamp (ISO8601)
updated_atstring (date-time)Last update timestamp (ISO8601)
{
"id": 123,
"user_id": 0,
"message_id": 0,
"chat_id": 0,
"kind": "string",
"value": "string",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00"
}ReactionInput
objectmessage_idinteger (int64)requiredThe message ID to react to
valuestringrequiredThe reaction emoji value
{
"message_id": 0,
"value": "string"
}MessageInput
objectchat_idinteger (int64)sender_idinteger (int64)requiredbodystringrequiredkindstringsend_atstring (date-time)Time in the future to send the message
attachmentsArray<string>Object for creating or updating an Attachment.
{
"chat_id": 0,
"sender_id": 0,
"body": "string",
"kind": "string",
"send_at": "2024-01-15T09:30:00Z",
"attachments": [
"<binary>"
]
}Message
objectA representation of a Message
idinteger (int64)Unique message identifier
chat_idinteger (int64)Associated chat ID
sender_idinteger (int64)bodystringMessage contents
kindstringchat_titlestringsender_first_namestringsender_last_namestringsender_icon_urlstringsent_atstring (date-time)attachmentsArray<any>Object that represents an Attachment.
signed_idstringcontent_typestringfilenamestringurlstring{
"id": 333,
"chat_id": 222,
"sender_id": 0,
"body": "Hello world",
"kind": "string",
"chat_title": "string",
"sender_first_name": "string",
"sender_last_name": "string",
"sender_icon_url": "string",
"sent_at": "2024-01-15T09:30:00Z",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}AddonView
objectidstringUnique identifier
titlestringHuman-friendly title
typestringpathstringindexbooleanicon_urlstring{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}AddonLink
objecttitlestringHuman-friendly title
packagestringurlstringicon_urlstring{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}Addon
objectidinteger (int64)requiredUnique identifier
user_idinteger (int64)requireddeveloper_idinteger (int64)packagestringrequiredtitlestringHuman-friendly title
authorstringenvironmentstringversionstringdescriptionstringHuman-friendly description
homepagestringicon_urlstringfile_base_urlstringinstalledbooleanupdated_atstring (date-time)Last update timestamp (ISO8601)
rolesArray<string>Array of roles required to install this addon.
permissionsArray<object>input_devicesArray<object>localesArray<string>viewsArray<any>idstringUnique identifier
titlestringHuman-friendly title
typestringpathstringindexbooleanicon_urlstring{
"id": 123,
"user_id": 0,
"developer_id": 0,
"package": "string",
"title": "Example Title",
"author": "string",
"environment": "string",
"version": "string",
"description": "Short description",
"homepage": "string",
"icon_url": "string",
"file_base_url": "string",
"installed": true,
"updated_at": "2025-01-02 12:00:00+00:00",
"roles": [
"string"
],
"permissions": [
{}
],
"input_devices": [
{}
],
"locales": [
"string"
],
"views": [
{
"id": 123,
"title": "Example Title",
"type": "string",
"path": "string",
"index": true,
"icon_url": "string"
}
]
}AuditLog
objectuser_idinteger (int64)team_idinteger (int64)namestringDisplay name
messagestring{
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"message": "string"
}Activity
objectidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
{
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
}Trigger
objectidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
{
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
}Action
objectidinteger (int64)Unique identifier
user_idinteger (int64)developer_idinteger (int64)action_version_idinteger (int64)authorstringtriggeranyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
activityanyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
dependenciesobjectnamestringDisplay name
summarystringdescriptionstringHuman-friendly description
icon_urlstringinstalledbooleankindstringuniqueboolean{
"id": 123,
"user_id": 0,
"developer_id": 0,
"action_version_id": 0,
"author": "string",
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"dependencies": {},
"name": "Example Name",
"summary": "string",
"description": "Short description",
"icon_url": "string",
"installed": true,
"kind": "string",
"unique": true
}ActionInstall
objectidinteger (int64)Unique identifier
action_idinteger (int64)addon_install_idinteger (int64)titlestringHuman-friendly title
summarystringdescriptionstringHuman-friendly description
scheduleobjectinstalledbooleandeleted_atstring (date-time)updated_atstring (date-time)Last update timestamp (ISO8601)
tag_idsArray<integer>tags_listArray<string>triggeranyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
activityanyidinteger (int64)Unique identifier
action_version_idinteger (int64)namestringDisplay name
descriptionstringHuman-friendly description
settingsobject{
"id": 123,
"action_id": 0,
"addon_install_id": 0,
"title": "Example Title",
"summary": "string",
"description": "Short description",
"schedule": {},
"installed": true,
"deleted_at": "2024-01-15T09:30:00Z",
"updated_at": "2025-01-02 12:00:00+00:00",
"tag_ids": [
0
],
"tags_list": [
"string"
],
"trigger": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"activity": {
"id": 123,
"action_version_id": 0,
"name": "Example Name",
"description": "Short description"
},
"settings": {}
}Setting
objectuser_idinteger (int64)team_idinteger (int64)addon_install_idinteger (int64)resource_idinteger (int64)resource_typestringcontextstringformatstringdataobjectrequiredSetting data as JSON.
{
"user_id": 0,
"team_id": 0,
"addon_install_id": 0,
"resource_id": 0,
"resource_type": "string",
"context": "string",
"format": "string",
"data": {}
}SettingData
objectdataobjectrequiredSetting data as JSON, boolean, integer or string.
contextstring_formatstring{
"data": {},
"context": "string",
"_format": "string"
}FragmentInput
objectObject for creating or updating an Fragment.
kindstringnamestringDisplay name
datastringtimestring (date-time)parent_idinteger (int64)attachmentsArray<string>Object for creating or updating an Attachment.
{
"kind": "string",
"name": "Example Name",
"data": "string",
"time": "2024-01-15T09:30:00Z",
"parent_id": 0,
"attachments": [
"<binary>"
]
}Fragment
objectObject that represents an Fragment.
idinteger (int64)Unique identifier
user_idinteger (int64)requiredteam_idinteger (int64)addons_install_idinteger (int64)kindstringnamestringDisplay name
dataobjectstart_atstring (date-time)end_atstring (date-time)parent_idinteger (int64)resource_idinteger (int64)resource_typestringattachmentsArray<any>Object that represents an Attachment.
signed_idstringcontent_typestringfilenamestringurlstring{
"id": 123,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0,
"kind": "string",
"name": "Example Name",
"data": {},
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"parent_id": 0,
"resource_id": 0,
"resource_type": "string",
"attachments": [
{
"signed_id": "string",
"content_type": "string",
"filename": "string",
"url": "string"
}
]
}ContactInput
objectA representation of a Contact
friend_idinteger (int64)requiredFriend user ID
favoritebooleanmutebooleanpersonalbooleanrolesArray<string>Array of roles assigned to the Contact
locationsArray<string>Array of locations assigned to the Contact
tagsArray<string>Array of tags assigned to the Contact
{
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
]
}Contact
objectA representation of a Contact
friend_idinteger (int64)requiredFriend user ID
favoritebooleanmutebooleanpersonalbooleanrolesArray<string>Array of roles assigned to the Contact
locationsArray<string>Array of locations assigned to the Contact
tagsArray<string>Array of tags assigned to the Contact
idinteger (int64)typestringfirst_namestringlast_namestringicon_urlstringemailstringmobilestringstatusstringmemberbooleanTrue when the friend has signed up to Tommy
last_online_atstring (date-time){
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
}ContactRequest
objectA representation of a User
idinteger (int64)Unique user identifier
statusstringCurrent account status
first_namestringGiven name
last_namestringFamily name
slugstringURL-safe identifier
emailstringEmail address
mobilestringMobile phone number in E.164 format
dobstringDate of birth (YYYY-MM-DD)
localestringIETF language tag
icon_urlstringAvatar image URL
team_idsArray<integer>viastring{
"id": 12345,
"status": "active",
"first_name": "Alex",
"last_name": "Johnson",
"slug": "alex-johnson",
"email": "alex@example.com",
"mobile": "+15551234567",
"dob": "1990-01-01",
"locale": "en-US",
"icon_url": "https://cdn.example.com/avatars/12345.png",
"team_ids": [
0
],
"via": "string"
}InvitationInput
objectObject for creating an Invitation.
friend_idinteger (int64)invitee_idinteger (int64)invitee_typestringmessagestring{
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string"
}Invitation
objectInvitation for a user to join Tommy
Object for creating an Invitation.
friend_idinteger (int64)invitee_idinteger (int64)invitee_typestringmessagestringuser_idinteger (int64)team_idinteger (int64)inviteranyA representation of a Account
A representation of a Account
idinteger (int64)Unique account identifier
typestringuser_idinteger (int64)team_idinteger (int64)namestringAccount display name
contact_namestringkindstringicon_urlstringmobilestringnotification_countinteger (int64)inviteeanyA representation of a Account
A representation of a Account
idinteger (int64)Unique account identifier
typestringuser_idinteger (int64)team_idinteger (int64)namestringAccount display name
contact_namestringkindstringicon_urlstringmobilestringnotification_countinteger (int64)contactobject & anyA representation of a Contact
friend_idinteger (int64)requiredFriend user ID
favoritebooleanmutebooleanpersonalbooleanrolesArray<string>Array of roles assigned to the Contact
locationsArray<string>Array of locations assigned to the Contact
tagsArray<string>Array of tags assigned to the Contact
idinteger (int64)typestringfirst_namestringlast_namestringicon_urlstringemailstringmobilestringstatusstringmemberbooleanTrue when the friend has signed up to Tommy
last_online_atstring (date-time)tokenstringstatusstringlinkstringtimes_sentinteger (int64)sent_atstring (date-time)accepted_atstring (date-time){
"friend_id": 0,
"invitee_id": 0,
"invitee_type": "string",
"message": "string",
"user_id": 0,
"team_id": 0,
"inviter": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"invitee": {
"id": 111,
"type": "string",
"user_id": 0,
"team_id": 0,
"name": "Acme Corp",
"contact_name": "string",
"kind": "string",
"icon_url": "string",
"mobile": "string",
"notification_count": 0
},
"contact": {
"friend_id": 0,
"favorite": true,
"mute": true,
"personal": true,
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"type": "string",
"first_name": "string",
"last_name": "string",
"icon_url": "string",
"email": "string",
"mobile": "string",
"status": "string",
"member": true,
"last_online_at": "2024-01-15T09:30:00Z"
},
"token": "string",
"status": "string",
"link": "string",
"times_sent": 0,
"sent_at": "2024-01-15T09:30:00Z",
"accepted_at": "2024-01-15T09:30:00Z"
}EventInput
objectObject for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
}Event
objectObject that represents an Event.
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)idinteger (int64)user_idinteger (int64)team_idinteger (int64)addons_install_idinteger (int64){
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}UserCredentials
objectUser login credentials
loginstringrequiredpasswordstringrequired{
"login": "string",
"password": "string"
}Permission
objectuser_idinteger (int64)team_idinteger (int64)namestringDisplay name
titlestringHuman-friendly title
hintstringresource_typestringresource_kindstringoperationsArray<string>Array of permissable operations
{
"user_id": 0,
"team_id": 0,
"name": "Example Name",
"title": "Example Title",
"hint": "string",
"resource_type": "string",
"resource_kind": "string",
"operations": [
"string"
]
}GeolocationInput
objectObject for creating or updating an Geolocation.
latitudenumber (float)longitudenumber (float)accuracynumber (float)timestampstring (date-time)kindstringtitlestringHuman-friendly title
detailsstring{
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"timestamp": "2024-01-15T09:30:00Z",
"kind": "string",
"title": "Example Title",
"details": "string"
}Geolocation
objectObject that represents an Geolocation.
Object for creating or updating an Geolocation.
latitudenumber (float)longitudenumber (float)accuracynumber (float)timestampstring (date-time)kindstringtitlestringHuman-friendly title
detailsstringidinteger (int64)user_idinteger (int64)team_idinteger (int64)addons_install_idinteger (int64){
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"timestamp": "2024-01-15T09:30:00Z",
"kind": "string",
"title": "Example Title",
"details": "string",
"id": 0,
"user_id": 0,
"team_id": 0,
"addons_install_id": 0
}WalletInput
objectObject for updating a Wallet
enable_notificationsbooleanshow_balanceboolean{
"enable_notifications": true,
"show_balance": true
}Wallet
objectObject representing a Wallet
idinteger (int64)Unique identifier
user_idinteger (int64)balancenumber (double)Current wallet balance (cents or minor units unless noted)
credit_limitnumber (double)enable_notificationsbooleanshow_balanceboolean{
"id": 123,
"user_id": 0,
"balance": 129900,
"credit_limit": 0,
"enable_notifications": true,
"show_balance": true
}WalletCard
objectObject representing a Wallet Card
idinteger (int64)Unique identifier
wallet_idinteger (int64)wallet_account_idinteger (int64)namestringDisplay name
icon_urlstringbalancenumber (double)credit_limitnumber (double)activeboolean{
"id": 123,
"wallet_id": 0,
"wallet_account_id": 0,
"name": "Example Name",
"icon_url": "string",
"balance": 0,
"credit_limit": 0,
"active": true
}WalletAccount
objectObject representing a Wallet Account
idinteger (int64)Unique identifier
team_idinteger (int64)namestringDisplay name
card_namestringphonestringvendor_referencestringicon_urlstringdescriptionstringHuman-friendly description
enable_chatbooleanenable_integrationsbooleanactiveboolean{
"id": 123,
"team_id": 0,
"name": "Example Name",
"card_name": "string",
"phone": "string",
"vendor_reference": "string",
"icon_url": "string",
"description": "Short description",
"enable_chat": true,
"enable_integrations": true,
"active": true
}WalletTransactionInput
objectObject for creating or updating a Wallet Transaction
wallet_card_idinteger (int64)requiredwallet_account_idinteger (int64)requiredaddon_idinteger (int64)addon_install_idinteger (int64)payee_namestringamountnumber (double)required{
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"amount": 0
}WalletTransaction
objectObject representing a Wallet Transaction
wallet_card_idinteger (int64)wallet_account_idinteger (int64)addon_idinteger (int64)addon_install_idinteger (int64)payee_namestringicon_urlstringinvoice_urlstringstatusstringpendingpaidrefundedfailedTransaction status
amountnumber (double)vendor_referencestring{
"wallet_card_id": 0,
"wallet_account_id": 0,
"addon_id": 0,
"addon_install_id": 0,
"payee_name": "string",
"icon_url": "string",
"invoice_url": "string",
"status": "active",
"amount": 0,
"vendor_reference": "string"
}VendorOrderItemInput
objectObject for creating or updating an VendorOrderItem.
orderable_idinteger (int64)orderable_typestringquantityinteger (int64){
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}VendorOrderInput
objectObject for creating or updating an VendorOrder.
assignee_idinteger (int64)assignee_team_idinteger (int64)namestringDisplay name
statusstringCurrent status
canceledbooleandataobjectevent_attributesobjectObject for creating or updating an Event.
Object for creating or updating an Event.
kindstringtitlestringHuman-friendly title
detailsstringlocation_namestringcolorstringstart_atstring (date-time)end_atstring (date-time)coupon_idsArray<integer>Array coupon IDs.
order_items_attributesArray<object>Object for creating or updating an VendorOrderItem.
orderable_idinteger (int64)orderable_typestringquantityinteger (int64){
"assignee_id": 0,
"assignee_team_id": 0,
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {},
"event_attributes": {
"kind": "string",
"title": "Example Title",
"details": "string",
"location_name": "string",
"color": "string",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z"
},
"coupon_ids": [
0
],
"order_items_attributes": [
{
"orderable_id": 0,
"orderable_type": "string",
"quantity": 0
}
]
}VendorOrder
objectObject that represents an VendorOrder.
idinteger (int64)Unique identifier
user_idinteger (int64)requiredteam_idinteger (int64)assignee_idinteger (int64)event_idinteger (int64)wallet_transaction_idinteger (int64)workforce_shift_idinteger (int64)coupon_idsArray<integer>Array coupon IDs.
namestringDisplay name
statusstringCurrent status
canceledbooleandataobject{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"wallet_transaction_id": 0,
"workforce_shift_id": 0,
"coupon_ids": [
0
],
"name": "Example Name",
"status": "active",
"canceled": true,
"data": {}
}WorkforceInput
objectObject for updating a Workforce account
namestringDisplay name
week_startstringmondayturesdaywednesdaytimeclock_require_gpsbooleantimeclock_require_photobooleantimeclock_enable_mobilebooleantimeclock_enable_webbooleantimeclock_enable_kioskbooleantimesheets_rounding_methodstringnoneupdownnearesttimesheets_rounding_minutesintegertimesheets_enable_break_roundingbooleanshift_upcoming_notification_minutesintegerMinutes before shift start to send notification
shift_forgot_clockin_minutesintegerMinutes after shift start to send forgot clockin notification
shift_forgot_clockout_minutesintegerMinutes after shift end to send forgot clockout notification
shift_notifications_enabledbooleanEnable/disable shift notifications
event_notifications_enabledbooleanEnable/disable event notifications
dataobjectArbitrary data storage
{
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {}
}Workforce
objectObject representing a Workforce account
Object for updating a Workforce account
namestringDisplay name
week_startstringmondayturesdaywednesdaytimeclock_require_gpsbooleantimeclock_require_photobooleantimeclock_enable_mobilebooleantimeclock_enable_webbooleantimeclock_enable_kioskbooleantimesheets_rounding_methodstringnoneupdownnearesttimesheets_rounding_minutesintegertimesheets_enable_break_roundingbooleanshift_upcoming_notification_minutesintegerMinutes before shift start to send notification
shift_forgot_clockin_minutesintegerMinutes after shift start to send forgot clockin notification
shift_forgot_clockout_minutesintegerMinutes after shift end to send forgot clockout notification
shift_notifications_enabledbooleanEnable/disable shift notifications
event_notifications_enabledbooleanEnable/disable event notifications
dataobjectArbitrary data storage
idinteger (int64){
"name": "Example Name",
"week_start": "monday",
"timeclock_require_gps": true,
"timeclock_require_photo": true,
"timeclock_enable_mobile": true,
"timeclock_enable_web": true,
"timeclock_enable_kiosk": true,
"timesheets_rounding_method": "none",
"timesheets_rounding_minutes": 0,
"timesheets_enable_break_rounding": true,
"shift_upcoming_notification_minutes": 0,
"shift_forgot_clockin_minutes": 0,
"shift_forgot_clockout_minutes": 0,
"shift_notifications_enabled": true,
"event_notifications_enabled": true,
"data": {},
"id": 0
}WorkforceEmployeeInput
objectObject for updating an employee
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
has_vehiclebooleancompliance_checkstringnotesstring{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"has_vehicle": true,
"compliance_check": "string",
"notes": "string"
}WorkforceEmployee
objectObject representing an employee
Object that represents a Team Member
Object for creating or updating a Team Member
user_idinteger (int64)requiredteam_idinteger (int64)requiredfavoritebooleanmutebooleanphotostring (binary)rolesArray<string>Array of roles assigned to the Team Member
locationsArray<string>Array of locations assigned to the Team Member
tagsArray<string>Array of tags assigned to the Team Member
idinteger (int64)user_idinteger (int64)team_idinteger (int64)first_namestringlast_namestringemailstringmobilestringmanagerbooleanmemberbooleanTrue when the team member has signed up to Tommy
statusstringicon_urlstringaddon_linksArray<any>Array of profile links accessible by the current User on the Team Member profile
titlestringHuman-friendly title
packagestringurlstringicon_urlstring{
"user_id": 0,
"team_id": 0,
"favorite": true,
"mute": true,
"photo": "<binary>",
"roles": [
"string"
],
"locations": [
"string"
],
"tags": [
"string"
],
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile": "string",
"manager": true,
"member": true,
"status": "string",
"icon_url": "string",
"addon_links": [
{
"title": "Example Title",
"package": "string",
"url": "string",
"icon_url": "string"
}
]
}WorkforceAvailabilityInput
objectObject for updating a availability
amintegerpmintegerndintegeram_lockedbooleanpm_lockedbooleannd_lockedbooleandatestring (date){
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15"
}WorkforceAvailability
objectObject representing a availability
Object for updating a availability
amintegerpmintegerndintegeram_lockedbooleanpm_lockedbooleannd_lockedbooleandatestring (date)idinteger (int64)user_idinteger (int64)team_idinteger (int64)employee_idinteger (int64){
"am": 0,
"pm": 0,
"nd": 0,
"am_locked": true,
"pm_locked": true,
"nd_locked": true,
"date": "2024-01-15",
"id": 0,
"user_id": 0,
"team_id": 0,
"employee_id": 0
}WorkforceShiftQuestion
objectObject representing a shift question
team_idinteger (int64)textstringoffset_minutesinteger (int64)whenstringalwaysstart_shiftend_shiftalwaysbooleanenabledbooleantag_idsArray<integer>{
"team_id": 0,
"text": "string",
"offset_minutes": 0,
"when": "always",
"always": true,
"enabled": true,
"tag_ids": [
0
]
}WorkforceShiftAnswer
objectObject representing a shift answer
team_idinteger (int64)shift_idinteger (int64)shift_question_idinteger (int64)attendance_idinteger (int64)user_idinteger (int64)textstring{
"team_id": 0,
"shift_id": 0,
"shift_question_id": 0,
"attendance_id": 0,
"user_id": 0,
"text": "string"
}WorkforceShiftInput
objectObject for updating a shift
titlestringHuman-friendly title
start_atstring (date-time)end_atstring (date-time)statusstringopenassignedpublishedCurrent status
location_idinteger (int64)location_namestringrolestringdepartmentstringdetailsstringdataobject{
"title": "Example Title",
"start_at": "2024-01-15T09:30:00Z",
"end_at": "2024-01-15T09:30:00Z",
"status": "active",
"location_id": 0,
"location_name": "string",
"role": "string",
"department": "string",
"details": "string",
"data": {}
}WorkforceShift
objectObject representing a shift
idinteger (int64)Unique identifier
user_idinteger (int64)team_idinteger (int64)assignee_idinteger (int64)event_idinteger (int64)shift_on_same_daybooleanshift_requestedboolean{
"id": 123,
"user_id": 0,
"team_id": 0,
"assignee_id": 0,
"event_id": 0,
"shift_on_same_day": true,
"shift_requested": true
}WorkforceShiftRequestInput
objectObject for updating a shift request
user_idinteger (int64)shift_idinteger (int64)statusstringrequestedshortlistedapprovedrejectedcanceledCurrent status
{
"user_id": 0,
"shift_id": 0,
"status": "active"
}WorkforceShiftRequest
objectObject representing a shift request
Object for updating a shift request
user_idinteger (int64)shift_idinteger (int64)statusstringrequestedshortlistedapprovedrejectedcanceledCurrent status
idinteger (int64)team_idinteger (int64)requestor_idinteger (int64){
"user_id": 0,
"shift_id": 0,
"status": "active",
"id": 0,
"team_id": 0,
"requestor_id": 0
}WorkforceTimesheetInput
objectObject for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualboolean{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true
}WorkforceTimesheetBulkInput
objectObject for bulk updating a timesheets
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleantimesheet_idsArray<integer>{
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"timesheet_ids": [
0
]
}WorkforceTimesheet
objectObject representing a timesheet
Object for updating a timesheet
statusstringunsubmittedsubmittedpreapprovedapproveddeniedCurrent status
resource_idinteger (int64)resource_typestringstart_datestring (date)end_datestring (date)manualbooleanidinteger (int64)user_idinteger (int64)team_idinteger (int64){
"status": "active",
"resource_id": 0,
"resource_type": "string",
"start_date": "2024-01-15",
"end_date": "2024-01-15",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0
}WorkforceTimesheetItemInput
objectObject for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualboolean{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true
}WorkforceTimesheetItem
objectObject representing a timesheet item
Object for updating a timesheet item
shift_idinteger (int64)timesheet_idinteger (int64)work_hoursnumber (float)break_hoursnumber (float)addressstringmanualbooleanidinteger (int64)user_idinteger (int64)team_idinteger (int64)activeboolean{
"shift_id": 0,
"timesheet_id": 0,
"work_hours": 0,
"break_hours": 0,
"address": "string",
"manual": true,
"id": 0,
"user_id": 0,
"team_id": 0,
"active": true
}WorkforceAttendanceInput
objectObject for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobject{
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {}
}WorkforceAttendance
objectObject representing an attendance
Object for updating an attendance
event_idinteger (int64)latitudenumber (float)longitudenumber (float)accuracynumber (float)statusstringstartpauseresumestopCurrent status
addressstringlocation_namestringimageobjectidinteger (int64)user_idinteger (int64){
"event_id": 0,
"latitude": 0,
"longitude": 0,
"accuracy": 0,
"status": "active",
"address": "string",
"location_name": "string",
"image": {},
"id": 0,
"user_id": 0
}Device
objectUser device
idinteger (int64)Unique device identifier
user_idinteger (int64)requiredplatformstringiosandroidrequiredDevice platform type
environmentstringdevelopmentproductionDevice build environment
uuidstringrequiredDevice UUID
tokenstringDevice token
{
"id": 444,
"user_id": 0,
"platform": "ios",
"environment": "development",
"uuid": "string",
"token": "xxxx-yyyy-zzzz"
}Tag
objectObject that represents a Tag.
idinteger (int64)requiredUnique tag identifier
namestringTag name
taggings_countinteger{
"id": 555,
"name": "priority",
"taggings_count": 0
}TaggingInput
objectObject for creating a Tagging.
contextstringmemberstagsroleslocationsTagging type
namestringDisplay name
{
"context": "members",
"name": "Example Name"
}Tagging
objectObject that represents a Tagging.
Object for creating a Tagging.
contextstringmemberstagsroleslocationsTagging type
namestringDisplay name
idinteger (int64){
"context": "members",
"name": "Example Name",
"id": 0
}Sync
objectA representation of a Sync operation
idinteger (int64)requiredUnique identifier
team_idinteger (int64)user_idinteger (int64)integration_idinteger (int64)statusstringpendingprocessingfailedcanceledcompleterequiredCurrent status of the sync
directionstringimportexportDirection of the sync
item_typestringrequiredType of items being synced
progress_percentagenumber (float)Progress percentage (0-100)
total_itemsinteger (int64)Total number of items to process
success_itemsinteger (int64)Number of successfully processed items
failed_itemsinteger (int64)Number of failed items
optionsobjectOptions used for the sync operation
messagestringError message if sync failed
started_atstring (date-time)When the sync started
ended_atstring (date-time)When the sync ended
created_atstring (date-time)When the sync was created
updated_atstring (date-time)When the sync was last updated
userobjectUser who initiated the sync
User who initiated the sync
idinteger (int64)namestringemailstring{
"id": 123,
"team_id": 0,
"user_id": 0,
"integration_id": 0,
"status": "active",
"direction": "import",
"item_type": "string",
"progress_percentage": 0,
"total_items": 0,
"success_items": 0,
"failed_items": 0,
"options": {},
"message": "string",
"started_at": "2024-01-15T09:30:00Z",
"ended_at": "2024-01-15T09:30:00Z",
"created_at": "2025-01-01 12:00:00+00:00",
"updated_at": "2025-01-02 12:00:00+00:00",
"user": {
"id": 0,
"name": "string",
"email": "string"
}
}Error
objectStandard error format
errorbooleanrequiredIndicates the response represents an error
codestringrequiredStable application error code
messagestringrequiredClient-facing error message
request_idstringrequiredRequest correlation identifier
detailsobjectOptional field-level validation errors
{
"error": true,
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"request_id": "00000000-0000-0000-0000-000000000000",
"details": {
"field": [
"is invalid"
]
}
}