Skip to content
TasksMate Developers

0.x — pre-release, no compatibility promise yet.What this means

What this is: the one shape every error has, and the list of types. When you need it: writing the except / catch around any call.

Terminal window
curl -i "$TASKSMATE_API_URL/v1/tasks/T0000000" \
-H "Authorization: Bearer $TASKSMATE_TOKEN"

Every error is application/problem+json (RFC 9457):

FieldTypeMeaning
typestringabout:blank or a urn:tasksmate:problem:* identifier
titlestringe.g. "Forbidden"
statusintegere.g. 403
detailanyHuman-readable explanation (a string; for a 422, the list of validation errors)
instancestringe.g. "/v1/tasks/T123"
request_idstringe.g. "9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11"
errors (optional)arrayStructured failures: validation errors, or {loc, msg, allowed} for a bad parameter

Branch on status and type. Show detail to people. When you ask for help, quote request_id — it is also the X-Request-ID response header.

StatustypeWhat happened — and what to do
anyabout:blankA plain HTTP error; the status and detail say everything.
422…:validationThe request body or query did not validate. errors lists each failure (loc, msg, type).
400…:invalid-parameterA query parameter is outside what the operation accepts; errors[].allowed lists the valid values.
412…:precondition-failedIf-Match did not match the resource's current ETag — re-read it and retry.
422…:idempotency-key-reusedThis Idempotency-Key was first used for a different request (method, path or body).
409…:idempotency-key-in-flightThe first request with this Idempotency-Key has not finished; retry shortly.
400…:idempotency-key-invalidIdempotency-Key must be 1–255 printable ASCII characters.
429…:rate-limitToo many requests with this access token; wait Retry-After seconds (X-RateLimit-* say where you stand).
500…:internalAn unexpected server error. Quote request_id to support.
401…:token-invalidThe access token is unknown or malformed (or its principal no longer exists).
401…:token-expiredThe access token is past its expires_at; mint a new one.
401…:token-revokedThe access token was revoked (by its owner, an admin, a rotation, or its service account's deactivation).
403…:insufficient-scopeThe access token does not carry the scope this operation needs (errors[0].required; null = not available to tokens).
403…:test-token-read-onlyA tm_test_ token can authenticate and read, never write.
403 · 422…:token-policyThe organization's token policy refuses this token (personal tokens off, expiry required, or past the maximum lifetime).
422…:url-refusedThe webhook URL is refused: not https, carries credentials, or resolves to a private, loopback, link-local, metadata, multicast or reserved address (errors[0].reason).

…: is urn:tasksmate:problem:. The identifiers never change; match on them, not on title or detail.

The Python SDK raises one exception class per type (Python SDK → Errors).