PloidDocs
API

Errors & rate limits

Handle stable public error envelopes, request IDs, rate limits, budgets, and versioning.

Error envelope

{
    "error": {
        "code": "insufficient_acu",
        "message": "Not enough ACU. Add usage capacity to continue.",
        "request_id": "req_..."
    }
}

Always log request_id and include it when contacting support.

Common codes

CodeMeaning
missing_api_keyNo supported credential header was present
invalid_api_keyThe credential is not recognized
expired_api_keyThe credential has expired
revoked_api_keyThe credential has been revoked
insufficient_scopeThe key lacks the endpoint's required scope
active_account_requiredThe workspace cannot currently use the API
insufficient_acuThe workspace has insufficient usage capacity
daily_budget_exceededThe active key reached its daily budget
monthly_budget_exceededThe active key reached its monthly budget
rate_limitedAn organization or key rate bucket was exceeded
query_requiredA search or Agent prompt was missing
identity_requiredThe endpoint needs a stronger identity anchor

Rate limits

Every public request consumes both an organization-plan bucket and an API-key bucket. The effective limit is the lowest bucket that applies.

PlanOrganization limit
Free10 requests/minute
Pay as you go30 requests/minute
API Pro, Starter, or Pro300 requests/minute
Scale or Teams1,000 requests/minute

Enterprise overrides can raise the organization limit. A key can have a lower per-minute limit for isolation or safety.

Some route families add a tighter ceiling:

Route familyPer minutePer hour
POST /v1/search30300
/v1/socials60600
/v1/linkedin/*60600

Every 429 includes Retry-After. Organization and key bucket failures use the stable rate_limited envelope and also include error.retry_after_seconds.

On 429:

  1. Respect Retry-After.
  2. Add jitter before retrying.
  3. Do not retry an unbounded number of times.
  4. Reduce request concurrency.

Cost controls

  • Set per-key daily and monthly budgets.
  • Use max_acu as an Agent admission and billing limit. It is not a provider compute ceiling.
  • Read active budget and usage context from GET /v1/account/usage.

Retry policy

  • Retry 429 and transient 5xx responses with bounded exponential backoff.
  • Do not automatically retry validation errors or missing permissions.
  • Do not blindly retry a long Agent request after an ambiguous disconnect; use SSE and consume its terminal event.
  • Treat a schema-constrained Agent failure as an error; do not reinterpret unvalidated prose as structured success.

On this page