Developers

Build anything on top of BrioSync.

REST API + signed webhooks + sample code. Read or write every entity in your workspace — tickets, projects, time logs, people, customers. OAuth 2.0, JSON, rate-limited per plan.

API is currently in Beta — please give feedback while it stabilises

API Status: Beta — basic resources available, expanding monthly. Stability targets: GA Q3 2026. Subscribe to API changelog via email.

1. Authentication

All API requests use OAuth 2.0 Bearer tokens. Generate an API key from Settings → Developer → API Keys in your workspace. Treat keys like passwords — store them in environment variables, never in client-side code.

# Make a request with a Bearer token
curl -X GET "https://api.briosync.com/v1/tickets" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

2. Core endpoints

Base URL: https://api.briosync.com/v1

Tickets

GET/ticketsList tickets (filter by status, assignee, client, date)
GET/tickets/{id}Retrieve a single ticket with full history
POST/ticketsCreate a new ticket
PUT/tickets/{id}Update ticket fields (status, priority, assignee, etc.)
POST/tickets/{id}/repliesAdd a reply to a ticket

Projects & tasks

GET/projectsList projects with filters
GET/projects/{id}/tasksList tasks in a project
POST/projectsCreate a new project
PUT/tasks/{id}Update task status or assignee

Time logs & margin

GET/time-logsList time logs by user, project, or date range
POST/time-logsLog time against a ticket or task
GET/clients/{id}/marginGet live margin for a client
GET/projects/{id}/leakageGet effort-leakage data for a project

People & capacity

GET/peopleList team members
GET/people/{id}/utilizationGet a person's current utilization %
GET/leave-requestsList leave requests

Customers

GET/customersList customer accounts
POST/customersCreate a new customer

3. Sample — create a ticket

POST https://api.briosync.com/v1/tickets

{
  "title": "Login error on mobile app",
  "description": "App crashes on iOS 17 after sign-in",
  "type": "incident",
  "priority": "major",
  "customer_id": "cust_acme_corp",
  "assignee_id": "user_daniel_walker"
}

// Response (201)
{
  "id": "TKT-906",
  "title": "Login error on mobile app",
  "sla_resolution_at": "2026-05-28T14:30:00Z",
  "created_at": "2026-05-27T08:15:00Z"
}

4. Webhooks

Subscribe to events from your workspace. We send signed POST requests to your endpoint with a JSON payload. Verify signatures using the secret shown when you register the webhook.

Available events

ticket.created
ticket.updated
ticket.replied
ticket.resolved
sla.breached
project.created
project.margin_flag
task.assigned
time_log.created
leave.requested
leave.approved
customer.created

5. Rate limits

PlanRequests / minWebhooks
Free301
Starter1205
Pro60025
EnterpriseCustomUnlimited

When you exceed the limit, the API returns 429 Too Many Requests with a Retry-After header indicating when to retry.

6. SDKs & clients

Official SDK support is on the roadmap. Until then, any HTTP client works — the API is straightforward JSON over REST.

📦 Node.js / TypeScript — Q3 2026
🐍 Python — Q3 2026
💎 Ruby — Q4 2026
☕ Java — 2027

Get an API key + early access

The API is in Beta — usage is free during the beta period for all paid plans. Email us with your use case and we'll send you a key plus put you on the API changelog.

Request API key → See integrations →