REST API
Limits and errors
Limits apply to the whole account and are the same on the API and on MCP.
Limits and quota
Limits belong to the account, not the key: creating more keys does not raise the quota. Each list item counts as one record; a profile, a history series or a flow capture counts as one.
| Requests per minute | 60 |
|---|---|
| Requests per day | 1,000 |
| Records per day | 2,000 |
| Records per month | 15,000 |
| Items per call | 25 |
| Maximum offset | 100 |
| MRR history | 90 days, weekly points |
| Screenshot URLs | expire after 60 minutes |
| Active keys | 3 per account |
Response headers
X-RateLimit-Remaining: requests left in the current minuteX-Noctral-Records: records used by this callX-Noctral-Records-Remaining-Day: records left todayX-Noctral-Records-Remaining-Month: records left this monthRetry-After: seconds until you can retry (on 429 responses)
Errors
Errors come as { "error": { "code", "message", "docs_url" } }. The message is written to be read by a person or by an agent.
| 401 | UNAUTHORIZED | Missing key. |
| 401 | INVALID_KEY | Invalid, expired or revoked key or token. |
| 403 | PRO_REQUIRED | The account has no active Pro plan. |
| 403 | ACCESS_BLOCKED | Access suspended for use outside the terms. |
| 400 | INVALID_PARAMETER | Invalid, unknown or out-of-range parameter. |
| 404 | NOT_FOUND | Unknown app, niche, SaaS or route. |
| 429 | RATE_LIMITED | Per-minute limit reached. |
| 429 | DAILY_REQUESTS_EXHAUSTED | Daily requests used up. |
| 429 | DAILY_RECORDS_EXHAUSTED | Daily records used up. |
| 429 | MONTHLY_RECORDS_EXHAUSTED | Monthly records used up. |
Acceptable use
- Use the data for research, idea validation and decisions about your own product.
- Do not resell, redistribute or bulk-publish the data, and do not use the API to build a competing dataset.
- Do not share keys between people: access is personal, like the account.
- MRR and downloads are Noctral model estimates, rounded to two significant digits.