REST API Reference
The Prowlo v1 REST API gives your code direct, read-only access to your organization's Dataset — the records your Watchers have ingested. Browse records, run keyword or semantic search, and verify your key.
Base URL
All endpoints live under a single versioned base URL and require HTTPS.
https://api.prowlo.com/v1Authentication
Every request is authenticated with a Prowlo API key (it starts with prowlo_). Pass it in either header:
Authorization: Bearer prowlo_your_key
# or
x-api-key: prowlo_your_keyGet a key
Create a key on the API access page in your dashboard, or read the API keys guide. The full key is shown only once at creation. On the endpoint pages below you can also generate one inline and run requests live.
Response envelope
Every response is JSON with a success boolean.
// success
{ "success": true, "data": { /* ... */ } }
// error
{ "success": false, "error": { "code": "ERROR_CODE", "message": "human-readable message" } }Error codes
| Code | HTTP | When |
|---|---|---|
| API_KEY_REQUIRED | 401 | No Authorization or x-api-key header was sent. |
| INVALID_API_KEY | 401 | The key is malformed or was not found. |
| API_KEY_REVOKED | 401 | The key was revoked. |
| API_KEY_EXPIRED | 401 | The key passed its expiry date. |
| API_KEY_OWNER_INACTIVE | 401 | The owning user or organization is no longer active. |
| BAD_REQUEST | 400 | A required parameter is missing (e.g. q on /search). |
| RATE_LIMIT_EXCEEDED | 429 | More than 60 requests in a minute for this key. |
| SEMANTIC_UNAVAILABLE | 503 | Semantic search requested but embeddings are not configured. Use mode=keyword. |
| SEARCH_FAILED | 500 | Unexpected search error. |
Rate limits
Each key is limited to 60 requests per minute. Standard RateLimit-* headers (draft-7) are returned on every response; a 429 means you should retry after the window resets.
Pagination
List endpoints are cursor-paginated. Pass the nextCursor from one response as the cursor of the next. When nextCursor is null you have reached the last page. Default page size is 20, max 100. Treat cursors as opaque strings.
Access model
All reads are free — there is no per-read credit charge (unlike the live MCP passthrough tools). Responses are org-scoped: you only ever see records from the channels your organization watches. Both trial and paid plans have full read access to their own Dataset.
Prefer an AI-native interface?
The same data is available to agents over MCP. See MCP integration.