Download OpenAPI specification:Download
Official API documentation for the Fonella backend services.
Starts a test callback request via the configured outbound telephony provider.
| phoneNumber required | string |
| locale | string Enum: "de" "en" "tr" "ar" "el" Marketing UI locale (selects callback assistant + outbound caller ID) |
| company | string |
| preferredWindow | string |
| notes | string |
| recaptchaToken | string |
{- "phoneNumber": "+491701234567",
- "locale": "de",
- "company": "Fonella GmbH",
- "preferredWindow": "Today 14:00-16:00",
- "notes": "Please call via office line.",
- "recaptchaToken": "03AFcWeA..."
}{ }Submits the public contact form.
| name required | string |
| email required | string <email> |
| company | string |
| message required | string |
{- "name": "Max Mustermann",
- "email": "max@example.com",
- "company": "Fonella GmbH",
- "message": "I would like to book a demo."
}{ }| email required | string <email> |
| title required | string |
| content required | string |
| ticketPriority required | string Enum: "trivial" "minor" "major" "critical" "blocker" |
| recaptchaToken | string |
{- "email": "user@example.com",
- "title": "string",
- "content": "string",
- "ticketPriority": "trivial",
- "recaptchaToken": "string"
}Receives webhook events from the configured voice telephony provider (server URL).
Processes end-of-call-report events by resolving the owning customer
via assistantId → auth0_user_id → Auth0 email, then sends a call summary
email via Mailgun (deep link to call detail in customer portal).
All other event types are acknowledged with 200 OK.
object |
{- "message": {
- "type": "end-of-call-report"
}
}Registers or updates a device session after sign-in. May send email/push alerts for new devices.
| property name* additional property | any |
{ }{ }Creates a new subscription for the authenticated user.
| planId required | string Enum: "starter" "business" "premium" |
{- "planId": "business"
}{ }Schedules a subscription plan change.
| targetPlanId required | string Enum: "starter" "business" "premium" |
{- "targetPlanId": "premium"
}{ }Updates settings for the authenticated user.
| name | string |
string <email> | |
| timezone | string |
{- "name": "Max Mustermann",
- "email": "max@fonella.ai",
- "timezone": "Europe/Berlin"
}{ }Sends a team notification email for review (Microsoft Store policy 11.16).
| callId required | string |
| startedAt required | string <date-time> |
| description required | string |
| locale | string Enum: "de" "en" |
{- "callId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "locale": "de"
}Creates or updates assistant setup for the authenticated user.
| greeting | string |
| language | string |
{- "greeting": "Hello, this is Fonella.",
- "language": "de"
}{ }Permanently deletes the account: Vapi assistant and phone resources (pool number released), Sipgate devices (except shared trunk), DynamoDB user data, and the Auth0 user. Confirmation email is sent only after successful removal.
| property name* additional property | any |
{ }{ }Removes integration(s). Without query: pool fonella line, dashboard Sipgate line, and external trunk.
With ?externalOnly=1, removes only the third-party SIP trunk (voice provider + metadata) and leaves Sipgate routing untouched.
With ?fonellaSipgateOnly=1, removes only the dashboard Fonella/Sipgate device line (not the pool number, not external).
| externalOnly | string Enum: "1" "true" |
| fonellaSipgateOnly | string Enum: "1" "true" |
Two modes: (1) mode=sipgate — fonella Sipgate device + routing + third-party voice stack for a number on the Sipgate account.
(2) mode=external — your own SIP trunk + voice provider only (additive; does not change Sipgate routing or pool numbers).
| mode | string Enum: "sipgate" "external" |
| phoneNumber | string |
| alias | string Optional label for the Sipgate register device (sipgate mode only). |
| gateway | string SIP host or IP (external mode only). |
| authUsername | string |
| authPassword | string |
| port | integer |
| inboundEnabled | boolean |
{- "mode": "sipgate",
- "phoneNumber": "string",
- "alias": "string",
- "gateway": "string",
- "authUsername": "string",
- "authPassword": "string",
- "port": 0,
- "inboundEnabled": true
}Cancels the Stripe subscription immediately when a subscription id is stored, then full teardown: Vapi assistant + phone numbers + per-user credentials, Sipgate devices, phone pool assignment, all DynamoDB rows, and the Auth0 user. Active team member accounts linked to this owner are fully closed as well (DynamoDB + Auth0). The shared Sipgate trunk BYO-SIP credential is never deleted.
| userId required | string |
Aggregated KPIs and 12-month time series. Serves a DynamoDB snapshot when younger than
one hour; otherwise recomputes from table scans and updates the snapshot.
Pass refresh=1 to force a recompute.
| refresh | string Set to |
Union of USER# SETTINGS and SUBSCRIPTION rows (subscription-only customers appear). Auth0 email comes from SETTINGS cache fields when present. Offset pagination. Search (q) uses the same union in memory (suitable for ~1–3k accounts).
| limit | integer [ 25 .. 100 ] Default: 25 |
| cursor | string |
| q | string |
Updates the commission rate or status of a partner.
| partnerId required | string |
| commissionPercent | number |
| status | string Enum: "active" "disabled" |
{- "commissionPercent": 0,
- "status": "active"
}Called after a partner registers. Validates the invite token, updates the partner record with the auth0 user ID, and sets status to active.
| inviteToken required | string |
{- "inviteToken": "string"
}Saves billing address and bank account details for commission payouts.
| payoutIban | string |
| payoutBic | string |
| payoutBankName | string |
| payoutAccountHolder | string |
| billingCompany | string |
| billingName | string |
| billingStreet | string |
| billingZip | string |
| billingCity | string |
| billingCountry | string |
| billingVatId | string |
{- "payoutIban": "string",
- "payoutBic": "string",
- "payoutBankName": "string",
- "payoutAccountHolder": "string",
- "billingCompany": "string",
- "billingName": "string",
- "billingStreet": "string",
- "billingZip": "string",
- "billingCity": "string",
- "billingCountry": "string",
- "billingVatId": "string"
}Saves the affiliate referral for the authenticated user. Called once on first login when a ref cookie is present. refId may be a short public code (see ?ref=) or a legacy partner user id (?refId=).
| refId required | string |
{- "refId": "string"
}