REST API
Stable, resource-oriented primitives with idempotency, request IDs and clear errors.
Use SendOne through a REST API, TypeScript or Python SDK, signed webhooks and a sandbox designed for fast, confident integration.
await sendone.messages.send(({ to: customer.id, channel: "sms", template: "order-shipped", data: ({ orderNumber: "SO-1042" }) }));
Stable, resource-oriented primitives with idempotency, request IDs and clear errors.
First-class SDKs for modern application stacks, with more languages planned.
Signed delivery events, retries and consistent payloads across supported channels.
Trace every request, routing decision, provider attempt and delivery outcome.
Scoped test and live credentials with environment separation and rotation.
Develop and validate message flows before moving real customer traffic.
Every interface uses the same identity, consent, templates, routing, provider adapters, events, and logs.
One contact and consent model
One message lifecycle
One provider abstraction layer
One place to inspect delivery