ProperTime Admin API v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Easily manage all your ProperTime organizations and users with a simple REST API. The Admin API enables you to automate user management with your existing systems, while ensuring governance and compliance. You must have an active Manager account in ProperTime to use this API.
Base URLs:
Authentication
- HTTP Authentication, scheme: bearer Authenticate via bearer auth by adding an header.
example: Authorization: Bearer 8eC39HaAyzWDarjtT1zdpa221
All API requests must be made over HTTPS. Calls made over plain HTTP will fail.
API requests without authentication will also fail.
Organization Units
Actions related to organization unit management
Get all Organization Units
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/organization-units',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /organization-units
Get all organization units in organizations
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
Example responses
200 Response
[
{
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Organization Units list | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [organizational_unit] | false | none | none |
| » id | string | true | none | none |
| » name | string | true | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new organization unit
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/organization-units',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /organization-units
Create a new organization unit in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createOrganizationUnitRequest | body | create_organization_unit_request | true | Organization Unit data |
Example responses
201 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "HR",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"unit_number": "343",
"is_active": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | organization_unit |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a organization unit
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/organization-units/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /organization-units/{id}
Get an organization unit
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | organization unit id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "HR",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"unit_number": "343",
"is_active": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | organization_unit |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update an organization unit
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/organization-units/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /organization-units/{id}
Update organization unit details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | organization unit id |
| patchOrganizationUnitRequest | body | patch_organization_unit_request | true | Organization unit data |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "HR",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"unit_number": "343",
"is_active": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | organization_unit |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete an organization unit
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/organization-units/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /organization-units/{id}
Delete a organization unit
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | organization unit id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Clients
Actions related to client management
Get all Clients
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/clients',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /clients
Get all clients in organizations
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
Example responses
200 Response
[
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Client list | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [client] | false | none | none |
| » id | string | true | none | none |
| » name | string | true | none | none |
| » created | timed_action | true | none | none |
| »» by | user_info | true | none | none |
| »»» id | string | true | none | none |
| »»» display_name | string | true | none | none |
| »» on | string(date-time) | true | none | none |
| » last_update | timed_action | false | none | none |
| » external_id | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new client
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/clients',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /clients
Create a new client in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createClientRequest | body | create_client_request | true | Client data |
Example responses
201 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | client |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a client
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/clients/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /clients/{id}
Get a client
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | client id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | client |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update a client
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/clients/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /clients/{id}
Update client details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | client id |
| patchClientRequest | body | patch_client_request | true | Client data |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | client |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete a client
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/clients/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /clients/{id}
Delete a client
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | client id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Projects
Actions related to project management
Get all Projects
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/projects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /projects
Get all projects in organizations
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
Example responses
200 Response
[
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Internals",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Project list | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [project] | false | none | none |
| » id | string | true | none | none |
| » name | string | true | none | none |
| » created | timed_action | true | none | none |
| »» by | user_info | true | none | none |
| »»» id | string | true | none | none |
| »»» display_name | string | true | none | none |
| »» on | string(date-time) | true | none | none |
| » last_update | timed_action | false | none | none |
| » external_id | string | false | none | none |
| » client | client | true | none | none |
| »» id | string | true | none | none |
| »» name | string | true | none | none |
| »» created | timed_action | true | none | none |
| »» last_update | timed_action | false | none | none |
| »» external_id | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new Project
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/projects',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /projects
Create a new Project in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createProjectRequest | body | create_project_request | true | Project data |
Example responses
201 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Internals",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | project |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a project
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/projects/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /projects/{id}
Get a project
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | project id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Internals",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | project |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update a project
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/projects/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /projects/{id}
Update project details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | project id |
| patchProjectRequest | body | patch_project_request | true | Project data |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Internals",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | project |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete a project
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/projects/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /projects/{id}
Delete a project
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | project id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Tasks
Actions related to task management
Get all Tasks
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/tasks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /tasks
Get all tasks in organizations
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
Example responses
200 Response
[
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"is_remarks_required": false,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Task list | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [task] | false | none | none |
| » id | string | true | none | none |
| » name | string | true | none | none |
| » created | timed_action | true | none | none |
| »» by | user_info | true | none | none |
| »»» id | string | true | none | none |
| »»» display_name | string | true | none | none |
| »» on | string(date-time) | true | none | none |
| » last_update | timed_action | false | none | none |
| » is_absence | boolean | true | none | none |
| » is_remarks_required | boolean | false | none | none |
| » external_id | string | false | none | none |
| » project | project | true | none | none |
| »» id | string | true | none | none |
| »» name | string | true | none | none |
| »» created | timed_action | true | none | none |
| »» last_update | timed_action | false | none | none |
| »» external_id | string | false | none | none |
| »» client | client | true | none | none |
| »»» id | string | true | none | none |
| »»» name | string | true | none | none |
| »»» created | timed_action | true | none | none |
| »»» last_update | timed_action | false | none | none |
| »»» external_id | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new task
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/tasks',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /tasks
Create a new task in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createTaskRequest | body | create_task_request | true | Task data |
Example responses
201 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"is_remarks_required": false,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | task |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a task
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/tasks/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /tasks/{id}
Get a task
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | task id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"is_remarks_required": false,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | task |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update a task
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/tasks/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /tasks/{id}
Update task details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | task id |
| patchTaskRequest | body | patch_task_request | true | Task data |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"is_remarks_required": false,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | task |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete a task
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/tasks/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /tasks/{id}
Delete a task
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | task id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Users
Actions related to user management
Get all users
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /users
Get all users in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
| is_active | query | string | false | Filter users by active value (possible values: true, false, all) - default is true |
| termination_after | query | string(date-time) | false | Filter users - get only users that their termination date is set and after the supplied parameter value - default is no filtering |
Example responses
200 Response
[
{
"id": "123e4567-e89b-12d3-a456-426655440000",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"is_active": true,
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
},
"organizational_unit": {
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
},
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [user] | false | none | none |
| » id | string | true | none | none |
| » created | timed_action | true | none | none |
| »» by | user_info | true | none | none |
| »»» id | string | true | none | none |
| »»» display_name | string | true | none | none |
| »» on | string(date-time) | true | none | none |
| » last_update | timed_action | false | none | none |
| » first_name | string | false | none | none |
| » last_name | string | false | none | none |
| » display_name | string | true | none | none |
| string(email) | true | none | none | |
| » is_active | boolean | true | none | none |
| » external_id | string | false | none | none |
| » employee_number | string | true | none | none |
| » id_number | string | false | none | none |
| » rfid_card_number | string | false | none | none |
| » job_title | string | true | none | none |
| » time_approved_by | user_info | false | none | none |
| » organizational_unit | organizational_unit | false | none | none |
| »» id | string | true | none | none |
| »» name | string | true | none | none |
| » date_of_birth | string(date) | false | none | none |
| » hire_date | string(date) | false | none | none |
| » termination_date | string(date) | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new user
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /users
Create a new user in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createUserRequest | body | create_user_request | true | User data |
Example responses
201 Response
{
"id": "123e4567-e89b-12d3-a456-426655440000",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"is_active": true,
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
},
"organizational_unit": {
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
},
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | user |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a user
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /users/{id}
Get a user
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | user id |
Example responses
200 Response
{
"id": "123e4567-e89b-12d3-a456-426655440000",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"is_active": true,
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
},
"organizational_unit": {
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
},
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | user |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update a user
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /users/{id}
Update user details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | user id |
| patchUserRequest | body | patch_user_request | true | User data |
Example responses
200 Response
{
"id": "123e4567-e89b-12d3-a456-426655440000",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"is_active": true,
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
},
"organizational_unit": {
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
},
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | user |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete a user
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /users/{id}
Delete a user
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | user id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Entries
Actions related to entries reporting
Get all Entries
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/entries',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /entries
Get all Entries in organizations
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | The query parameter offset sets the first position to return from the results of the query. The default is 0, which starts the page at the first result. |
| limit | query | integer | false | You can indicate the number of items to return in each page using the limit query parameter. The default is 20 and the maximum value is 50 |
| user_id | query | string | false | Filter entries by user - default is no filtering |
| start_before | query | string(date-time) | false | Filter entries - get only entries that start before the supplied parameter value (exclusive) - default is no filtering |
| start_after | query | string(date-time) | false | Filter entries - get only entries that start after the supplied parameter value (inclusive) - default is no filtering |
Example responses
200 Response
[
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"user": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"task": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128"
}
}
},
"is_deleted": false,
"start_time": "2017-07-21T08:00:00Z",
"end_time": "2017-07-21T17:30:00Z",
"remarks": "Fixing dinner",
"source": {
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
}
]
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Entry list | Inline |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [entry] | false | none | none |
| » id | string | true | none | none |
| » created | timed_action | true | none | none |
| »» by | user_info | true | none | none |
| »»» id | string | true | none | none |
| »»» display_name | string | true | none | none |
| »» on | string(date-time) | true | none | none |
| » last_update | timed_action | true | none | none |
| » user | user_info | true | none | none |
| » task | task | true | none | none |
| »» id | string | true | none | none |
| »» name | string | true | none | none |
| »» created | timed_action | true | none | none |
| »» last_update | timed_action | false | none | none |
| »» is_absence | boolean | true | none | none |
| »» is_remarks_required | boolean | false | none | none |
| »» external_id | string | false | none | none |
| »» project | project | true | none | none |
| »»» id | string | true | none | none |
| »»» name | string | true | none | none |
| »»» created | timed_action | true | none | none |
| »»» last_update | timed_action | false | none | none |
| »»» external_id | string | false | none | none |
| »»» client | client | true | none | none |
| »»»» id | string | true | none | none |
| »»»» name | string | true | none | none |
| »»»» created | timed_action | true | none | none |
| »»»» last_update | timed_action | false | none | none |
| »»»» external_id | string | false | none | none |
| »»» client | client | false | none | none |
| »»» is_deleted | boolean | true | none | none |
| »»» start_time | string(date-time) | true | none | none |
| »»» end_time | string(date-time) | false | none | none |
| »»» remarks | string | false | none | none |
| »»» source | source | true | none | none |
| »»»» source_type | string | true | none | none |
| »»»» version | string | true | none | none |
| »»»» client_machine | string | true | none | none |
| »»» place | place | false | none | none |
| »»»» latitude | number(double) | true | none | none |
| »»»» longitude | number(double) | true | none | none |
| »»»» accuracy | number(double) | true | none | none |
| »»»» gps_fix_minutes | number(double) | true | none | none |
| »»» approved | timed_action | false | none | none |
| »»» expenses | [expense] | false | none | none |
| »»»» expense_type | string | true | none | none |
| »»»» amount | number(float) | true | none | none |
| »»»» receipt_number | string | false | none | none |
| »»»» remarks | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| source_type | web |
| source_type | clock |
| source_type | android |
| source_type | ios |
| expense_type | distance |
| expense_type | fuel |
| expense_type | transportation |
| expense_type | parking |
| expense_type | other |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | X-Total-Count | integer | Total count of users that this query can return. Allows you to calculate the number of pages available. | |
| 401 | Authorization | string | none |
Create a new entry
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/entries',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST /entries
Create a new entry in organization
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| createEntryRequest | body | create_entry_request | true | Entry data |
Example responses
201 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"user": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"task": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128"
}
}
},
"is_deleted": false,
"start_time": "2017-07-21T08:00:00Z",
"end_time": "2017-07-21T17:30:00Z",
"remarks": "Fixing dinner",
"source": {
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created | entry |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Get a entry
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/entries/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /entries/{id}
Get a entry
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | entry id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"user": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"task": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128"
}
}
},
"is_deleted": false,
"start_time": "2017-07-21T08:00:00Z",
"end_time": "2017-07-21T17:30:00Z",
"remarks": "Fixing dinner",
"source": {
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | entry |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Update a entry
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/entries/{id}',
{
method: 'PATCH',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PATCH /entries/{id}
Update entry details
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | entry id |
| patchEntryRequest | body | patch_entry_request | true | Entry data |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"user": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"task": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128"
}
}
},
"is_deleted": false,
"start_time": "2017-07-21T08:00:00Z",
"end_time": "2017-07-21T17:30:00Z",
"remarks": "Fixing dinner",
"source": {
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Updated | entry |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Delete a entry
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/entries/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /entries/{id}
Delete a entry
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | entry id |
Example responses
200 Response
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Deleted | delete_result |
| 401 | Unauthorized | API key is missing or invalid | None |
| 403 | Forbidden | Action is forbidden | Inline |
Response Schema
Status Code 403
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » message | string | false | none | none |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Users Work Profiles
Get a user requirements for a date as defined in their work profile
Code samples
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://test-api.propertime.io/v1/users/{id}/work-profile/{date}/day',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET /users/{id}/work-profile/{date}/day
Get a user requirements for a date as defined in their work profile
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | user id |
| date | path | string(date) | true | date formated YYYY-MM-DD (example - 2019-09-05) |
Example responses
200 Response
{
"id": "E4BAC45E-5BE1-4E2C-B48B-82004A851B6B",
"precedence": 2,
"name": "Sundays",
"description": null,
"requires_day_type_combination": false,
"required_hours": 4.5,
"day_types": [
{
"id": 80,
"name": "Erev hag"
},
{
"id": 10,
"name": "Sunday"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | work_profile_day |
| 401 | Unauthorized | API key is missing or invalid | None |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 401 | Authorization | string | none |
Schemas
user_info
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| display_name | string | true | none | none |
timed_action
{
"by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"on": "2017-07-21T17:32:28Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| by | user_info | true | none | none |
| on | string(date-time) | true | none | none |
delete_result
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"result": true,
"message": "Deleted"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | The id of the deleted entity |
| result | boolean | true | none | Deletion success indication |
| message | string | true | none | Deletion result message |
organizational_unit
{
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
user
{
"id": "123e4567-e89b-12d3-a456-426655440000",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"is_active": true,
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Sally Young"
},
"organizational_unit": {
"id": "444e5184-e89b-12d3-a456-426655440066",
"name": "HQ"
},
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | false | none | none |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| display_name | string | true | none | none |
| string(email) | true | none | none | |
| is_active | boolean | true | none | none |
| external_id | string | false | none | none |
| employee_number | string | true | none | none |
| id_number | string | false | none | none |
| rfid_card_number | string | false | none | none |
| job_title | string | true | none | none |
| time_approved_by | user_info | false | none | none |
| organizational_unit | organizational_unit | false | none | none |
| date_of_birth | string(date) | false | none | none |
| hire_date | string(date) | false | none | none |
| termination_date | string(date) | false | none | none |
create_user_request
{
"first_name": "Joe",
"last_name": "Rocket",
"display_name": "Joe Rocket",
"email": "joe@example.com",
"external_id": "abc111",
"employee_number": "1234",
"id_number": "4333221114",
"rfid_card_number": "343422434343",
"job_title": "super chef",
"time_approved_by": "444e5184-e89b-12d3-a456-426655440022",
"organizational_unit": "444e5184-e89b-12d3-a456-426655440066",
"date_of_birth": "1990-07-21",
"hire_date": "2017-07-21",
"termination_date": "2019-07-21"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| first_name | string | true | none | none |
| last_name | string | true | none | none |
| display_name | string | false | none | none |
| string(email) | true | none | none | |
| external_id | string | false | none | none |
| employee_number | string | false | none | The employee number to use. If not supplied, the system will assign the next available id in the organization. |
| id_number | string | false | none | none |
| rfid_card_number | string | false | none | none |
| job_title | string | true | none | none |
| time_approved_by | string | false | none | none |
| organizational_unit | string | false | none | none |
| date_of_birth | string(date) | false | none | none |
| hire_date | string(date) | false | none | none |
| termination_date | string(date) | false | none | none |
patch_user_request
{
"first_name": "John",
"display_name": "John Rocket",
"email": "john@example.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| display_name | string | false | none | none |
| string(email) | false | none | none | |
| is_active | boolean | false | none | none |
| external_id | string | false | none | none |
| employee_number | string | false | none | none |
| id_number | string | false | none | none |
| rfid_card_number | string | false | none | none |
| job_title | string | false | none | none |
| time_approved_by | string | false | none | none |
| organizational_unit | string | false | none | none |
| date_of_birth | string(date) | false | none | none |
| hire_date | string(date) | false | none | none |
| termination_date | string(date) | false | none | none |
work_profile_day
{
"id": "E4BAC45E-5BE1-4E2C-B48B-82004A851B6B",
"precedence": 2,
"name": "Sundays",
"description": null,
"requires_day_type_combination": false,
"required_hours": 4.5,
"day_types": [
{
"id": 80,
"name": "Erev hag"
},
{
"id": 10,
"name": "Sunday"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| precedence | number(int32) | true | none | none |
| name | string | false | none | none |
| description | string | false | none | none |
| requires_day_type_combination | boolean | true | none | none |
| required_hours | number(float) | true | none | none |
| day_types | [object] | true | none | none |
| » id | number(int32) | false | none | none |
| » name | string | false | none | none |
organization_unit
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "HR",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"unit_number": "343",
"is_active": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | false | none | none |
| unit_number | string | true | none | none |
| is_active | boolean | true | none | none |
patch_organization_unit_request
{
"name": "Research and Development"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| unit_number | string | false | none | none |
| is_active | boolean | false | none | none |
client
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | false | none | none |
| external_id | string | false | none | none |
patch_client_request
{
"name": "AtoZ128 Corp Inc 123"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| external_id | string | false | none | none |
patch_project_request
{
"name": "AtoZ128 Internals 123"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| external_id | string | false | none | none |
project
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Internals",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | false | none | none |
| external_id | string | false | none | none |
| client | client | true | none | none |
patch_task_request
{
"name": "Vacation 123",
"is_remarks_required": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| is_remarks_required | boolean | false | none | none |
| is_absence | boolean | false | none | none |
| external_id | string | false | none | none |
task
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"is_remarks_required": false,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"external_id": "atoz128"
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | false | none | none |
| is_absence | boolean | true | none | none |
| is_remarks_required | boolean | false | none | none |
| external_id | string | false | none | none |
| project | project | true | none | none |
expense
{
"expense_type": "transportation",
"amount": 127.5,
"receipt_number": "AB1244",
"remarks": "Taxi fare"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| expense_type | string | true | none | none |
| amount | number(float) | true | none | none |
| receipt_number | string | false | none | none |
| remarks | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| expense_type | distance |
| expense_type | fuel |
| expense_type | transportation |
| expense_type | parking |
| expense_type | other |
source
{
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| source_type | string | true | none | none |
| version | string | true | none | none |
| client_machine | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| source_type | web |
| source_type | clock |
| source_type | android |
| source_type | ios |
place
{
"latitude": 32.1112,
"longitude": 23.121243,
"accuracy": 0.334,
"gps_fix_minutes": 3.5
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| latitude | number(double) | true | none | none |
| longitude | number(double) | true | none | none |
| accuracy | number(double) | true | none | none |
| gps_fix_minutes | number(double) | true | none | none |
entry
{
"id": "444e5184-e89b-12d3-a456-426655440022",
"user": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"display_name": "Joe Flash"
},
"task": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Vacation",
"created": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"last_update": {
"by": {
"id": "444e5184-e89b-12d3-a456-111655440022",
"display_name": "Sam Smith"
},
"on": "2017-07-21T17:32:28Z"
},
"is_absence": true,
"external_id": "atoz128",
"project": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "Absence",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128internals",
"client": {
"id": "444e5184-e89b-12d3-a456-426655440022",
"name": "AtoZ128 Corp Inc",
"created": "2017-07-21T17:32:28Z",
"external_id": "atoz128"
}
}
},
"is_deleted": false,
"start_time": "2017-07-21T08:00:00Z",
"end_time": "2017-07-21T17:30:00Z",
"remarks": "Fixing dinner",
"source": {
"source_type": "web",
"version": "5.0.1",
"client_machine": "192.168.0.111"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| created | timed_action | true | none | none |
| last_update | timed_action | true | none | none |
| user | user_info | true | none | none |
| task | task | true | none | none |
| client | client | false | none | none |
| is_deleted | boolean | true | none | none |
| start_time | string(date-time) | true | none | none |
| end_time | string(date-time) | false | none | none |
| remarks | string | false | none | none |
| source | source | true | none | none |
| place | place | false | none | none |
| approved | timed_action | false | none | none |
| expenses | [expense] | false | none | none |
patch_entry_request
{
"task_id": "444e5184-e89b-12d3-a456-426655440022",
"end_time": "2017-07-21T17:40:00Z",
"remarks": "Fixing dinner 123"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| task_id | string | false | none | none |
| client_id | string | false | none | none |
| start_time | string(date-time) | false | none | none |
| end_time | string(date-time) | false | none | none |
| remarks | string | false | none | none |
| place | place | false | none | none |
| expenses | [expense] | false | none | none |
create_entry_request
{
"user_id": "string",
"task_id": "string",
"client_id": "string",
"start_time": "2019-11-24T15:00:25Z",
"end_time": "2019-11-24T15:00:25Z",
"remarks": "string",
"place": {
"latitude": 32.1112,
"longitude": 23.121243,
"accuracy": 0.334,
"gps_fix_minutes": 3.5
},
"expenses": [
{
"expense_type": "transportation",
"amount": 127.5,
"receipt_number": "AB1244",
"remarks": "Taxi fare"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_id | string | true | none | none |
| task_id | string | true | none | none |
| client_id | string | false | none | none |
| start_time | string(date-time) | true | none | none |
| end_time | string(date-time) | false | none | none |
| remarks | string | false | none | none |
| place | place | false | none | none |
| expenses | [expense] | false | none | none |
create_organization_unit_request
{
"name": "unit 1234",
"unit_number": "233"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| unit_number | string | true | none | none |
create_client_request
{
"name": "client 1234",
"external_id": "2332423df2f3"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| external_id | string | false | none | none |
create_project_request
{
"name": "project abc",
"external_id": "2332423df2f332f32",
"client_id_type": "external"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| external_id | string | false | none | none |
| client_id | string | true | none | none |
| client_id_type | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| client_id_type | internal |
| client_id_type | external |
create_task_request
{
"name": "task 123",
"external_id": "2332423df2f332f32",
"project_id_type": "external"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
| is_absence | boolean | true | none | none |
| external_id | string | false | none | none |
| project_id | string | true | none | none |
| project_id_type | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| project_id_type | internal |
| project_id_type | external |