API Reference
Authentication
The ReqPour API is available at https://api.reqpour.com. All requests require authentication using a Bearer token in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://api.reqpour.com/endpointsGet your API token from the ReqPour dashboard under Account Settings. The same token used by the CLI works with the API.
All responses are JSON. Error responses include a message field with a human-readable description:
{
"error": "not_found",
"message": "Endpoint not found"
}Endpoints
List all endpoints:
GET /endpointsReturns an array of endpoint objects with id, name, url, createdAt, and requestCount.
Create an endpoint:
POST /endpoints
Content-Type: application/json{"name": "my-stripe-endpoint"} ```
Returns the created endpoint object including the generated url.
Delete an endpoint:
DELETE /endpoints/:idReturns 204 No Content on success. Deleting an endpoint also deletes all captured requests for that endpoint.
Requests
List captured requests for an endpoint:
GET /endpoints/:id/requests?limit=50&offset=0Returns an array of request objects with id, method, path, headers, body, receivedAt, and responseStatus.
Query parameters:
- limit: Number of requests to return (default: 50, max: 100)
- offset: Pagination offset (default: 0)
- search: Full-text search across headers and body
Get a single request:
GET /endpoints/:id/requests/:requestIdReturns the full request object with complete headers and body.
Replay
Replay a captured request:
POST /endpoints/:id/requests/:requestId/replayThis re-sends the captured request to the endpoint, exactly as it was originally received. If a relay is active, the replayed request will be forwarded to your local server.
The response includes the replay status:
{
"status": "replayed",
"newRequestId": "req_abc123",
"relayedTo": "http://localhost:3000/api/webhooks",
"responseStatus": 200,
"latency": 42
}You can also replay with modifications:
POST /endpoints/:id/requests/:requestId/replay
Content-Type: application/json{ "headerOverrides": {"X-Custom-Header": "test"}, "bodyOverrides": {"type": "different.event"} } ```
This is useful for testing how your handler responds to different event types using a captured payload as a starting point.
Webhooks and Rate Limits
The API has rate limits to prevent abuse. Free tier: 60 requests per minute. Pro tier: 300 requests per minute. Rate limit headers are included in every response:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1709855100If you exceed the rate limit, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.
The API follows standard HTTP semantics: 200 for success, 201 for creation, 204 for deletion, 400 for bad requests, 401 for authentication errors, 404 for not found, and 429 for rate limiting. All error responses include a message field.
Related
Get started with ReqPour
Catch, inspect, and relay webhooks to localhost. Free to start, $3/mo for Pro.