API Reference osmTalk REST API endpoints for managing agents, calls, and billing.
Format Where What to do with it OpenAPI 3.1 apps/api/openapi.yamlImport into Stoplight / Swagger UI / Insomnia / your code generator. Also drives the Postman collection. Postman v2.1 collection apps/api/osmtalk.postman_collection.jsonPostman → Import → File → Drag in. Set bearerToken and baseUrl collection variables, you're done. 37 ready-made requests. TypeScript SDK npm i @osmapi/osmtalk-sdkDrop-in client — types auto-suggest every field. Python SDK pip install osmtalkSync + async clients, verify_webhook_signature helper included.
The Postman collection auto-adds Idempotency-Key (a fresh UUID per request) and X-Organization-Id (from the collection variable) so retried POSTs and multi-org accounts work out of the box.
Production: https://api.osmtalk.com
Local dev: http://localhost:4002
osmTalk uses session-based authentication via the dashboard at app.osmtalk.com . Credentials are shared with osmAPI — sign in once, use both platforms. For widget/embed endpoints, use an API key.
All /api/* routes (except widget and webhooks) require an active session. The session token is sent as:
Authorization: Bearer <session-token>
Widget endpoints use API keys created in Dashboard → Settings → API Keys :
x-api-key: <your-api-key>
Method Endpoint Auth Description GET /api/agentsSession List all agents GET /api/agents/:idSession Get agent details POST /api/agentsSession Create agent PUT /api/agents/:idSession Update agent DELETE /api/agents/:idSession Delete agent POST /api/agents/:id/connectSession Start web voice call GET /api/agents/:id/statsSession Get agent statistics
Method Endpoint Auth Description GET /api/callsSession List calls with filters GET /api/calls/:idSession Get call details + transcript POST /api/calls/outboundSession Start outbound phone call POST /api/calls/:id/transferSession Transfer call to human POST /api/calls/:id/endSession End active call
Method Endpoint Auth Description GET /api/billing/balanceSession Current credit balance POST /api/billing/create-payment-intentSession Create Razorpay order POST /api/billing/calculate-feesSession Preview fees GET /api/billing/transactionsSession Payment history GET /api/billing/usageSession Call cost history
Method Endpoint Auth Description POST /api/widget/agents/:id/connectAPI Key Start voice call from widget POST /api/widget/agents/:id/chatAPI Key Send chat message POST /api/widget/calls/outboundAPI Key Outbound call (MCP) GET /api/widget/agentsAPI Key List agents GET /api/widget/phone-numbersAPI Key List phone numbers GET /api/widget/callsAPI Key Call history GET /api/widget/calls/:idAPI Key Call details GET /api/widget/dashboardAPI Key Dashboard stats
Method Endpoint Auth Description GET /api/phone-numbersSession List phone numbers POST /api/phone-numbersSession Add existing number PUT /api/phone-numbers/:idSession Update number DELETE /api/phone-numbers/:idSession Remove number
Method Endpoint Auth Description GET /api/telephony/numbers/searchSession Search available numbers POST /api/telephony/numbers/buySession Buy a phone number POST /api/telephony/numbers/provisionSession Provision existing number GET /api/telephony/numbers/ownedSession List owned numbers
Method Endpoint Auth Description POST /api/webhooks/razorpaySignature Razorpay payment webhooks GET/POST /api/webhooks/whatsappVerify token WhatsApp webhooks
osmTalk also exposes internal infrastructure webhooks for its voice transport. These are not for end-user integration; see Webhooks for your app for the events you should subscribe to.