Biklo for developersTESTsandbox-api.biklo.comchange

Errors

One envelope, machine-readable code first:

{
  "error": {
    "code": "missing_required_attribute",
    "message": "The attribute \"Brand\" is required for this category.",
    "field": "attributes.32",
    "request_id": "req_01j9c4xk2m"
  }
}

Branch on code, never on message — messages get clearer over time, codes do not change within a version.

Status Meaning
400 The request is malformed — a bad date, an unknown filter value
401 Key missing, malformed, revoked, expired, or from the wrong environment
403 The key is valid but lacks the scope, or the integration is suspended
404 No such resource on your account. We do not distinguish "not yours" from "does not exist"
409 A conflict with current state — accepting an order that is no longer pending
422 Understood but breaks a business rule — a missing required attribute
429 Rate limited. See Retry-After
5xx Ours. Retry with backoff, and quote the request_id

Validation failures come as a list#

A write returns every problem it found, not just the first, so a mapping can be fixed in one pass instead of one round trip per field:

{
  "error": {
    "code": "missing_required_attribute",
    "message": "The attribute \"Brand\" is required for this category.",
    "field": "attributes.32",
    "request_id": "req_01j9c4xk2m",
    "details": [
      { "code": "missing_required_attribute", "message": "The attribute \"Brand\" is required for this category.", "field": "attributes.32" },
      { "code": "missing_required_attribute", "message": "The attribute \"Stare\" is required for this category.", "field": "attributes.47" }
    ]
  }
}

404 on something you can see#

Every endpoint is scoped to the seller behind your key. Another seller's product returns 404, not 403 — telling you it exists but is not yours would leak that it exists at all.