Erori

Un singur format, coduri stabile.

{
  "error": {
    "code": "contact_not_allowed",
    "message": "Textul conține date de contact.",
    "fields": [{ "path": "description", "code": "contact_not_allowed" }],
    "requestId": "req_ab12cd34"
  }
}

message se poate traduce; code nu se schimbă niciodată fără o versiune nouă (/v2). fields apare doar la erorile de validare, cu path (locul din cerere) și code.

Coduri HTTP

CodÎnseamnă
400cerere sau cursor invalid
401credential lipsă sau invalid
402planul nu include API-ul
403permisiune insuficientă
404resursă absentă sau inaccesibilă (inclusiv „nu e a ta”)
409conflict (cursor schimbat, idempotency)
422validare de business (de exemplu, text cu date de contact)
429limitare — vezi Retry-After
503indisponibilitate temporară

404 se folosește și când resursa există, dar nu ai drept asupra ei — ca să nu confirmăm ce identificatori sunt valizi pentru alții.

requestId e util pentru suport: îl păstrează și în jurnalele noastre.