Skip to content

We call youDataFlair calls YOUR server. You implement this endpoint. You do not call DataFlair.

Errors ​

Use this page when something breaks. There are two tables. The first is what your API returns and how DataFlair reacts. The second is what the DataFlair connection card shows when a connection fails.

What your API returns ​

Every non-2xx response has a JSON body. code is a stable, machine-readable slug that you choose. message is text for a person. See the error model.

json
{
  "code": "inventory_not_found",
  "message": "No ad slot exists for inventory_id 'slot_x'.",
  "details": {
    "inventory_id": "slot_x"
  }
}
HTTP statusExample codeWhat caused itWhat DataFlair doesHow to fix it
400bad_requestInvalid JSON, a wrong field type or a missing field.Treats it as a bug, logs it and shows it. On GET /health, the connection shows unreachable.Check the request against the endpoint's field table.
401unauthorizedMissing, invalid or expired key.Marks the connection as error, with the state auth_error.Check the key. Issue a new one if you must, then reconnect in DataFlair.
403forbiddenThe key authenticated but lacks a scope.Marks the connection as error, with the state forbidden.Give the key read, create-draft and report scope.
404inventory_not_foundAn unknown inventory_id, order_id or line_item_id.Skips that item and reports it. It does not force the item onto a booking.Return 404 only for an id that does not exist on your side.
409idempotency_conflictThe same idempotency_key arrived with a different body.Logs it. Does not retry it blindly.Reject the call. Do not apply the new body. See Retries and idempotency.
422invalid_date_rangeThe shape is valid and a value is not: a bad date range, or a size that does not fit the slot.Shows your message so the operator can fix the booking.Return a clear message that names the field and the problem.
429rate_limitedDataFlair went over your budget.Backs off per Retry-After and retries.Send Retry-After in seconds. Publish your budget in your handoff notes.
501forecast_unsupportedOne slot cannot be forecast.Shows "no forecast available" for that slot. It does not block the booking.See If you cannot forecast.
5xxserver_errorYour server failed.Retries with backoff. A persistent 5xx shows as "your platform is unreachable".Check your server's logs.

The code values other than inventory_not_found and forecast_unsupported are examples. The contract does not fix them. Pick stable slugs, and keep them.

What the DataFlair connection card shows ​

When you connect or re-verify, DataFlair calls GET /health. If it fails, the card shows one of four states. The state comes from the HTTP status and the body.

StateHTTP statusWhat caused itHow to fix it
auth_error401The key is wrong, missing or expired.Check the key on your ad server. Enter it again and click Reconnect & verify.
forbidden403The key has no scope for what DataFlair calls.Widen the key's scope on your ad server. Then click Reconnect & verify.
unreachable400, 404, 429, any other 4xx, any 5xx, or no answerYour server was down, too slow, or answered with an error. A wrong base URL also lands here. A host that does not resolve to a public address is refused.Check the base URL. Check your logs. DataFlair waits 10 seconds to connect and 30 seconds in total.
invalid_response200The body does not match the /health fields.Fix the body. See GET /health.

DataFlair also stores the message from your error body as the last error, with credentials redacted. Do not put secrets in message.

DataFlair does not follow redirects. Serve every endpoint at the exact base URL you entered.

For symptoms and step-by-step fixes, see Troubleshooting.

Docs version 1.0.1