Error codes
rate_limited
429 Too many requests
- HTTP status
- 429
- Title
- Too many requests
- Code
- rate_limited
What it means
The budget for this kind of request is spent. The RateLimit and RateLimit-Policy headers describe the budget, and Retry-After says when to try again.
It is also the catch-all of status 429: an error of that status that has no more specific code answers with this one.
What to do
Wait Retry-After seconds, then retry. Spread requests out rather than retrying in a tight loop.
Example
Errors are RFC 9457 problem details, sent as application/problem+json. See Errors for every field.
{
"type": "https://docs.furniops.com/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"detail": "An explanation of this occurrence.",
"request_id": "req_…",
"doc_url": "https://docs.furniops.com/errors/rate_limited"
}Operations that answer it
GET /v1/agent/toolsGET /v1/agentsPATCH /v1/agents/{agent}GET /v1/agreement-acceptancesGET /v1/agreements/{kind}POST /v1/agreements/{kind}/acceptancesGET /v1/assistant/conversationsPOST /v1/assistant/conversationsGET /v1/assistant/conversations/{conversation}DELETE /v1/assistant/conversations/{conversation}POST /v1/assistant/conversations/{conversation}/turnsGET /v1/assistant/mePATCH /v1/assistant/meGET /v1/assistant/memoriesPOST /v1/assistant/memoriesDELETE /v1/assistant/memoriesPATCH /v1/assistant/memories/{memory}DELETE /v1/assistant/memories/{memory}GET /v1/assistant/settingsPATCH /v1/assistant/settingsGET /v1/assistant/spendGET /v1/audit-eventsPOST /v1/audit-events/{id}/undoGET /v1/billingPOST /v1/billing/cardGET /v1/billing/creditsGET /v1/billing/credits/entriesGET /v1/billing/credits/purchasesPOST /v1/billing/credits/purchasesGET /v1/billing/credits/purchases/{purchase}POST /v1/billing/credits/purchases/previewGET /v1/billing/credits/ratesPATCH /v1/billing/credits/settingsPATCH /v1/billing/detailsGET /v1/billing/invoicesPOST /v1/billing/previewPOST /v1/billing/subscriptionPOST /v1/billing/subscription/cancelPOST /v1/billing/subscription/resumePOST /v1/billing/subscription/scheduled-change/cancelGET /v1/brandPATCH /v1/brandGET /v1/brand/claimsPOST /v1/brand/claimsGET /v1/brand/claims/{id}POST /v1/brand/claims/{id}/checkPOST /v1/brand/claims/{id}/withdrawPOST /v1/brand/invitations/previewGET /v1/catalogueGET /v1/catalogue/imagesGET /v1/catalogue/publication-runsGET /v1/catalogue/publication-runs/{id}POST /v1/catalogue/publishGET /v1/catalogue/variantsPOST /v1/catalogue/visibilityPOST /v1/catalogue/withdrawGET /v1/categoriesGET /v1/changesGET /v1/changes/recentPOST /v1/demandGET /v1/exportsPOST /v1/exportsGET /v1/exports/{id}GET /v1/mappings/{id}POST /v1/mappings/{id}/confirmGET /v1/match-pairsGET /v1/match-pairs/{id}POST /v1/match-pairs/{id}/dismissPOST /v1/match-pairs/{id}/mergePOST /v1/match-pairs/{id}/reopenGET /v1/matching/judge-settingsPATCH /v1/matching/judge-settingsGET /v1/me/orgsGET /v1/media/{id}GET /v1/mergesGET /v1/merges/{id}POST /v1/merges/{id}/undoGET /v1/offersGET /v1/orgGET /v1/plansGET /v1/productsGET /v1/products/{id}GET /v1/proposalsGET /v1/proposals/{id}POST /v1/proposals/{id}/acceptPOST /v1/proposals/{id}/rejectGET /v1/request-logsGET /v1/request-logs/{id}GET /v1/runs/{id}GET /v1/source-probesPOST /v1/source-probesGET /v1/source-probes/{id}GET /v1/sourcesPOST /v1/sourcesGET /v1/sources/{id}PATCH /v1/sources/{id}GET /v1/sources/{id}/categoriesPOST /v1/sources/{id}/categoriesPUT /v1/sources/{id}/credentialsDELETE /v1/sources/{id}/credentialsPOST /v1/sources/{id}/inbound-address/rotateGET /v1/sources/{id}/inbound-messagesGET /v1/sources/{id}/mappingsPOST /v1/sources/{id}/recordsPOST /v1/sources/{id}/replayGET /v1/sources/{id}/runsPOST /v1/sources/{id}/runsPOST /v1/sources/{id}/testPOST /v1/sources/{id}/uploadsGET /v1/statusGET /v1/status/historyGET /v1/streamPOST /v1/test/eventsGET /v1/uploads/{id}POST /v1/uploads/{id}/completeGET /v1/usageGET /v1/usage/seriesPOST /v1/variants/{id}/checksGET /v1/vendor-profilesGET /v1/vendor-profiles/{id}GET /v1/vendor/statsGET /v1/vendor/stats/productsGET /v1/vendor/stats/seriesGET /v1/webhook-endpointsPOST /v1/webhook-endpointsGET /v1/webhook-endpoints/{id}PATCH /v1/webhook-endpoints/{id}DELETE /v1/webhook-endpoints/{id}GET /v1/webhook-endpoints/{id}/deliveriesGET /v1/webhook-endpoints/{id}/deliveries/{delivery}POST /v1/webhook-endpoints/{id}/deliveries/{delivery}/resendPOST /v1/webhook-endpoints/{id}/recoverPOST /v1/webhook-endpoints/{id}/rotate-secretPOST /v1/webhook-endpoints/{id}/test