Account API
The authenticated user’s profile, preferences, and speed-dial favorites Base path:/api/v1/me
Endpoint count: 14
Get the authenticated user
GET /api/v1/me/EXPO_PUBLIC_ORBIT_TENANT_ID env-var hack). The dashboard uses the same shape for the org-picker + Settings → Profile cards.
Get the caller’s saved AI campaign drafts
GET /api/v1/me/campaign-drafts{ id, name, brief, draft, channels, createdAt, updatedAt }, where draft is the generated campaign blueprint or null when only the brief was saved. History is saved to your account (not browser storage), so it survives clearing your browser or signing in from another device.
GET /api/v1/me/favorites
GET /api/v1/me/favoritesGet the caller’s saved generated-report history
GET /api/v1/me/generated-reportsGet the caller’s saved Recommendations tester draft
GET /api/v1/me/recommendations-draftdraft is null when nothing has been saved yet. The draft is saved to your account, so it survives clearing your browser or signing in from another device.
Get the caller’s distinctive-ring rules
GET /api/v1/me/ring-rulespstn) or an E.164 prefix (prefix) so an important inbound call can be told apart by sound. Rules are saved to your account (not browser storage), so they survive clearing your browser or signing in from another device.
POST /api/v1/me/favorites
POST /api/v1/me/favoritesstring (enum: pstn|extension|contact_id|sip)
required
What kind of dial target this favorite points at —
pstn for an E.164 phone number, sip for a sip: URI, extension for an internal extension, or contact_id for a saved contact.string
required
The dial target itself, matching
target_kind: an E.164 number for pstn (e.g. +14155552671), a sip: URI for sip, or a free-form identifier for extension / contact_id (1–512 characters).string | null
Optional display label shown next to the favorite in the dialpad (up to 64 characters). Omit or send
null for no label.integer
Optional position used to order favorites in the dialpad, lowest first. Defaults to 0; range 0–100000.
Replace the caller’s saved AI campaign drafts
PUT /api/v1/me/campaign-draftsdrafts (array, up to 50 entries), each { id, name, brief, draft, channels, createdAt, updatedAt } — this is a full replace, not per-item updates. The list is re-validated and re-bounded (max 50 entries, size-capped) server-side before it is saved.
any[]
required
—
Replace the caller’s saved generated-report history
PUT /api/v1/me/generated-reportsreports (array, up to 50 entries), each { id, name, type, generatedAt, columns } — this is a full replace, not per-item updates. Report metadata is validated and capped (max 50 reports) server-side; report rows are never accepted or stored.
object[]
required
—
Replace the caller’s saved Recommendations tester draft
PUT /api/v1/me/recommendations-draftdraft — catalog (non-empty, max 200 items), signals (max 200), profileId, limitRaw, halfLifeRaw, suppressPurchased, and weightsRaw. This is a full replace, not a per-field patch; the payload is re-validated and re-bounded server-side before it is saved.
any
required
—
Replace the caller’s distinctive-ring rules
PUT /api/v1/me/ring-rulesrules (array, up to 50 entries), each { match_kind, match_value, pattern, label? } — this is a full replace, not per-item updates. Every rule is re-validated server-side (E.164 for pstn, a leading-+ E.164 prefix for prefix, a known pattern) and de-duplicated by target before it is saved.
any[]
required
—
Update per-user preferences
PATCH /api/v1/me/string | null (enum: compact_bottom_bar|floating_panel|side_panel|null)
Softphone widget layout. NULL resets to the platform default.
boolean
When TRUE every voicemail assigned to this user triggers an audio-attached email via the dispatcher scheduler.
string | null
Alternate routing address. NULL clears to
users.email.string | null
Operator signature block (≤ 2 000 chars). NULL or whitespace-only string clears the persisted value.
PATCH /api/v1/me/favorites/
PATCH /api/v1/me/favorites/{id}string
required
—
string | null
New display label for the favorite (up to 64 characters). Send
null to clear the existing label.integer
New position used to order favorites in the dialpad, lowest first. Range 0–100000.
DELETE /api/v1/me/favorites/
DELETE /api/v1/me/favorites/{id}string
required
—