Ventryx REST API
Complete reference for all Ventryx API endpoints, request parameters, response objects, and error codes. The API follows REST conventions and returns JSON for all responses.
Base URL
https://api.ventryx.io/v1
All requests must be made over HTTPS. HTTP requests are rejected.
Request format
Pass Content-Type: application/json on all POST and PATCH requests. Authentication uses Bearer tokens in the Authorization header.
Request headers
Authorization: Bearer vtx_live_your_key_here Content-Type: application/json Ventryx-Version: 2026-04-01
Response format
All responses return JSON with a consistent envelope:
Success response
{
"data": { ... },
"meta": {
"total": 42,
"page": 1,
"per_page": 20
}
}
Error response
{
"error": {
"code": "invalid_api_key",
"message": "The API key provided is invalid or has been revoked.",
"status": 401
}
}
Rate limits
Rate limits are applied per API key. Limits vary by plan:
| Plan | Requests / min | Requests / day |
|---|---|---|
| Starter | 60 | 10,000 |
| Pro | 300 | 100,000 |
| Enterprise | Custom | Unlimited |
Rate limit headers are returned on every response:
X-RateLimit-Limit: 300 X-RateLimit-Remaining: 247 X-RateLimit-Reset: 1743591600
Endpoints
Workflows
| Method | Path | Description |
|---|---|---|
GET | /workflows | List all workflows |
POST | /workflows | Create a workflow |
GET | /workflows/:id | Retrieve a workflow |
PATCH | /workflows/:id | Update a workflow |
DELETE | /workflows/:id | Delete a workflow |
Events
| Method | Path | Description |
|---|---|---|
GET | /events | List all events |
POST | /events | Emit an event |
GET | /events/:id | Retrieve an event |
API Keys
| Method | Path | Description |
|---|---|---|
GET | /api-keys | List all API keys |
POST | /api-keys | Create an API key |
DELETE | /api-keys/:id | Revoke an API key |
HTTP status codes
| Code | Meaning |
|---|---|
200 | OK — request succeeded |
201 | Created — resource was created |
204 | No Content — resource was deleted |
400 | Bad Request — invalid parameters |
401 | Unauthorized — invalid or missing API key |
403 | Forbidden — insufficient scope |
404 | Not Found — resource does not exist |
429 | Too Many Requests — rate limit exceeded |
500 | Internal Server Error |