Partner API
Manage sub-accounts, billing, and usage reporting for your customers through the Partner API.
Partner Authentication
Partner API endpoints require a partner API key, which is different from a standard workspace API key. Include it in the Authorization header:
Partner authenticationbash
curl https://api.frontdeskos.com/v1/partner/accounts \
-H "Authorization: Bearer partner_sk_live_your_partner_key"Obtaining a Partner Key
Partner API keys are issued to approved partners. Contact
partners@frontdeskos.com or apply through the Partner Portal in the dashboard.Managing Sub-Accounts
Create and manage workspaces on behalf of your customers. Each sub-account is an isolated workspace with its own data, users, and settings.
Create a Sub-Account
POST
/v1/partner/accountsCreate sub-accountbash
curl -X POST https://api.frontdeskos.com/v1/partner/accounts \
-H "Authorization: Bearer partner_sk_live_your_partner_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Sunshine Dental",
"ownerEmail": "admin@sunshinedental.com",
"plan": "professional",
"settings": {
"timezone": "America/New_York",
"businessHours": {
"monday": { "open": "08:00", "close": "17:00" },
"tuesday": { "open": "08:00", "close": "17:00" },
"wednesday": { "open": "08:00", "close": "17:00" },
"thursday": { "open": "08:00", "close": "17:00" },
"friday": { "open": "08:00", "close": "16:00" }
}
}
}'Response
200 OK
{
"id": "ws_sunshine_dental",
"name": "Sunshine Dental",
"ownerEmail": "admin@sunshinedental.com",
"plan": "professional",
"status": "active",
"apiKey": "sk_live_generated_key_for_account",
"createdAt": "2025-06-15T10:00:00Z"
}List Sub-Accounts
GET
/v1/partner/accountsList sub-accountsbash
curl "https://api.frontdeskos.com/v1/partner/accounts?status=active&limit=20" \
-H "Authorization: Bearer partner_sk_live_your_partner_key"Suspend a Sub-Account
POST
/v1/partner/accounts/:id/suspendSuspend sub-accountbash
curl -X POST https://api.frontdeskos.com/v1/partner/accounts/ws_sunshine_dental/suspend \
-H "Authorization: Bearer partner_sk_live_your_partner_key" \
-H "Content-Type: application/json" \
-d '{
"reason": "Non-payment"
}'Suspension Effects
Suspended accounts retain their data but cannot process calls, book appointments, or access the dashboard. Re-activate by calling the
POST /accounts/:id/reactivate endpoint.Billing API
Access usage data and invoices for your sub-accounts to power your own billing system.
Get Usage
GET
/v1/partner/accounts/:id/usageGet usage for an accountbash
curl "https://api.frontdeskos.com/v1/partner/accounts/ws_sunshine_dental/usage?period=2025-06" \
-H "Authorization: Bearer partner_sk_live_your_partner_key"Usage response
200 OK
{
"accountId": "ws_sunshine_dental",
"period": "2025-06",
"usage": {
"calls": { "total": 342, "aiHandled": 198, "minutes": 1847 },
"appointments": { "booked": 156, "cancelled": 12 },
"leads": { "created": 89, "converted": 34 },
"smsMessages": 267,
"apiRequests": 15420
}
}List Invoices
GET
/v1/partner/billing/invoicesList partner invoicesbash
curl "https://api.frontdeskos.com/v1/partner/billing/invoices?limit=10" \
-H "Authorization: Bearer partner_sk_live_your_partner_key"Invoices response
200 OK
{
"invoices": [
{
"id": "inv_2025_06",
"period": "2025-06",
"totalAccounts": 24,
"subtotal": 4560.00,
"discount": 912.00,
"total": 3648.00,
"currency": "usd",
"status": "paid",
"pdfUrl": "https://api.frontdeskos.com/v1/partner/billing/invoices/inv_2025_06/pdf"
}
],
"total": 1,
"has_more": false
}Usage Reporting
Get an aggregated usage report across all sub-accounts for a given period:
GET
/v1/partner/reports/usageAggregated usage reportbash
curl "https://api.frontdeskos.com/v1/partner/reports/usage?period=2025-06&group_by=account" \
-H "Authorization: Bearer partner_sk_live_your_partner_key"Aggregated report
200 OK
{
"period": "2025-06",
"totalAccounts": 24,
"activeAccounts": 22,
"summary": {
"totalCalls": 8234,
"totalAppointments": 3891,
"totalLeads": 2104,
"totalApiRequests": 389420
},
"accounts": [
{
"id": "ws_sunshine_dental",
"name": "Sunshine Dental",
"calls": 342,
"appointments": 156,
"leads": 89
}
]
}