WorkloomDevelopers
v1Get an API key
Docs/Errors

Errors

Errors use ordinary HTTP status codes and always return the same JSON: a code to branch on and an error sentence you can show.

Error response
{
  "error": "This person is already in your workspace.",
  "code": "duplicate",
  "duplicates": [
    {
      "type": "contact",
      "id": "66f2a1c0e4b0a1b2c3d4e5f6",
      "name": "Priya Nair",
      "reason": "Same email",
      "yours": true
    }
  ],
  "can_force": false
}
409 Conflict
codeThe exact reason, from the list below. It does not change, so branch on this.
errorPlain words for logs or your own screens. It may be reworded, so do not match on it.
…Some codes add details: required and granted, unknown_fields and accepted_fields, missing_fields, problems, duplicates and can_force, deal_id.

All error codes

StatusCodeWhat happenedWhat to do
401authentication_requiredNo key was sent.Send Authorization: Bearer with your key, or X-API-Key.
401invalid_keyThe key is wrong, revoked or expired. One answer for all three.Check you copied the whole key. If it was revoked, make a new one in Settings › API and webhooks.
403organisation_inactiveThe workspace is not active.The workspace is closed or suspended. Ask its admin.
403seat_inactiveThe person or service account this key acts for is no longer active.The key acts for a person or service account that was suspended. Use another key.
403missing_scopeThe key was not given the scope this endpoint needs. required and granted say which.Add the scope named in required, or use a key that has it.
403forbiddenThe key’s role or reach does not allow this.The key’s role does not allow this, or a condition on the role (hours, network) refused it.
404not_foundNo such record, or one the key cannot reach. The same answer for both.Check the id, and that the key’s workspace and reach include the record.
400invalid_requestThe request is missing something or a value is wrong. problems lists each one when there are several.Read error (and problems or missing_fields), fix the value and send again.
400unknown_fieldsThe body has a field this endpoint does not accept. unknown_fields and accepted_fields say which.Remove the fields in unknown_fields. accepted_fields lists what the endpoint takes.
400reason_requiredMoving a deal to a lost stage needs reason_code.Send reason_code, one of your lost reasons.
422stage_requirements_missingThe stage needs fields the deal does not have yet. missing_fields lists each { key, label }; send them in fields.Send the fields in missing_fields in the move’s fields, then move again.
409suppressedThe contact was deleted and is on the do-not-contact list, so the same address is not added again.They were deleted and asked not to be contacted. Keep them out of your source of contacts.
409duplicateThe record already exists. duplicates (contacts, companies) or deal_id (deals) points at it when the key can reach it.Use the record in duplicates or deal_id. For a contact or company with only a similar name, send force: true.
409conflictThe record changed in a way that stops this request.Read the record again and decide from what it says now.
409idempotency_key_in_useA request with this Idempotency-Key is still running. Retry shortly.Wait a moment and retry with the same key.
422idempotency_key_reusedThis Idempotency-Key was used for a different request.Use a new Idempotency-Key for a new request.
400unsupported_versionThe Workloom-Version header names no version. versions lists the ones there are.Send one of the versions in versions, or leave Workloom-Version out to use your key’s.
404sandbox_onlyThis endpoint works in a developer sandbox only: sandbox-api.useworkloom.com, with a wl_sbx_ key.Send it to the sandbox, https://sandbox-api.useworkloom.com/api/public/v1, with a wl_sbx_ key.
401sandbox_keyA developer sandbox key (wl_sbx_) was sent to the live API. Send it to sandbox-api.useworkloom.com.Send a wl_sbx_ key to the sandbox address, or use a live key here.
429rate_limitedMore requests a minute than the key is allowed. Wait Retry-After seconds.Wait Retry-After seconds, then retry.
500internal_errorSomething failed on our side. Safe to retry with the same Idempotency-Key.Retry with backoff and the same Idempotency-Key. If it keeps happening, email us.

Safe retries

Retry 429 and 5xx answers with backoff. Send an Idempotency-Key header on every POST: if a retry reaches Workloom twice, the second gets the first answer instead of making a duplicate. A key is kept 24 hours. Using it again for a different request gets 422 idempotency_key_reused, and using it while the first request is still running gets 409 idempotency_key_in_use.

Was this page useful?