Top.Mail.Ru

Advanced UnSpot Plan from $100 $50 for Your Company Fix this Price

Promo deadline:
Help center / Administration / Integrations / API and Webhooks / External API: update user schedule status

External API: update user schedule status

This External API endpoint lets your HR or workforce-management system set a user’s schedule status in UnSpot — for example, mark an employee as working remotely or absent (vacation, sick leave) for a specific day.

Authentication

Create an API connection of type User schedule in Manage > Integrations > API Settings and copy the token. Pass it in every request:

Authorization: Bearer <token>
HTTPS

Requests without a valid token return 401. If you exceed the rate limit, the API returns 429 with a Retry-After header.

Update a user’s status — POST /api/external/v1/user-schedule

Body fieldTypeRequiredDescription
userEmailstringyesEmail of the UnSpot user (archived and deactivated users are not matched)
datestringyesDay the status applies to, format YYYY-MM-DD
statusTypestringnoREMOTE_WORK or NOT_WORKING. If omitted or null, the status for that date is reset.
statusNamestringnoCustom status label, max 128 characters (e.g. “Vacation”)
statusCodestringnoShort code shown in the schedule, max 6 characters (e.g. “VAC”)

If you send statusName or statusCode, all three of statusName, statusCode and statusType must be provided together.

Changes made through this endpoint appear in the Work schedule change history report on the Reports page: such rows show External API in the Action site column. See the column reference in the Reports article.

Example: mark remote work

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  https://acme.unspot.com/api/external/v1/user-schedule \
  -d '{
    "userEmail": "jane.doe@example.com",
    "date": "2026-07-10",
    "statusType": "REMOTE_WORK"
  }'
Bash

Example: set a named absence

{
  "userEmail": "jane.doe@example.com",
  "date": "2026-07-13",
  "statusType": "NOT_WORKING",
  "statusName": "Vacation",
  "statusCode": "VAC"
}
JSON

Example: reset the status

{ "userEmail": "jane.doe@example.com", "date": "2026-07-10" }
JSON

Response: 200 with a success message; the change is immediately visible in the user’s schedule.

Errors and limits

  • 400Missing required field: userEmail / date; Invalid statusType value; cross-field rules for statusName/statusCode/statusType; User not found.
  • 401 — invalid token.
  • 429 — more than 1 request per second per token. For bulk updates, throttle your requests.

Leave a request for a call and we will contact you

Loading