Pricing
Request units vs credits, monthly quotas, and the per-endpoint cost map.
The Public API uses two independent meters:
- Request units, bound to the per-key rate limit and the monthly request
quota of the account the key acts in. Most
/v1/*calls cost1request unit; heavier endpoints (audits, content briefs, report runs) cost up to8, and account lookups cost0. - Credits, consumed by endpoints that hit a paid LLM or third-party search backend. Reservations come out of the same credit pool you already use inside the Rank Prompt UI.
Endpoints that do AI or search work debit credits as well: brand audits and
content briefs cost 10, page audits, brand facts and AI suggestions cost 1, and
report runs cost 1 per prompt for up to three AI platforms and 2 per prompt for four to six. A
prompt discovery
(POST /v1/brands/{brand_id}/prompt-discoveries) costs 1 credit for a
research or a page read, and nothing when the same seed and mode, or the
same page, country and intent, ran in the last 24 hours; the free sources on
GET never debit credits. Everything else only moves the request-unit
meter. The canonical, machine-readable cost for every route is the table below,
derived straight from the OpenAPI spec.
Cost map
Every /v1/* endpoint, its weight in request units, and any flat credit cost
it carries:
/agency
27 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 5 | · |
| POST / | 2 | · |
| GET / | 1 | · |
| POST / | 5 | 5 |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| PATCH / | 2 | · |
| POST / | 3 | 1 |
| GET / | 1 | · |
| POST / | 3 | 1 |
| POST / | 5 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 2 | 5 |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| GET / | 2 | · |
/brands
246 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| POST / | 1 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| DELETE / | 1 | · |
| POST / | 1 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| PATCH / | 2 | · |
| POST / | 1 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| POST / | 5 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| POST / | 8 | 10 |
| POST / | 8 | 10 |
| GET / | 3 | · |
| POST / | 3 | 1 |
| POST / | 5 | 3 |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| POST / | 2 | 1 |
| GET / | 1 | · |
| POST / | 1 | · |
| PATCH / | 1 | · |
| PUT / | 3 | · |
| PUT / | 3 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| POST / | 2 | · |
| GET / | 2 | · |
| DELETE / | 2 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| PATCH / | 2 | · |
| GET / | 2 | · |
| POST / | 8 | 10 |
| GET / | 3 | · |
| GET / | 3 | · |
| POST / | 8 | 10 |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 3 | · |
| PATCH / | 1 | · |
| PATCH / | 2 | · |
| POST / | 5 | 10 |
| GET / | 1 | · |
| POST / | 3 | · |
| POST / | 1 | · |
| POST / | 3 | 1 |
| POST / | 3 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| PATCH / | 1 | · |
| DELETE / | 1 | · |
| PUT / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 3 | · |
| POST / | 4 | · |
| POST / | 8 | 10 |
| POST / | 10 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| PATCH / | 2 | · |
| POST / | 3 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| POST / | 1 | 1 |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| POST / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| POST / | 2 | 1 |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| POST / | 1 | · |
| GET / | 2 | · |
| PATCH / | 1 | · |
| GET / | 2 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| POST / | 3 | · |
| GET / | 2 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| PATCH / | 1 | · |
| POST / | 1 | 1 |
| POST / | 1 | · |
| GET / | 2 | · |
| POST / | 2 | · |
| GET / | 2 | · |
| PATCH / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 2 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 3 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | 1 |
| DELETE / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| POST / | 1 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| POST / | 2 | · |
| GET / | 2 | · |
| POST / | 3 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| GET / | 2 | · |
| POST / | 2 | · |
| POST / | 2 | · |
| PATCH / | 1 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| GET / | 2 | · |
| POST / | 3 | · |
| GET / | 2 | · |
| PUT / | 1 | · |
| POST / | 2 | · |
| GET / | 1 | · |
| PUT / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 5 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| DELETE / | 1 | · |
| GET / | 2 | · |
| POST / | 1 | · |
| GET / | 3 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| POST / | 1 | · |
| POST / | 2 | · |
/citations
2 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| GET / | 1 | · |
/client-reports
7 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| POST / | 1 | · |
| POST / | 2 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 2 | · |
| POST / | 3 | · |
/jobs
3 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
/me
13 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 0 | · |
| GET / | 0 | · |
| POST / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| GET / | 0 | · |
| POST / | 1 | · |
| GET / | 0 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| DELETE / | 1 | · |
/page-audit
1 endpoint| Endpoint | Request units | Credits |
|---|---|---|
| POST / | 3 | 1 |
/region-configs
10 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| DELETE / | 2 | · |
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
/reports
19 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 1 | · |
| GET / | 3 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
| POST / | 5 | 1 |
| GET / | 2 | · |
| DELETE / | 2 | · |
| GET / | 1 | · |
| POST / | 5 | · |
| DELETE / | 1 | · |
| PATCH / | 1 | · |
| POST / | 5 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 3 | · |
| PATCH / | 1 | · |
| GET / | 1 | · |
/scheduled-reports
16 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| POST / | 2 | · |
| DELETE / | 2 | · |
| GET / | 1 | · |
| PATCH / | 1 | · |
| GET / | 2 | · |
| POST / | 2 | · |
| POST / | 5 | · |
| GET / | 1 | · |
| GET / | 1 | · |
| POST / | 1 | · |
| GET / | 1 | · |
| DELETE / | 1 | · |
| GET / | 1 | · |
| POST / | 5 | · |
| PATCH / | 1 | · |
/shares
2 endpoints| Endpoint | Request units | Credits |
|---|---|---|
| GET / | 1 | · |
| DELETE / | 1 | · |
How to read this. A
0request-unit cost means the endpoint is free and never moves your monthly quota (today onlyGET /v1/meandGET /v1/me/quotaqualify, so they are safe to poll). For endpoints that hit paid backends (rolling out alongside the report APIs), the credit column will reflect either a flat cost or the wording “variable” when the exact reservation depends on the request payload (number of prompts, models selected, etc.).
Quotas vs rate limits
- Monthly request quota comes from the plan of the account the key acts
in, one pool for every key made in that account, and resets on the billing
anniversary. Exceeding it returns
request_quota_exceeded(429). In a team account only the owner raises it, anddetails.upgrade_urlis absent. - Per-minute rate limit smooths bursty traffic regardless of plan. See Rate limits for the response headers and the recommended back-off strategy.
- Free endpoints (
GET /v1/me,GET /v1/me/quota) cost0request units and never count against your quota, so they are safe to poll.
Inspecting your usage
GET /v1/me/quota returns the remaining request units of the account the key
acts in for the current billing period plus current_period_end (Unix seconds) so you know when the
counter resets. The same numbers are mirrored on every metered response via
the X-RP-Quota-* headers documented in Rate limits,
so you usually only need to call /v1/me/quota directly when bootstrapping a
worker or building a dashboard. The endpoint itself is free (0 request units)
and never counts against your quota.
curl https://api.rankprompt.com/v1/me/quota \
-H "Authorization: Bearer rp_live_YOUR_KEY"
GET /v1/me/usage looks back instead: request units, credits and calls over a
from and to window (30 days by default, up to 366), per day and per
endpoint. It counts every call you made with any of your keys. Pass
account_id to count only the calls made with the keys that act in that
account, your own user_id or a team account you are an active member of
(GET /v1/me returns the one this key acts in); any other id is 404. It is
free as well.
curl "https://api.rankprompt.com/v1/me/usage?account_id=YOUR_ACCOUNT_ID" \
-H "Authorization: Bearer rp_live_YOUR_KEY"