Phone Numbers
API key in format kros_live_xxxx for production or kros_test_xxxx for testing.
Also accepts JWT tokens from Supabase Auth for dashboard sessions.
Alternative: You can also use the x-api-key header instead of Authorization Bearer.
Filter phone numbers by status.
assigned→ Numbers owned by the organizationavailable→ Inventory numbers available for purchase
assignedPossible values: ISO 3166-1 alpha-2 country code (required when action=available)
NGNumber type filter (only applies when action=available)
Number of results (default 20, max 100)
20Pagination offset
0Organization UUID for multi-tenant context. Falls back to user's first organization if not provided.
List of phone numbers
Unauthorized - Invalid or missing API key
API key in format kros_live_xxxx for production or kros_test_xxxx for testing.
Also accepts JWT tokens from Supabase Auth for dashboard sessions.
Alternative: You can also use the x-api-key header instead of Authorization Bearer.
Organization UUID for multi-tenant context. Falls back to user's first organization if not provided.
Supports two purchase flows:
- API flow: Provide
inventory_idonly. The system resolves e164, country, and type from inventory. - Dashboard flow: Provide
e164,country, andtypeexplicitly. At least one flow's required fields must be present.
ID of the phone number from inventory (API flow)
E.164 formatted phone number (Dashboard flow)
+2348012345678ISO 3166-1 alpha-2 country code (Dashboard flow)
NGNumber type (Dashboard flow)
Endpoint to attach immediately after purchase
Total cost in cents (setup + first month)
One-time setup cost in cents
Recurring monthly cost in cents
Phone number purchased successfully
E.164 formatted phone number
+14155551234ISO 3166-1 alpha-2 country code
UStruefalseBad request. Possible error codes:
MISSING_FIELDS— Neitherinventory_idnore164/country/typeprovidedKYC_NOT_SUBMITTED— KYC verification not yet submittedKYC_INITIATED— KYC submitted but not yet reviewedKYC_DECLINED— KYC verification was declinedKYC_PENDING— KYC verification is still pendingNUMBER_NOT_AVAILABLE— The requested number is no longer available
Unauthorized - Invalid or missing API key
Insufficient balance (INSUFFICIENT_BALANCE)
Forbidden - Insufficient permissions or KYC required
API key in format kros_live_xxxx for production or kros_test_xxxx for testing.
Also accepts JWT tokens from Supabase Auth for dashboard sessions.
Alternative: You can also use the x-api-key header instead of Authorization Bearer.
Phone number UUID
Organization UUID for multi-tenant context. Falls back to user's first organization if not provided.
Phone number details with SIP credentials
Resource not found
API key in format kros_live_xxxx for production or kros_test_xxxx for testing.
Also accepts JWT tokens from Supabase Auth for dashboard sessions.
Alternative: You can also use the x-api-key header instead of Authorization Bearer.
Phone number UUID
Set to release to soft-release the number (marks inactive, keeps record).
Omit for hard delete (removes record entirely).
Organization UUID for multi-tenant context. Falls back to user's first organization if not provided.
Phone number soft-released (when ?action=release)
Phone number hard-deleted (default)
Resource not found
API key in format kros_live_xxxx for production or kros_test_xxxx for testing.
Also accepts JWT tokens from Supabase Auth for dashboard sessions.
Alternative: You can also use the x-api-key header instead of Authorization Bearer.
Phone number UUID
Organization UUID for multi-tenant context. Falls back to user's first organization if not provided.
Endpoint to route calls to
Allow inbound calls
Allow outbound calls
Phone number updated
Bad request - Invalid parameters or request body
Resource not found
Last updated
