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 |
| DELETE | /api/strategies/{id} | Delete a strategy |
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
POST requests are not idempotent—calling the same endpoint twice will create two resources. For idempotent operations, use the Python SDK or implement your own idempotency logic.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
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