buzzabout docs
API reference

Rate limits

Per-key quotas and how to back off cleanly.

The API enforces per-key request limits. Defaults are set at the account-plan level — see the pricing page for the current tier ceilings, or contact support for a custom limit.

What 429 looks like

429 body
{
  "status": "client_error",
  "error_code": "too_many_requests",
  "detail": "Too many requests. Please slow down.",
  "transient": true
}

The transient: true flag is your signal that retrying after a delay should succeed.

retry.ts
async function call(url: string, init: RequestInit, attempt = 0): Promise<Response> {
  const res = await fetch(url, init);
  if (res.status !== 429 || attempt >= 5) return res;
  // Exponential back-off with jitter, capped at 60s.
  const delay = Math.min(60_000, 1_000 * 2 ** attempt + Math.random() * 250);
  await new Promise((r) => setTimeout(r, delay));
  return call(url, init, attempt + 1);
}

Async-run quotas

Runs (POST /v1/datasets/{id}/runs, POST /v1/audience_datasets/{id}/runs) consume credits, not request quota. When the account is out of credits, the response is 402:

402 body
{
  "status": "client_error",
  "error_code": "insufficient_credits_dataset_run",
  "detail": "Insufficient credits to start this dataset run",
  "transient": false
}

Top up credits in Settings → Billing before the run will accept.

Per-audience-dataset concurrency

A single audience dataset only allows one in-flight run at a time. A second POST /v1/audience_datasets/{id}/runs while another is pending or working returns 409:

{
  "status": "client_error",
  "error_code": "audience_dataset_run_already_in_flight",
  "detail": "Another run for this audience dataset is already pending or working. Wait for it to finish before starting a new one.",
  "transient": false
}

Poll GET /v1/audience_datasets/{id}/runs/{run_id} until the existing run terminates, then retry. Regular datasets do not have this restriction — multiple runs can be in flight concurrently against the same dataset.

All quotas are advisory between releases. If you're integrating Buzzabout into a product and need a written limit, mail support.

On this page