Authentication
All API requests require a Bearer token. Generate API keys from Settings → API Keys.
API keys follow the format prz_ followed by 48 hex characters. Keep your keys secure — they provide full access to your workspace.
Rate Limits
The API allows 100 requests per minute per API key. Rate limit headers are included in every response:
Error Handling
The API uses standard HTTP status codes. Errors return JSON with an error field:
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 403 | Forbidden — insufficient permissions |
| 404 | Not found |
| 429 | Rate limited — slow down |
| 500 | Server error |
Tasks
Tasks are the core unit of work in Prenzo. Create, update, and manage tasks programmatically.
List all tasks in the workspace, with optional filters
| Parameter | Type | Description |
|---|---|---|
| project_id | integer | Filter by project |
| status | string | Filter: todo, in_progress, review, done, blocked |
| assigned_to | integer | Filter by assignee user ID |
| priority | string | Filter: low, medium, high, urgent |
| limit | integer | Max results (default 50, max 100) |
Create a new task
Update a task. Only send the fields you want to change.
Soft-delete a task (moves to trash)
Projects
List all projects in the workspace
Get project details with task counts
Users
List workspace members
Time Entries
List time entries, optionally filtered by task_id or user_id
Log a manual time entry
Sprints
List sprints for a project
Labels
List all labels in the workspace
Webhooks
Subscribe to events and receive real-time HTTP callbacks when things happen in Prenzo.
Available Events
| Event | Description |
|---|---|
| task.created | Fired when a new task is created |
| task.updated | Fired when a task is modified |
| task.completed | Fired when a task status changes to done |
| task.assigned | Fired when a task is assigned to someone |
| task.commented | Fired when a comment is added |
| sprint.started | Fired when a sprint begins |
| sprint.completed | Fired when a sprint ends |
| member.joined | Fired when a new member joins |
Webhook Payload
Payloads include an X-Prenzo-Signature header with an HMAC-SHA256 signature for verification.