OdyDocs

SDKs

Official zero-dependency TypeScript and Python clients for the Ody REST API, with auto-pagination, typed errors, idempotency and webhook verification.

Availability

The SDKs are in preview: the packages are release-ready at v0.3.0 and the first registry release is being set up. Until npm install @ody/sdk / pip install ody-sdk work, install from the source tree (each README has the one-line install), call the REST API directly (every example in these docs has a cURL tab), or generate a client from the OpenAPI spec. Want to be told when they land on npm and PyPI? Email [email protected].

TypeScriptPython
Package@ody/sdkody-sdk (imported as ody)
Version0.3.00.3.0
RuntimeNode.js 18+, Deno, Bun, browsers (any fetch)Python 3.9+
DependenciesNoneNone (standard library only)
Webhook verificationverifyWebhookSignature() (server-side)verify_webhook_signature()
Webhook parsingparseWebhookEvent() → typed WebhookEventparse_webhook_event() → envelope dict
Event catalogWEBHOOK_EVENT_TYPES, WebhookEventType, a data type per eventWEBHOOK_EVENT_TYPES

#What they give you over raw HTTP

FeatureTypeScriptPython
Auto-paginationfor await (const c of ody.contacts.listAll())for c in client.contacts.list_all():
Typed errorsOdyError with code, status, requestId, retryAfterOdyError with code, status, request_id, retry_after
IdempotencyidempotencyKey option on messages.send, numbers.buyidempotency_key=
TypesFull TypeScript types for every resourceDocstrings and type hints; responses are dicts
Webhook signaturesConstant-time HMAC, 5-minute replay windowSame
Webhook eventsparseWebhookEvent() verifies + parses; event.data typed per event.typeparse_webhook_event() verifies + parses

The SDKs don't retry automatically. Wrap calls in your own backoff using retryAfter / retry_after (see Rate limits).

#Resource map

Both SDKs mirror the REST API one-to-one:

NamespaceTypeScript methodsREST
contactslist, listAll, create, get, update, deleteContacts
conversationslist, listAll, get, setStatusConversations
messagessend, searchMessages
callslist, placeCalls
numberslist, searchAvailable, buy, connectAgent, disconnectAgentNumbers
messagingstatus, register, refresh, verifyOtp, resendOtpMessaging
agentget, update, publishAgent
webhookslist, create, get, update, delete, rotate, test, deliveries, eventTypesWebhook endpoints

Python uses the same names in snake_case (list_all, set_status, search_available, connect_agent, verify_otp, event_types, …).

  • TypeScript SDK — Setup, usage, errors, webhook verification.
  • Python SDK — Setup, usage, errors, webhook verification.
Last updated Wed Oct 14 2026 00:00:00 GMT+0000 (Coordinated Universal Time)Something wrong on this page? Tell us