Skip to navigation

Create a shift for a contract

Beta

Records time a worker spent on a contract from an external time or workforce system, so the hours reach approval and payroll without manual entry. The shift goes through the same time tracking policy checks and approval flow as a shift entered by hand.

Token scopes: time-tracking:write, worker:write

Beta: this version requires the X-Beta: true request header and its contract may change before it is promoted to stable. It is scheduled to become stable on 2027-02-13.

Authentication

AuthorizationBearer

Authentication

The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.

curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
  -H 'Authorization: Bearer YOUR-TOKEN-HERE'

Learn more about authentication

OR
AuthorizationBearer

Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

Headers

Idempotency-KeystringOptional<=64 characters

Unique key for this write, up to 64 characters, kept for 24 hours. Repeating a successful request with the same key returns the first response instead of writing again; a failed request is not kept and can be retried with the same key. A request whose key is still in progress, or was used for a different request, gets 409.

X-BetaenumRequiredDefaults to true

Opts in to the beta version of this endpoint. Must be true.

Allowed values:

Request

This endpoint expects an object.
dataobjectRequired
Fields for a new shift.

Response

Shift created.
dataobject
A shift recorded on a contract.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error