RESTful API. OpenAPI 3.0 spec. Sandbox environment. Send your first message in under 5 minutes.
curl -X POST https://api.onesend2u.com/api/app/notifications/send \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transactionId": "welcome-001",
"application": "demo",
"region": "ES",
"language": "es",
"notificationType": "onboard",
"notificationSubtype": "welcome",
"recipients": [{ "channel": "sms", "recipient": "+34612345678" }],
"templateVariables": [{ "firstName": "Alex" }]
}'
var client = new OneSend2UClient(new OneSend2UClientOptions {
BaseUrl = "https://api.onesend2u.com",
ApiKey = "YOUR_API_KEY",
TenantId = "YOUR_TENANT_ID"
});
await client.Notifications.SendAsync(new SendNotificationRequest {
TransactionId = "welcome-001",
Application = "demo",
Region = "ES",
Language = "es",
NotificationType = "onboard",
NotificationSubtype = "welcome",
Recipients = [new() { Channel = Channel.Sms, Recipient = "+34612345678" }],
TemplateVariables = [new() { ["firstName"] = "Alex" }]
});
// Node.js SDK — coming soon. Use fetch in the meantime:
await fetch('https://api.onesend2u.com/api/app/notifications/send', {
method: 'POST',
headers: { 'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
transactionId: 'welcome-001',
application: 'demo',
region: 'ES', language: 'es',
notificationType: 'onboard', notificationSubtype: 'welcome',
recipients: [{ channel: 'sms', recipient: '+34612345678' }],
templateVariables: [{ firstName: 'Alex' }]
})
});
# Python SDK — coming soon. Use requests in the meantime:
import requests
requests.post(
"https://api.onesend2u.com/api/app/notifications/send",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"transactionId": "welcome-001",
"application": "demo",
"region": "ES", "language": "es",
"notificationType": "onboard", "notificationSubtype": "welcome",
"recipients": [{"channel": "sms", "recipient": "+34612345678"}],
"templateVariables": [{"firstName": "Alex"}]
}
)
A modern developer experience: typed SDK, signed webhooks, queryable API logs and a sandbox in the works — so you can focus on your product, not on our plumbing.
Compile-time validation, IntelliSense and no HTTP boilerplate.
Typed rate-limit exceptions surface remaining quota and retry-after, so your backoff stays honest.
Every webhook delivery is signed with HMAC-SHA256. Validate it with the SDK helper in one line.
Every send returns a transaction ID that ties together the request, the API response and the delivery on each channel.
Test end-to-end without real carriers or charges.
From sign-up to your first message in under 5 minutes.
Sign up for an OneSend2U account and generate your API key from the portal. Your key grants access to all endpoints with role-based permissions.
Connect your preferred messaging provider (Twilio, Infobip, or SMTP). Multi-provider routing is built in for maximum flexibility.
Make your first API call to send an SMS, Email, or WhatsApp message. Use templates with variables for dynamic, personalized content.
Core endpoints for the OneSend2U API. All endpoints authenticate via an X-API-Key header and support versioning through the api-version query string.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/app/notifications/send |
Send a notification (SMS, Email, WhatsApp, etc.) |
| GET | /api/app/notifications |
List notifications with filtering and pagination |
| GET | /api/app/notifications/{id} |
Get notification details and delivery status |
| GET | /api/app/messages |
List messages (per-channel deliveries with status) |
| GET | /api/app/templates |
List templates |
| POST | /api/app/webhooks |
Register a webhook for event callbacks |
| GET | /api/app/notification-api-logs |
Inspect API call logs by transaction ID |
Get notified the moment a message changes state — delivery, failure or user action.
// Webhook POST payload example
// HTTP POST to your registered URL
// Headers:
// X-OneSend2U-Webhook-Id: <guid>
// X-OneSend2U-Webhook-Timestamp: <unix-seconds>
// X-OneSend2U-Webhook-Signature: v1=<hmac-sha256>
{
"transactionId": "tx-abc-001",
"regionCode": "ES",
"applicationCode": "shop",
"notificationTypeCode": "orders",
"notificationSubtypeCode": "confirmation",
"channelTypeCode": "sms",
"messageProviderStateCode": "delivered",
"MessageProcessState": "Delivered"
}
Integrate with the tools and languages you already use.
OneSend2U.Sdk NuGet package with strongly-typed clients, async/await, DI integration, Polly retry policies, and built-in webhook signature verification.
dotnet add package OneSend2U.Sdk
Browse endpoints and schemas in your browser, with optional try-it-out using your own API key.
Download the full spec to generate client code in any language using tools like NSwag, AutoRest, or openapi-generator.
Browse our SDK repositories, sample apps and reference integrations.
npm package with TypeScript definitions and Promise-based API.
pip package with async support and comprehensive error handling.
Pre-configured collection with environment variables and example requests.
Test your integration risk-free before going to production.
Sandbox mirrors the production API exactly. Your integration code works in both environments without changes.
Sandbox uses its own API credentials, so test traffic never fires from your production keys.
Iterate on templates in sandbox without waiting for provider approval (Meta WhatsApp, etc.). Test your copy and rendering immediately.
Send unlimited test messages at no cost. Sandbox messages are simulated and never reach real recipients.
Trigger specific error scenarios (invalid number, provider timeout, rate limit) to test your error handling.
Receive simulated webhook callbacks for all delivery statuses to validate your event handlers.