Base URL
301 redirect to HTTPS. Always use the full base URL - there is no shorthand or versioned subdomain.
Authentication
Pass your API key via thex-api-key header:
Rate Limits
| Scope | Limit | Burst |
|---|---|---|
API endpoints (/api/v1/*) | 10 req/s | 20 |
| General requests | 20 req/s | 40 |
429 Too Many Requests with a Retry-After header. Implement exponential backoff to handle rate limits gracefully:
Conventions
IDs are strings
IDs are strings
All IDs are returned as strings representing bigint values. Always treat IDs as opaque strings - never parse them as numbers:
Timestamps are ISO 8601 UTC
Timestamps are ISO 8601 UTC
All timestamps use ISO 8601 format in UTC. Store and compare timestamps as strings or parse them into proper date objects:
Errors follow a consistent format
Errors follow a consistent format
All errors return a JSON body with an
See Error Handling for strategies on handling each error type.
error field containing a machine-readable error code:| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_input | Request body failed validation |
| 400 | invalid_id | Path parameter is not a valid ID |
| 401 | unauthenticated | Missing or invalid API key |
| 403 | monitor_limit_reached | Plan monitor limit exceeded |
| 404 | not_found | Resource does not exist |
| 409 | monitor_already_exists | Duplicate monitor for same username |
| 429 | - | Rate limited - retry with backoff |
| 500 | internal_error | Server error - contact support if persistent |
Cursor-based pagination for events
Cursor-based pagination for events
The events endpoint uses cursor-based pagination. When more results exist, the response includes Pass Cursors are opaque strings - do not decode or construct them manually. All other list endpoints return up to 200 items without pagination.
hasMore: true and a nextCursor value:nextCursor as the after query parameter to fetch the next page:Event Types
Used across monitors, webhooks, and events:| Type | Description |
|---|---|
tweet.new | Original tweet posted by the monitored account |
tweet.quote | Quote tweet posted by the monitored account |
tweet.reply | Reply posted by the monitored account |
tweet.retweet | Retweet posted by the monitored account |