1. Getting Started
VeloConnect API
  • Getting Started
    • Introduction
    • Quick start: send your first SMS
    • Authentication
    • Errors
    • Limits
    • Delivery reports
    • Addresses and formats
    • Code samples
    • Viber and WhatsApp push reports
    • Refusal reasons
    • Changelog
    • Recipes
      • One-time code by SMS
      • One-time code by Viber, with SMS as a fallback
      • A campaign, from contacts to result
      • Connect a CRM
  • Messaging API (API Key)
    • Send SMS
      • Send SMS
      • Send SMS (GET form)
      • Send SMS to many numbers
      • Send SMS to many numbers (GET form)
    • SMS Delivery Status
      • List SMS records
      • Get an SMS record
    • SMS Verification Codes
      • Send a verification code (GET form)
      • Send a verification code
      • Check a verification code (GET form)
      • Check a verification code
    • Sender Names
      • List sender names (GET form)
      • List sender names
      • Get sender name status (GET form)
      • Get sender name status
    • Balance & Prices
      • Check balance (GET form)
      • Check balance
      • List rate plans
    • Viber
      • Campaigns
        • Send a Viber campaign
        • List Viber campaigns
      • Contact Lists
        • Create a Viber contact list
        • List Viber contact lists
        • Delete a Viber contact list
        • Add contacts to a list
        • Update contacts in a list
        • Delete a contact from a list
        • List contacts in a list
      • Conversations
        • List Viber conversations
        • List messages of a conversation
      • Message Records
        • List Viber message records
        • Get a Viber message record
      • Totals
        • Get Viber message totals
      • One-Time Codes
        • Send a Viber one-time code
        • List Viber code templates
      • Senders
        • Get a Viber sender
        • List Viber senders
      • Templates
        • Create a Viber template
        • List Viber templates
        • Delete a Viber template
        • Get a Viber template
    • WhatsApp
      • Senders
        • List WhatsApp senders
      • Campaigns
        • Send a WhatsApp campaign
        • List WhatsApp campaigns
      • Contact Lists
        • Add WhatsApp contacts
        • List WhatsApp contacts
        • Delete a WhatsApp contact list
        • Create a WhatsApp contact list
        • List WhatsApp contact lists
      • Contacts
        • Update WhatsApp contacts
        • Delete a WhatsApp contact
      • Conversations
        • List conversation messages
        • List WhatsApp conversations
      • Messages
      • Templates
        • Delete a WhatsApp template
        • Create a WhatsApp template
        • List WhatsApp templates
  • Sign-In & Account
    • Team Members
    • Registration
    • Reference Data
    • Verification & Password
    • Two-Factor
    • Authentication
      • Sign in (for programs)
      • Refresh the login token
      • Sign out
    • Profile
      • Get your account profile
  • API Key & Allowed IPs
    • Get the API key
    • Replace the API key
    • Get the allowed IP addresses
    • Set the allowed IP addresses
  • Campaigns (v2)
    • Campaigns
      • Create a campaign
      • Export campaigns to CSV
      • List campaigns
      • Get a campaign
      • Update a campaign
    • Tools & Pricing
      • Count SMS parts
      • Calculate campaign price
      • Preview campaign recipients
    • Messages
    • Telegram
  • Contacts (v2)
    • Contacts
      • Create a contact
      • Export contacts
      • Import contacts from CSV
      • List contacts
      • Get a contact
      • Update a contact
      • Delete a contact
    • Details
      • Add a contact detail
      • Export contact details
      • List contact details
      • Update a contact detail
    • Messages
      • Export a contact's messages
      • List a contact's messages
  • Segments (v2)
    • Create a segment
    • Export segments to CSV
    • List segments
    • Get a segment
    • Update a segment
    • Delete a segment
    • Add contacts to a segment
    • Remove contacts from a segment
  • Dashboard (v2)
    • Get channel breakdown
    • Get headline statistics
    • Get OTP statistics
    • Get message trends
  • Templates & Content
    • Canned Responses
    • Templates
      • Create a message template
      • List message templates
      • Update a message template
      • Delete a message template
      • Get a message template
    • Uploads
  • Sender Names & Rates
    • Rates
      • List message rates
    • Sender Names
      • Request a sender name
      • List sender names
      • Delete a sender name
      • Get a sender name
    • Reference Data
      • List trunks
      • List mobile operators
  • SMS Messaging
    • Conversations
      • List SMS conversations
      • List conversation messages
    • Delivery Records
      • Export SMS records
  • Email Messaging
    • Delivery Records
      • Export e-mail records
      • List e-mail records
      • Get an e-mail record
    • Pricing
      • List e-mail prices
  • Notifications & Statistics
    • Notifications
    • Statistics
      • List balance history
      • Get sender name expenses
  • Payments
    • Payments
      • List payments
      • Get a payment
    • Provider Callbacks
  • Link Shortener
    • Links
      • Create a short link
      • Get a link by code
      • Get a link
      • Update a link
      • Delete a link
    • Webhooks
    • Redirect
      • Open a short link
    • Analytics
      • Get statistics for several campaigns
      • Get campaign statistics
      • Get contact statistics
      • Get link statistics
  • Social Platform
    • Connections
      • List social connections
      • Get a channel
      • Disconnect a channel
      • Check channel subscription status
      • Get a connection
      • Disconnect a connection
      • Check a connection token
      • Resync channels of a connection
      • List supported providers
    • Inbox
      • List conversations of an account
      • List conversations of a channel
      • Sync conversations of a channel
      • Get a conversation
      • Get conversation status history
      • Mark a conversation as read
      • List messages of a conversation
      • Reply to a conversation
      • Sync messages of a conversation
    • Facebook
    • Instagram
    • Telegram
  • Telephony
    • DID Numbers
      • Purchase & Provisioning
      • Assignments
      • Catalog
      • Compliance
      • Orders
      • Reservations
    • PBX Tenants
    • SIP Voice
      • Monitoring
      • Calls
      • Session
  • Schemas
    • TemplateFilteringSortingModel
    • SocialChannelType
    • V2ContactDetailType
    • CommunicationType
    • RateFilteringSortingModel
    • PagedListGetModelOfV2ContactGetModel
    • SuccessResponseModelOfPagedListGetModelOfRateGetModel
    • SenderIdFilteringSortingModel
    • V2CampaignChannelGetModel
    • V2CampaignExportRequestModel
    • WebhookSubscriptionStatusDto
    • SocialProvider
    • V2CampaignChannelUpdateModel
    • SuccessResponseModelOfSenderIdGetModel
    • V2SegmentUpdateModel
    • V2ContactCsvDuplicateModel
    • PagedListGetModelOfRateGetModel
    • V2ContactMessageExportRequestModel
    • V2DashboardTrendsChannelModel
    • DataRecordFilterModel
    • SyncConversationsResponseDto
    • ClickEventDto
    • PagedListGetModelOfV2CampaignListItemModel
    • SocialConnectionDto
    • ErrorResponseModel
    • V2ContactCreateModel
    • V2SegmentContactsUpdateModel
    • TokenStatus
    • SuccessResponseModelOfV2ContactCsvImportResultModel
    • SuccessResponseModelOfEmailPriceGetModel
    • CustomerUserGetModel
    • V2ContactCsvImportResultModel
    • V2ContactDetailCreateModel
    • V2CampaignUpdateModel
    • SocialConversationDto
    • UnifiedInboxDto
    • ProviderType
    • CustomerUserLoginModel
    • SuccessResponseModelOfCustomerUserLoginResultModel
    • SuccessResponseModelOfV2CampaignGetModel
    • SuccessResponseModelOfPagedListGetModelOfSmsConversationGetModel
    • V2ContactDetailUpdateModel
    • V2ContactUpdateModel
    • WhatsAppStatus
    • PagedListGetModelOfPaymentGetModel
    • V2ContactDetailExportRequestModel
    • EmailDataRecordGetModel
    • SmsConversationGetModel
    • SenderIdType
    • LinkAnalyticsResponse
    • CustomerUserLoginResultModel
    • V2ContactMessageListFilterModel
    • FilterComparer
    • SuccessResponseModelOfV2SegmentGetModel
    • PagedListGetModelOfV2ContactDetailGetModel
    • SenderIdGetModel
    • PaymentDirection
    • TrafficType
    • UpdateLinkRequest
    • SuccessResponseModelOfPagedListGetModelOfV2CampaignListItemModel
    • WhatsAppTemplateCategory
    • PagedListGetModelOfSmsConversationGetModel
    • V2SegmentListFilterModel
    • ConversationStatus
    • V2ExportMode
    • V2SegmentGetModel
    • V2ContactDetailListFilterModel
    • SuccessResponseModelOfStatisticSenderIdExpensesGetModel
    • SenderIdStatus
    • PagedListGetModelOfV2ContactMessageListItemModel
    • V2DashboardOtpStatsModel
    • SuccessResponseModelOfPagedListGetModelOfSenderIdGetModel
    • SuccessResponseModelOfStatisticBalanceGetModel
    • StatisticSenderIdExpensesGetModel
    • SocialMessageDto
    • AdminUserGetModel
    • PagedListGetModelOfTemplateGetModel
    • SuccessResponseModelOfPagedListGetModelOfTemplateGetModel
    • CreateLinkRequest
    • ProblemDetails_link
    • SenderIdTrafficTypeGetModel
    • V2CampaignListItemModel
    • SuccessResponseModelOfV2CampaignPricePreviewModel
    • MessageStatus
    • SenderIdTypeGetModel
    • SocialChannelDto
    • SuccessResponseModelOfPagedListGetModelOfAreaMccMncGetModel
    • SuccessResponseModelOfV2CampaignMessageInfoModel
    • TokenGetModel
    • V2CampaignChannelCreateModel
    • StatisticBalanceGetModel
    • V2CampaignPricePreviewModel
    • RateGetModel
    • SocialConversationStatusHistoryDto
    • SuccessResponseModelOfPaymentListGetModelOfPaymentGetModel
    • V2SegmentCreateModel
    • AreaMccMncFilterModel
    • SuccessResponseModelOfString
    • MessageDirection
    • TokenRefreshModel
    • PagedListGetModelOfEmailDataRecordGetModel
    • SocialProviderDto
    • EmailPriceGetModel
    • ResyncChannelsResponseDto
    • SenderIdMediaAttachmentGetModel
    • TemplateUpdateModel
    • SuccessResponseModelOfPagedListGetModelOfV2SegmentGetModel
    • IFormFile
    • V2CampaignGetModel
    • PagedListGetModelOfSenderIdPriceGetModel
    • SuccessResponseModelOfEmailDataRecordGetModel
    • PagedListGetModelOfV2SegmentGetModel
    • PartnerCustomerUserLoginModel
    • V2ContactExportRequestModel
    • SuccessResponseModelOfTokenGetModel
    • PaginationModel
    • SyncMessagesResponseDto
    • SuccessResponseModelOfIEnumerableOfLong
    • SuccessResponseModelOfPaymentGetModel
    • SortingModel
    • V2CampaignChannelSummaryModel
    • SenderIdPriceGetModel
    • V2SegmentExportRequestModel
    • V2DashboardKpisModel
    • SuccessResponseModelOfTemplateGetModel
    • V2CampaignMessageInfoModel
    • AreaMccMncGetModel
    • V2DashboardOtpChannelModel
    • CampaignAnalyticsListRequest
    • PaymentListGetModelOfPaymentGetModel
    • ReplyMessageResponseDto
    • V2ContactDetailGetModel
    • V2DashboardChannelBreakdownModel
    • ContactAnalyticsResponse
    • SuccessResponseModelOfLong
    • LinkResponse
    • SuccessResponseModelOfCustomerUserGetModel
    • V2ContactGetModel
    • SuccessResponseModelOfBoolean
    • V2ContactDetailStatus
    • SuccessResponseModelOfPagedListGetModelOfSenderIdPriceGetModel
    • V2CampaignChannelPricePreviewModel
    • PagedListGetModelOfSenderIdGetModel
    • V2DashboardTrendsDataPointModel
    • TemplateGetBaseModel
    • SenderIdViberLogoGetModel
    • V2DashboardChannelFunnelModel
    • TemplateGetModel
    • ConversationStatusHistoryActionType
    • PaymentGetModel
    • V2CampaignListFilterModel
    • CustomerTrunkBaseGetModel
    • CampaignAnalyticsResponse
    • V2CampaignCreateModel
    • BusinessType
    • PaymentFilterModel
    • V2CampaignMessageInfoRequest
    • TemplateMediaAttachmentGetModel
    • SuccessResponseModelOfV2CampaignRecipientPreviewModel
    • FilteringModel
    • MessageType
    • SuccessResponseModelOfPagedListGetModelOfV2ContactMessageListItemModel
    • TemplateStatus
    • SuccessResponseModelOfCustomerTrunkBaseGetModel
    • FilteringSortingModel
    • V2ContactListFilterModel
    • V2DashboardTrendsModel
    • V2ContactMessageListItemModel
    • ConversationFilteringSortingModel
    • SuccessResponseModelOfPagedListGetModelOfEmailDataRecordGetModel
    • V2CampaignRecipientPreviewModel
    • SuccessResponseModelOfV2ContactGetModel
    • SuccessResponseModelOfPagedListGetModelOfV2ContactDetailGetModel
    • SortDirection
    • PagedListGetModelOfAreaMccMncGetModel
    • V2CampaignUnresolvableRecipientModel
    • RateDetailGetModel
    • RefreshTokenResponseDto
    • SuccessResponseModelOfPagedListGetModelOfV2ContactGetModel
  1. Getting Started

Authentication

There are two credentials. Each reference page says which one it takes on its Authentication line.

API key#

One key per company. It signs the messaging calls. Where the key goes depends on the call:
CallsWhere the key goesName
SMS, one-time codes, balance, sender names (/api/SendSMS, /api/Verify, /api/CheckBalance and the others without /partners/ in the address), POST formJSON bodyapi_id
The same calls, GET formQuery stringapi_id
Viber and WhatsApp (/api/partners/viber-…, /api/partners/whatsapp-…, /api/partners/senders)Request headerapiId
SMS records (/api/partners/SmsDataRecords)JSON body for the list call, query string for the single recordapiId
Good practice:
Prefer the POST form of a call. With the GET form the key travels in the address, where proxies and logs can
keep it.
Call from your server only. Never put the key in a web page or a mobile app.
If a key may have leaked, replace it with Replace the API key. The old key stops working at
once.

Allowed IP addresses#

You can limit the key to a list of IP addresses with Set the allowed IP addresses. When the
list is empty, the key works from any address. When it is set, a call from any other address is refused:
HTTP/1.1 401 Unauthorized

{"message": "Access denied: your IP is not in the allowed list. Configure your allowed IPs in the partner portal."}
A wrong key, and a key of an account that is not active, get this same answer. When you see it, check the key first.
We recommend setting the list for every production key.

Login token#

Every call that is not a messaging call takes a login token in the header Authorization: Bearer <token>.
1. Sign in with Sign in (for programs):
{
  "data": [
    {
      "requiresTwoFactor": false,
      "token": {
        "token": "<login token>",
        "refreshToken": "<refresh token>",
        "tokenLifeTime": "00:15:00"
      }
    }
  ]
}
2. Call with the token:
3. Renew before tokenLifeTime ends, with Refresh the login token. Send the token you
hold and the refresh token; you get a new pair. A refresh token works once. If the refresh answers 401, sign in
again.
4. Sign out with Sign out when the program stops for good.
Things to know:
Use a dedicated account for an integration, without two-step sign-in. An account with two-step sign-in gets
requiresTwoFactor: true and no token from this call.
Sign-in is limited to 20 calls per 5 minutes per IP address. Sign in once and renew; do not sign in before
every call.
A call with a missing, wrong or expired token answers 401. See Errors for the body.
The same token works on every server address (see Addresses and formats).
Modified at 2026-10-08 11:11:14
Previous
Quick start: send your first SMS
Next
Errors
Built with