1. SMS
  • Jokoor API Documentation
  • Getting started
    • Authentication
    • Pagination
    • Quick Start
    • Error Handling
    • Response Format
  • Payments
    • Payment Links
    • Checkouts
    • Payment Status
  • SMS
    • SMS Templates
    • Resending SMS Messages
    • Message Segments
    • SMS Contact Groups
    • SMS Contacts
    • SMS Campaigns
    • Sending SMS Messages
  • Billing
    • Invoices
    • Invoice Payments (Offline/Manual Recording)
    • Receipts
    • Subscriptions
  • Resources
    • Donations
    • Customers
    • Products
    • Transactions
    • Refunds
  • Payouts
    • Payout Requests
    • Bank Accounts
    • Recipient Payouts
    • Payout Recipients
    • Payout Reversals
    • Payout Balance
  • Webhooks
    • Webhook Events
    • Webhook Endpoints
  • APIs
    • Health
      • Health check
    • SMS
      • Send SMS message
      • List SMS messages
      • Get SMS message details
      • Send a draft SMS message
      • Resend failed SMS
      • Batch resend failed messages
    • SMS Templates
      • Create SMS template
      • List SMS templates
      • Get SMS template
      • Update SMS template
      • Delete SMS template
    • SMS Contacts
      • Create contact
      • List contacts
      • Get contact
      • Update contact
      • Delete contact
    • SMS Contact Groups
      • Create contact group
      • List contact groups
      • Get contact group
      • Update contact group
      • Delete contact group
      • Add contacts to group
      • Remove contacts from group
    • SMS Campaigns
      • Create SMS campaign
      • List SMS campaigns
      • Get SMS campaign
      • Update SMS campaign
      • Delete SMS campaign
      • Send SMS campaign
      • Send draft SMS campaign
      • Send campaign asynchronously
      • Get campaign messages
      • Get campaign statistics
      • Resend failed campaign messages
    • SMS Analytics
      • Get segment analytics
      • Preview message segments
    • Checkouts
      • Create checkout session
      • Get checkout session
      • Cancel checkout
    • Payment Links
      • Create payment link
      • List payment links
      • Get payment link
      • Update payment link
      • Delete payment link
    • Invoices
      • Create invoice
      • List invoices
      • Get invoice
      • Update invoice
      • Cancel invoice
      • Finalize draft invoice
      • Send invoice via email
      • Download invoice PDF
      • Record invoice payment
      • List invoice payments
      • Get invoice receipts
    • Receipts
      • List receipts
      • Get receipt by ID
      • Get receipt by number
      • Download receipt PDF
    • Transactions
      • List transactions
      • Get transaction
    • Refunds
      • Refund transaction
      • List refunds
      • Get refund
    • Customers
      • Create or retrieve customer
      • List customers
      • Get customer
      • Update customer
      • Delete customer
    • Products
      • Create product
      • List products
      • Get product
      • Update product
      • Delete product
    • Donations
      • Create donation campaign
      • List donation campaigns
      • Get donation campaign
      • Update donation campaign
      • Delete donation campaign
    • Subscriptions
      • Create subscription
      • List subscriptions
      • Get subscription
      • Update subscription
      • Cancel subscription
      • List subscription invoices
      • Trigger subscription processing
    • Payouts
      • Get payout balance
      • List bank accounts
      • Create payout request
      • List payout requests
      • Get payout request
      • Cancel payout request
    • Payout Recipients
      • Create payout recipient
      • List payout recipients
      • Get payout recipient
      • Update payout recipient
      • Delete payout recipient
      • Send payout to recipient
      • List recipient payouts
      • Get recipient payout
      • Reverse or cancel recipient payout
    • Webhooks
      • Create webhook endpoint
      • List webhook endpoints
      • Get webhook endpoint
      • Update webhook endpoint
      • Delete webhook endpoint
      • Test webhook endpoint
    • Webhook Events
      • List webhook events
      • Get webhook event
      • Retry webhook event
  • Schemas
    • Schemas
      • ErrorResponse
      • HealthResponse
      • SendSMSRequest
      • SMSMessageResponse
      • SMSMessageListResponse
      • BatchResendResponse
      • SMSDashboardResponse
      • SMSPlansListResponse
      • CreateSMSTemplateRequest
      • UpdateSMSTemplateRequest
      • SMSTemplateResponse
      • SMSTemplateListResponse
      • CreateSMSContactRequest
      • UpdateSMSContactRequest
      • SMSContactResponse
      • SMSContactListResponse
      • CreateSMSContactGroupRequest
      • UpdateSMSContactGroupRequest
      • SMSContactGroupResponse
      • SMSContactGroupListResponse
      • CreateSenderIDRequest
      • UpdateSenderIDRequest
      • SenderIDResponse
      • SenderIDListResponse
      • CreateSMSCampaignRequest
      • UpdateSMSCampaignRequest
      • SMSCampaignResponse
      • SMSCampaignListResponse
      • CreateCheckoutRequest
      • CheckoutResponse
      • InitializePaymentRequest
      • InitializePaymentResponse
      • PaymentStatusResponse
      • PaymentSessionResponse
      • CreatePaymentLinkRequest
      • UpdatePaymentLinkRequest
      • PaymentLinkResponse
      • PaymentLinkListResponse
      • CreateInvoiceRequest
      • UpdateInvoiceRequest
      • RecordInvoicePaymentRequest
      • InvoiceResponse
      • InvoiceListResponse
      • InvoicePaymentListResponse
      • InvoiceReceiptInfo
      • Receipt
      • ListReceiptsResponse
      • CreateSubscriptionRequest
      • SubscriptionResponse
      • SubscriptionListResponse
      • UpdateSubscriptionRequest
      • TransactionResponse
      • TransactionListResponse
      • RefundResponse
      • RefundListResponse
      • CreateCustomerRequest
      • UpdateCustomerRequest
      • CustomerResponse
      • CustomerListResponse
      • CreateProductRequest
      • UpdateProductRequest
      • ProductResponse
      • ProductListResponse
      • CreateDonationCampaignRequest
      • UpdateDonationCampaignRequest
      • DonationCampaignResponse
      • DonationCampaignListResponse
      • PayoutBalanceResponse
      • CreateBankAccountRequest
      • BankAccountResponse
      • CreatePayoutRequest
      • PayoutRequestResponse
      • PayoutRequestListResponse
      • CreatePayoutRecipientRequest
      • UpdatePayoutRecipientRequest
      • PayoutRecipientResponse
      • PayoutRecipientListResponse
      • SendRecipientPayoutRequest
      • RecipientPayoutResponse
      • RecipientPayoutListResponse
      • CreateWebhookEndpointRequest
      • UpdateWebhookEndpointRequest
      • WebhookEndpointResponse
      • WebhookEndpointListResponse
      • WebhookEventResponse
      • WebhookEventListResponse
  1. SMS

Sending SMS Messages

Send SMS messages to recipients with support for scheduling, templates, and drafts.
WARNING
SMS Live Mode Only: All SMS endpoints require a live mode API key (sk_live_*). Test API keys will not work for SMS operations.

Send SMS#

Send an SMS message to a recipient.
Endpoint: POST /v1/sms
Authentication: Required (live API key)
Request Body:
FieldTypeRequiredDescription
recipient_phonestringYes*Recipient phone number in E.164 format (e.g., +2207654321)
contact_idstringYes*Contact ID (alternative to recipient_phone)
message_bodystringYes**SMS message text (required if template_id not provided)
template_idstringYes**Template ID to use (required if message_body not provided)
template_paramsobjectNoTemplate parameters for variable substitution
sender_idstringNoCustom sender ID
scheduled_atstringNoSchedule message for future delivery (ISO 8601 format)
is_draftbooleanNoSave as draft without sending (default: false)
*Either recipient_phone or contact_id must be provided
**Either message_body or template_id must be provided
Example:
HTTP
TypeScript
Python
Success Response (200):
{
  "data": {
    "id": "sms_abc123",
    "organization_id": "org_test123",
    "recipient_phone": "+2207654321",
    "message_body": "Hello! This is a test message from Jokoor.",
    "sender_id_used": "Jokoor",
    "status": "queued",
    "segments": 1,
    "cost": "0.25",
    "scheduled_at": null,
    "contact_id": null,
    "campaign_id": null,
    "template_id": null,
    "provider_message_id": null,
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  }
}
Error Response (402 - Insufficient Credits):
{
  "error": "Insufficient SMS credits. Please top up your account."
}
TIP
Scheduling Messages: Use the scheduled_at field to schedule messages for future delivery. The time must be in ISO 8601 format (e.g., 2024-12-25T10:00:00Z).

Get SMS Message#

Retrieve details of a specific SMS message.
Endpoint: GET /v1/sms/{id}
Authentication: Required
Path Parameters:
ParameterTypeRequiredDescription
idstringYesSMS message ID
Example:
HTTP
TypeScript
Python
Success Response (200):
{
  "data": {
    "id": "sms_abc123",
    "organization_id": "org_test123",
    "recipient_phone": "+2207654321",
    "message_body": "Hello! This is a test message.",
    "sender_id_used": "Jokoor",
    "status": "delivered",
    "segments": 1,
    "cost": "0.25",
    "provider_message_id": "provider_msg_123",
    "sent_at": "2024-01-15T10:30:15Z",
    "delivered_at": "2024-01-15T10:31:00Z",
    "scheduled_at": null,
    "contact_id": null,
    "campaign_id": null,
    "template_id": null,
    "error_message": null,
    "metadata": {},
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:31:00Z"
  }
}
Message Statuses:
draft - Saved as draft, not sent
pending - Pending submission
queued - Queued for sending
sending - Currently being sent
sent - Successfully sent to provider
delivered - Confirmed delivered to recipient
failed - Failed to send
undelivered - Sent but not delivered
cancelled - Cancelled before sending

List SMS Messages#

Get a paginated list of SMS messages.
Endpoint: GET /v1/sms
Authentication: Required
Query Parameters:
ParameterTypeRequiredDescription
offsetintegerNoNumber of items to skip (default: 0)
limitintegerNoMaximum number of items to return (default: 20, max: 100)
statusstringNoFilter by status (draft, pending, queued, sending, sent, delivered, failed, undelivered, cancelled)
contact_idstringNoFilter by contact ID
start_datestringNoFilter messages created after this date (ISO 8601)
end_datestringNoFilter messages created before this date (ISO 8601)
Example:
HTTP
TypeScript
Python
Success Response (200):
{
  "data": {
    "items": [
      {
        "id": "sms_abc123",
        "organization_id": "org_test123",
        "recipient_phone": "+2207654321",
        "message_body": "Hello!",
        "sender_id_used": "Jokoor",
        "status": "delivered",
        "segments": 1,
        "cost": "0.25",
        "delivered_at": "2024-01-15T10:31:00Z",
        "created_at": "2024-01-15T10:30:00Z"
      }
    ],
    "count": 1,
    "offset": 0,
    "limit": 10
  }
}
Modified at 2025-11-15 15:43:35
Previous
SMS Campaigns
Next
Invoices
Built with