Create a time entry
POST
/time-entries
const url = 'https://api.de.teamgrid.app/v1/time-entries';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"billable":true,"comment":"example","endAt":"2026-04-15T12:00:00Z","serviceId":"example","startAt":"2026-04-15T12:00:00Z","taskId":"example","userId":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.de.teamgrid.app/v1/time-entries \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "billable": true, "comment": "example", "endAt": "2026-04-15T12:00:00Z", "serviceId": "example", "startAt": "2026-04-15T12:00:00Z", "taskId": "example", "userId": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Idempotency-Key
required
string
Unique request key retained for seven days. Within that window, reuse with different data is rejected.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
billable
boolean | null
comment
string | null
endAt
required
string format: date-time
serviceId
string | null
startAt
required
string format: date-time
taskId
required
string
userId
required
string
Examplegenerated
{ "billable": true, "comment": "example", "endAt": "2026-04-15T12:00:00Z", "serviceId": "example", "startAt": "2026-04-15T12:00:00Z", "taskId": "example", "userId": "example"}Responses
Section titled “Responses”An idempotent replay of an existing resource.
Media typeapplication/json
object
data
required
object
attributes
required
object
archived
required
boolean
billable
required
boolean | null
billed
required
boolean
comment
required
string
createdAt
required
string | null format: date-time
durationMinutes
required
number | null
endAt
required
string | null format: date-time
serviceId
required
string | null
startAt
required
string | null format: date-time
taskId
required
string
updatedAt
required
string | null format: date-time
userId
required
string
id
required
string
type
required
meta
required
object
requestId
required
string
Example
{ "data": { "type": "timeEntry" }}Headers
Section titled “Headers”Idempotency-Replayed
string
A newly created resource.
Media typeapplication/json
object
data
required
object
attributes
required
object
archived
required
boolean
billable
required
boolean | null
billed
required
boolean
comment
required
string
createdAt
required
string | null format: date-time
durationMinutes
required
number | null
endAt
required
string | null format: date-time
serviceId
required
string | null
startAt
required
string | null format: date-time
taskId
required
string
updatedAt
required
string | null format: date-time
userId
required
string
id
required
string
type
required
meta
required
object
requestId
required
string
Example
{ "data": { "type": "timeEntry" }}Headers
Section titled “Headers”Idempotency-Replayed
string
The request is invalid.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}The bearer credential is missing, invalid, expired, or revoked.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}The credential has insufficient scope.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}The idempotency key conflicts with an earlier request.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}The credential or source exceeded its rate limit.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}A required cell-local dependency is unavailable.
Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{ "errors": [ { "code": "example", "detail": "example", "source": { "additionalProperty": "example" }, "status": "example", "title": "example" } ], "meta": { "requestId": "example" }}