REST API Overview
The Meter REST API provides direct HTTP access to all Meter features. Use it when the Python SDK isn’t available or when you need language-agnostic integration.Base URL
Authentication
Include your API key in theAuthorization header using the Bearer scheme:
Request format
All POST and PATCH requests must includeContent-Type: application/json and send JSON-encoded request bodies.
Example:
Response format
All responses are JSON-encoded with appropriate HTTP status codes:200 OK: Successful request201 Created: Resource created successfully400 Bad Request: Invalid request parameters401 Unauthorized: Invalid or missing API key404 Not Found: Resource not found500 Internal Server Error: Server error
API endpoints
Strategies
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/strategies/generate | Generate a new strategy |
| POST | /api/strategies/{id}/refine | Refine an existing strategy |
| GET | /api/strategies | List all strategies |
| GET | /api/strategies/{id} | Get strategy details |
| GET | /api/strategies/audit | Audit log of strategy create/delete events |
| DELETE | /api/strategies/{id} | Delete a strategy |
Account
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/account/quota | Current strategy quota state (read-only) |
Jobs
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/jobs | Create a new job (async) |
| POST | /api/jobs/execute | Execute job (synchronous) |
| GET | /api/jobs/{id} | Get job status and results |
| GET | /api/jobs | List jobs (with filtering) |
| POST | /api/jobs/compare | Compare two jobs |
| GET | /api/strategies/{id}/history | Get strategy job history |
Schedules
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/schedules | Create a schedule |
| GET | /api/schedules | List all schedules |
| PATCH | /api/schedules/{id} | Update a schedule |
| DELETE | /api/schedules/{id} | Delete a schedule |
| GET | /api/schedules/{id}/changes | Get unseen changes |
Watch (Simplified)
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/watch | Create a watch (strategy + schedule in one call) |
Discovery
| Method | Endpoint | Description |
|---|---|---|
| POST | /discover | Start URL discovery |
| GET | /discover/{id} | Get discovery status |
| GET | /discover/{id}/urls | Get discovered URLs |
| POST | /discover/{id}/execute | Execute batch scrape |
| POST | /discover/{id}/schedule | Create recurring schedule |
| GET | /discoveries | List all discoveries |
| DELETE | /discover/{id} | Delete a discovery |
Strategy Groups
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/strategy-groups | Create a strategy group |
| GET | /api/strategy-groups | List strategy groups |
| GET | /api/strategy-groups/{id} | Get group details with strategies |
| PATCH | /api/strategy-groups/{id} | Update group name/description |
| DELETE | /api/strategy-groups/{id} | Delete a group |
| POST | /api/strategy-groups/{id}/strategies | Add strategies to group |
| DELETE | /api/strategy-groups/{id}/strategies/{sid} | Remove strategy from group |
| POST | /api/strategy-groups/{id}/schedule | Apply schedule to all group members |
| DELETE | /api/strategy-groups/{id}/schedule | Delete all group schedules |
| PATCH | /api/strategy-groups/{id}/schedule/toggle | Enable/disable group schedules |
| PATCH | /api/strategy-groups/{id}/schema | Apply output schema to group |
| GET | /api/strategy-groups/{id}/schema/progress | Poll schema regeneration progress |
| POST | /api/strategy-groups/{id}/webhook/test | Test group webhook |
Workflows
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/workflows | Create a workflow |
| GET | /api/workflows | List workflows |
| GET | /api/workflows/{id} | Get workflow details |
| PUT | /api/workflows/{id} | Update workflow metadata |
| DELETE | /api/workflows/{id} | Delete a workflow |
| POST | /api/workflows/{id}/nodes | Add a node |
| PUT | /api/workflows/{id}/nodes/{nid} | Update a node |
| DELETE | /api/workflows/{id}/nodes/{nid} | Delete a node |
| POST | /api/workflows/{id}/edges | Add an edge |
| DELETE | /api/workflows/{id}/edges/{eid} | Delete an edge |
| POST | /api/workflows/{id}/run | Run a workflow |
| GET | /api/workflows/{id}/runs/{rid} | Get run details |
| GET | /api/workflows/{id}/runs | List runs |
| GET | /api/workflows/{id}/runs/latest/output | Get latest output |
| POST | /api/workflows/{id}/runs/{rid}/cancel | Cancel a run |
| POST | /api/workflows/{id}/schedules | Create workflow schedule |
| GET | /api/workflows/{id}/schedules | List workflow schedules |
| PATCH | /api/workflows/{id}/schedules/{sid} | Update workflow schedule |
| DELETE | /api/workflows/{id}/schedules/{sid} | Delete workflow schedule |
Webhooks
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/webhooks/test | Test webhook delivery |
- Strategy endpoints
- Job endpoints
- Schedule endpoints
- Strategy group endpoints
- Workflow endpoints
- Watch endpoint
- Discovery endpoints
- Webhooks
Rate limiting
Rate limit headers are included in responses:Pagination
List endpoints support pagination withlimit and offset query parameters:
Idempotency
Strategy generation supports an optionalIdempotency-Key request header.
Retries with the same key within 24 hours replay the original response
without re-running the LLM or consuming additional quota. See
Strategy generation idempotency
for the full semantics and examples.
Other POST endpoints do not currently support Idempotency-Key — calling
them twice will create two resources.
CORS
The API does not currently support CORS. For browser-based applications, proxy requests through your backend.Webhooks
Configure webhooks when creating schedules to receive real-time notifications:Next steps
Authentication
Learn about API key authentication
Strategy Endpoints
Explore strategy API endpoints
Account
Read live quota and plan tier
Job Endpoints
Explore job API endpoints
Schedule Endpoints
Explore schedule API endpoints
Watch Endpoint
One-step URL monitoring setup
Discovery Endpoints
Site crawling and URL discovery
Strategy Groups
Manage strategy groups
Webhooks
Test webhook delivery