Prenzo REST API

Build integrations, automate workflows, and extend Prenzo with our comprehensive REST API

https://prenzo.io/api/v1/

Authentication

All API requests require a Bearer token. Generate API keys from Settings → API Keys.

# Include your API key in the Authorization header curl -H "Authorization: Bearer prz_your_api_key_here" \ https://prenzo.io/api/v1/tasks

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:

X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 Retry-After: 60 # Only when rate limited (429)

Error Handling

The API uses standard HTTP status codes. Errors return JSON with an error field:

{ "error": "Task not found", "code": 404 }
CodeDescription
200Success
400Bad request — missing or invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Not found
429Rate limited — slow down
500Server error

Tasks

Tasks are the core unit of work in Prenzo. Create, update, and manage tasks programmatically.

GET /api/v1/tasks 🔒 Auth Required

List all tasks in the workspace, with optional filters

ParameterTypeDescription
project_idintegerFilter by project
statusstringFilter: todo, in_progress, review, done, blocked
assigned_tointegerFilter by assignee user ID
prioritystringFilter: low, medium, high, urgent
limitintegerMax results (default 50, max 100)
POST /api/v1/tasks 🔒 Auth Required

Create a new task

{ "project_id": 1, // required "title": "Design homepage", // required "description": "...", "status": "todo", "priority": "high", "assigned_to": 2, "due_date": "2026-04-01" }
PUT /api/v1/tasks/:id

Update a task. Only send the fields you want to change.

DELETE /api/v1/tasks/:id

Soft-delete a task (moves to trash)

Projects

GET /api/v1/projects

List all projects in the workspace

GET /api/v1/projects/:id

Get project details with task counts

Users

GET /api/v1/users

List workspace members

Time Entries

GET /api/v1/time-entries

List time entries, optionally filtered by task_id or user_id

POST /api/v1/time-entries

Log a manual time entry

{ "task_id": 42, "duration_minutes": 90, "description": "Backend development", "date": "2026-03-15" }

Sprints

GET /api/v1/sprints?project_id=1

List sprints for a project

Labels

GET /api/v1/labels

List all labels in the workspace

Webhooks

Subscribe to events and receive real-time HTTP callbacks when things happen in Prenzo.

Available Events

EventDescription
task.createdFired when a new task is created
task.updatedFired when a task is modified
task.completedFired when a task status changes to done
task.assignedFired when a task is assigned to someone
task.commentedFired when a comment is added
sprint.startedFired when a sprint begins
sprint.completedFired when a sprint ends
member.joinedFired when a new member joins

Webhook Payload

{ "event": "task.completed", "timestamp": "2026-03-15T12:00:00Z", "data": { "task": { "id": 42, "title": "Design homepage", "status": "done", ... } } }

Payloads include an X-Prenzo-Signature header with an HMAC-SHA256 signature for verification.