generated: '2026-08-11' method: probed source: https://weaveapi.dev/pricing/ docs: https://weaveapi.dev/docs/ limit_count: 0 summary: >- WeaveAPI publishes NO numeric rate limits. The pricing page's comparison table is the only place limits are mentioned at all, and it gives them as prose: "Standard account limits" for pay-as-you-go and "Account review required" for larger accounts. No requests-per-minute, tokens-per-minute, concurrency ceiling or burst allowance appears on the pricing page, the docs, the terms, or the abuse policy. Live unauthenticated responses were inspected on four routes and carry NO rate-limit response headers of any kind, so an agent has neither a documented number nor a runtime signal to back off on. published_limits: [] documented_statements: - scope: account tier: Pay as you go text: Standard account limits source: https://weaveapi.dev/pricing/ numeric: false - scope: account tier: Account review text: Account review required source: https://weaveapi.dev/pricing/ numeric: false - scope: account text: >- "Rotating accounts, scraping keys, bypassing limits, or creating excessive load may result in immediate suspension." — limits are enforced as an abuse control, but never quantified. source: https://weaveapi.dev/abuse/ numeric: false - scope: route text: >- "Model routes depend on upstream providers, network conditions, capacity limits, quota limits, and maintenance. We do not guarantee every route is available at all times." source: https://weaveapi.dev/terms/ numeric: false # What the wire actually returns — probed, not documented. response_headers: method: probed fetched: '2026-08-11' rate_limit_headers_present: false checked_for: - X-RateLimit-Limit - X-RateLimit-Remaining - X-RateLimit-Reset - RateLimit-Limit - RateLimit-Remaining - RateLimit-Reset - RateLimit-Policy - Retry-After found: [] headers_actually_returned: - name: x-oneapi-request-id example: '202608112040025861429178268d9d6T5viNnDh' note: Per-request correlation id. The docs ask for it when contacting support. - name: x-new-api-version example: v1.0.0-rc.10-abuse-hardening-20260731 note: Gateway build identifier, returned on every response. - name: strict-transport-security example: max-age=31536000; includeSubDomains - name: x-content-type-options example: nosniff - name: via example: 1.1 Caddy probed_routes: - {method: GET, path: /v1/models, status: 401} - {method: POST, path: /v1/chat/completions, status: 401} - {method: GET, path: /v1/nonexistent, status: 404} - {method: GET, path: /api/pricing, status: 200} caveat: >- All four observations are unauthenticated. A rate-limit header set may be emitted only to authenticated callers or only once a limit is approached; this probe cannot rule that out. What it does establish is that no limit signal is available to a client before it has a key, and that the 404/200 paths — which the gateway serves without auth — carry none either. exhaustion_behavior: status_code: null note: >- Not documented and not observable without a key. The docs' troubleshooting table lists "Route temporarily unavailable" and "Insufficient balance" as failure modes and tells the developer to "try again later", but names no status code, no Retry-After, and no backoff guidance. quota: model: prepaid-balance note: >- The real ceiling on a WeaveAPI account is the prepaid credit balance rather than a request rate. Balance exhaustion is surfaced in the docs as the "Insufficient balance" troubleshooting case. balance_visibility: Console only — no public or documented balance endpoint. balance_endpoints_probed: - {path: /v1/dashboard/billing/usage, method: GET, status: 401, note: Route exists (OpenAI-compatible billing path), undocumented by WeaveAPI.} - {path: /v1/dashboard/billing/subscription, method: GET, status: 401, note: Route exists, undocumented by WeaveAPI.} recommendation: >- Publish a numeric per-key limit and emit RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset (RFC 9331 style) plus Retry-After on 429. A gateway whose value proposition is routing across providers is exactly the surface where an agent most needs to know when to back off and switch routes. x-evidence: - url: https://weaveapi.dev/pricing/ http_status: 200 - url: https://api.weaveapi.dev/v1/models http_status: 401 - url: https://api.weaveapi.dev/v1/chat/completions http_status: 401 - url: https://weaveapi.dev/abuse/ http_status: 200