Support · Legal
Verified RCS · SMS · MMS
DEVELOPERS

SimplyRCS API reference

The SimplyRCS REST API has 195 public endpoints across 16 sections. These docs are public so integration teams can evaluate and build before production launch. A scoped API key is required only to make live calls, not to read the reference.

Base URL https://api.simplyrcs.com · OpenAPI 1.0.0 · authentication by bearer API key

What the API covers

SectionEndpointsWhat it does
Common23Health, authentication, onboarding, assets, team, and shared resources.
Sender IDs32Sender IDs, channels, protocols, and RCS sender resources.
Programs5Customer-safe brand/campaign messaging programs, sender attachments, and readiness status.
Blasts15Campaign creation, audience selection, launch, and progress tracking.
Bots10Bot flow management, publishing, templates, and emulator APIs.
Dictionaries17Reusable intents, variable definitions, and dictionary categories shared across bots and templates.
Contacts18Contacts, tags, segments, imports, and subscription workflows.
Compliance15DNC, consent, TCPA, and compliance reporting.
Templates1Reusable message templates and landing pages.
Conversations10Conversation, messaging, inbox, and session APIs.
Analytics19Operational analytics, reports, exports, and dashboards.
Webhooks6Webhook endpoint management and provider callbacks.
API Keys4API key lifecycle management.
Events10Event-triggered and acquisition messaging workflows.
Submissions7Brand, campaign, sender-ID, and RCS-agent regulatory submissions.
MCP3Model Context Protocol server configuration for AI-agent integrations.

Every endpoint

All 195 operations, grouped by section.

Common (23)

  • GET /healthHealth check
  • GET /v1/landing-page-templatesList landing page templates
  • GET /v1/landing-pagesList landing pages
  • POST /v1/landing-pagesCreate a landing page
  • GET /v1/landing-pages/{id}Get a landing page
  • PATCH /v1/landing-pages/{id}Update a landing page
  • DELETE /v1/landing-pages/{id}Delete a landing page
  • POST /v1/landing-pages/{id}/publishPublish a landing page
  • POST /v1/landing-pages/{id}/unpublishUnpublish a landing page
  • GET /v1/landing-pages/{id}/submissionsList landing page submissions
  • GET /v1/assetsList assets
  • POST /v1/assets/uploadUpload an asset
  • POST /v1/assets/upload/batchUpload assets in batch
  • GET /v1/assets/{id}Get an asset
  • PATCH /v1/assets/{id}Update asset metadata
  • DELETE /v1/assets/{id}Delete an asset
  • POST /v1/assets/{id}/cropCrop an asset
  • POST /v1/assets/{id}/resizeResize an asset
  • GET /v1/assets/{id}/variant/{variant}Fetch an asset variant
  • GET /v1/asset-foldersList asset folders
  • POST /v1/asset-foldersCreate an asset folder
  • PATCH /v1/asset-folders/{id}Update an asset folder
  • DELETE /v1/asset-folders/{id}Delete an asset folder

Sender IDs (32)

  • GET /v1/sender-idsList sender IDs
  • POST /v1/sender-idsCreate a sender ID
  • GET /v1/sender-ids/{id}Get a sender ID
  • PATCH /v1/sender-ids/{id}Update a sender ID
  • DELETE /v1/sender-ids/{id}Delete a sender ID
  • POST /v1/sender-ids/{id}/activateActivate a sender ID
  • POST /v1/sender-ids/{id}/suspendSuspend a sender ID
  • POST /v1/sender-ids/{id}/reactivateReactivate a sender ID
  • POST /v1/sender-ids/numbers/searchSearch sender ID numbers
  • POST /v1/sender-ids/numbers/purchasePurchase a sender ID number
  • POST /v1/sender-ids/numbers/importImport an owned sender ID number
  • DELETE /v1/sender-ids/numbers/{id}/releaseRelease a sender ID number
  • GET /v1/sender-ids/numbersList purchased sender ID numbers
  • GET /v1/sender-ids/{id}/protocolsList sender protocols
  • POST /v1/sender-ids/{id}/protocolsEnable a sender protocol
  • PATCH /v1/sender-ids/{id}/protocols/{type}Update sender protocol config
  • DELETE /v1/sender-ids/{id}/protocols/{type}Disable a sender protocol
  • GET /v1/channelsList channels
  • POST /v1/channelsCreate a channel
  • GET /v1/channels/{id}Get a channel
  • PUT /v1/channels/{id}Update a channel
  • DELETE /v1/channels/{id}Delete a channel
  • POST /v1/channels/{id}/testTest a channel
  • GET /v1/channels/{channelId}/rcs/sendersList RCS senders
  • POST /v1/channels/{channelId}/rcs/sendersCreate an RCS sender
  • GET /v1/channels/{channelId}/rcs/senders/{senderName}Get an RCS sender
  • POST /v1/channels/{channelId}/rcs/senders/{senderName}/test-devicesAdd an RCS sender test device
  • GET /v1/channels/{channelId}/rcs/senders/{senderName}/test-devicesList RCS sender test devices
  • DELETE /v1/channels/{channelId}/rcs/senders/{senderName}/test-devices/{phone}Delete an RCS sender test device
  • GET /v1/sender-ids/{id}/voice-forwardingGet voice forwarding configuration
  • PUT /v1/sender-ids/{id}/voice-forwardingSet voice forwarding destination
  • DELETE /v1/sender-ids/{id}/voice-forwardingDisable voice forwarding

Programs (5)

  • GET /v1/programsList messaging programs
  • GET /v1/programs/{id}Get a messaging program
  • GET /v1/programs/{id}/statusGet messaging program status
  • POST /v1/programs/{id}/sendersAttach a sender to a messaging program
  • DELETE /v1/programs/{id}/senders/{senderId}Detach a sender from a messaging program

Blasts (15)

  • GET /v1/blastsList blasts
  • POST /v1/blastsCreate a blast
  • GET /v1/blasts/{id}Get a blast
  • PUT /v1/blasts/{id}Update a blast
  • DELETE /v1/blasts/{id}Delete a blast
  • PUT /v1/blasts/{id}/contentUpdate blast content
  • PUT /v1/blasts/{id}/audienceUpdate blast audience
  • GET /v1/blasts/{id}/estimateEstimate blast delivery cost
  • POST /v1/blasts/{id}/testSend a blast test message
  • POST /v1/blasts/{id}/launchLaunch a blast
  • GET /v1/blasts/{id}/progressGet blast progress
  • POST /v1/blasts/{id}/sendSend a blast immediately
  • POST /v1/blasts/{id}/scheduleSchedule a blast
  • POST /v1/blasts/{id}/cancelCancel a blast
  • GET /v1/blasts/{id}/statsGet blast statistics

Bots (10)

  • GET /v1/botsList bots
  • POST /v1/botsCreate a bot
  • GET /v1/bots/{id}Get a bot
  • PUT /v1/bots/{id}Update a bot
  • DELETE /v1/bots/{id}Delete a bot
  • POST /v1/bots/{id}/publishPublish a bot
  • POST /v1/bots/{id}/validateValidate a bot flow
  • GET /v1/bots/{id}/revisionsList bot revisions
  • GET /v1/bots/{id}/testersList bot testers and RCS invite status
  • POST /v1/bots/{id}/testersAdd a bot tester and optionally send RCS opt-in invite

Dictionaries (17)

  • GET /v1/intentsList intents
  • POST /v1/intentsCreate an intent
  • PATCH /v1/intents/{id}Update an intent
  • DELETE /v1/intents/{id}Delete an intent
  • GET /v1/intents/{id}/usageGet intent usage
  • POST /v1/intents/{id}/rewriteRename an intent and rewrite flows
  • GET /v1/variable-definitionsList variable definitions
  • POST /v1/variable-definitionsCreate a variable definition
  • PATCH /v1/variable-definitions/{id}Update a variable definition
  • DELETE /v1/variable-definitions/{id}Delete a variable definition
  • GET /v1/variable-definitions/{id}/usageGet variable usage
  • POST /v1/variable-definitions/{id}/rewriteRename a variable and rewrite flows
  • GET /v1/dictionary-categoriesList dictionary folders
  • POST /v1/dictionary-categoriesCreate a dictionary folder
  • PATCH /v1/dictionary-categories/{id}Update a dictionary folder
  • DELETE /v1/dictionary-categories/{id}Delete a dictionary folder
  • POST /v1/dictionary-categories/reorderReorder dictionary folders

Contacts (18)

  • GET /v1/contactsList contacts
  • POST /v1/contactsCreate a contact
  • GET /v1/contacts/attribute-keysList distinct contact attribute keys
  • GET /v1/contacts/{id}Get a contact
  • PUT /v1/contacts/{id}Update a contact
  • DELETE /v1/contacts/{id}Delete a contact
  • GET /v1/contacts/{id}/consentGet contact consent history
  • GET /v1/contacts/{id}/rcs-checkCheck contact RCS capability
  • POST /v1/contacts/bulk/tagBulk-assign a tag to contacts
  • DELETE /v1/contacts/bulk/tagBulk-remove a tag from contacts
  • GET /v1/contacts/bulk/tag/{jobId}Get bulk tag job status
  • POST /v1/contacts/importCreate a contact import job
  • GET /v1/contacts/import/{jobId}Get a contact import job
  • GET /v1/tagsList contact tags
  • POST /v1/tagsCreate a contact tag
  • DELETE /v1/tags/{id}Delete a contact tag
  • POST /v1/segments/previewPreview a segment audience
  • POST /v1/segments/resolveResolve a segment audience

Compliance (15)

  • GET /v1/compliance/dncList DNC entries
  • POST /v1/compliance/dncCreate a DNC entry
  • POST /v1/compliance/dnc/batchCreate DNC entries in batch
  • DELETE /v1/compliance/dnc/{id}Delete a DNC entry
  • GET /v1/compliance/reports/{type}Generate a compliance report
  • POST /v1/compliance/overrideCreate a compliance override
  • PATCH /v1/contacts/{id}/tcpaUpdate TCPA settings for a contact
  • GET /v1/content-rulesList content rules
  • POST /v1/content-rulesCreate a content rule
  • PATCH /v1/content-rules/{id}Update a content rule
  • DELETE /v1/content-rules/{id}Delete a content rule
  • GET /v1/keyword-rulesList keyword rules
  • POST /v1/keyword-rulesCreate a keyword rule
  • PATCH /v1/keyword-rules/{id}Update a keyword rule
  • DELETE /v1/keyword-rules/{id}Delete a keyword rule

Templates (1)

  • GET /v1/whatsapp-templatesList approved WhatsApp message templates

Conversations (10)

  • GET /v1/conversationsList conversations
  • GET /v1/conversations/{id}Get a conversation
  • GET /v1/conversations/{id}/messagesList conversation messages
  • POST /v1/conversations/{id}/messagesSend a conversation message
  • GET /v1/conversations/{id}/sessionGet conversation session details
  • GET /v1/conversations/{id}/sourceGet conversation source
  • POST /v1/conversations/{id}/handoffHandoff a conversation
  • POST /v1/messages/sendSend a direct message
  • POST /v1/messages/previewPreview a rendered message
  • POST /v1/messages/{id}/revokeRevoke a sent message

Analytics (19)

  • GET /v1/analytics/intentsGet intent tap analytics
  • GET /v1/analytics/sessionsGet session analytics
  • GET /v1/analytics/overviewGet analytics overview
  • GET /v1/analytics/sender-idsList sender ID analytics
  • GET /v1/analytics/sender-ids/{id}Get sender ID analytics
  • GET /v1/analytics/protocolsGet protocol analytics
  • GET /v1/analytics/bots/{id}/funnelGet bot funnel analytics
  • GET /v1/analytics/bots/{id}Get bot analytics
  • GET /v1/analytics/blasts/{id}Get blast analytics
  • GET /v1/analytics/usageGet usage analytics
  • POST /v1/analytics/exportCreate analytics export
  • GET /v1/analytics/export/{id}/downloadDownload analytics export
  • GET /v1/analytics/reportsList analytics reports
  • POST /v1/analytics/reportsCreate analytics report
  • PATCH /v1/analytics/reports/{id}Update analytics report
  • DELETE /v1/analytics/reports/{id}Delete analytics report
  • GET /v1/analytics/trendsGet dashboard trend analytics
  • GET /v1/analytics/topGet dashboard top performers
  • GET /v1/reports/messagesExport customer-scoped MO messages and MDR delivery receipts

Webhooks (6)

  • GET /v1/webhook-endpointsList webhook endpoints
  • POST /v1/webhook-endpointsCreate a webhook endpoint
  • PATCH /v1/webhook-endpoints/{id}Update a webhook endpoint
  • DELETE /v1/webhook-endpoints/{id}Delete a webhook endpoint
  • POST /v1/webhook-endpoints/{id}/testSend a test webhook delivery
  • GET /v1/webhook-endpoints/{id}/deliveriesList webhook delivery attempts

API Keys (4)

  • GET /v1/api-keysList API keys
  • POST /v1/api-keysCreate an API key
  • DELETE /v1/api-keys/{id}Revoke an API key
  • POST /v1/api-keys/{id}/rotateRotate an API key secret

Events (10)

  • POST /v1/eventsCreate an event-triggered message
  • POST /v1/events/batchCreate event-triggered messages in batch
  • POST /v1/acquisition/{campaignId}/enrollEnroll a contact via acquisition campaign
  • GET /acquisition-campaignsList acquisition campaigns
  • POST /acquisition-campaignsCreate acquisition campaign
  • GET /acquisition-campaigns/{campaignId}Get acquisition campaign
  • PUT /acquisition-campaigns/{campaignId}Update acquisition campaign
  • DELETE /acquisition-campaigns/{campaignId}Delete acquisition campaign
  • POST /acquisition-campaigns/{campaignId}/generate-qrGenerate acquisition campaign QR code
  • POST /public/acquisition/{campaignId}/enrollPublic acquisition enrollment

Submissions (7)

  • POST /v1/sender-ids/{id}/launchPromote a tested RCS agent to go-live (LAUNCH_PENDING)
  • POST /v1/sender-ids/{id}/submitSubmit a sender ID for regulatory vetting
  • POST /v1/sender-ids/{id}/refresh-statusRefresh submission status from the upstream registry
  • POST /v1/sender-ids/{id}/brand/registerRegister a sender brand
  • GET /v1/sender-ids/{id}/brand/statusGet sender brand registration status
  • POST /v1/sender-ids/{id}/campaign/registerRegister a sender campaign
  • GET /v1/sender-ids/{id}/campaign/statusGet sender campaign registration status

MCP (3)

  • GET /v1/mcp/configGet MCP server configuration
  • PUT /v1/mcp/configSave MCP server configuration
  • POST /v1/mcp/testTest MCP server connectivity

API questions

Does SimplyRCS have a public API?

Yes. The SimplyRCS REST API has 195 documented endpoints across 16 sections. The reference is public and needs no account or sales call to read. A scoped API key is required only to make live calls.

What can the SimplyRCS API do?

It covers the full messaging lifecycle: registering and managing verified RCS sender IDs, running blasts, building and operating bots, managing contacts and conversations, submitting compliance and vetting records, pulling analytics, and receiving delivery and engagement events over webhooks.

How do I authenticate to the SimplyRCS API?

With a scoped API key sent as a bearer token in the Authorization header. Keys are scoped so an integration only gets the permissions it needs, and they can be rotated without downtime.

Is there an OpenAPI spec for SimplyRCS?

Yes. The API is described by a machine-readable OpenAPI 3.1 document, which is what this reference is generated from, so the documentation cannot drift from the implementation.

Do I need to talk to sales before I can read the API docs?

No. The reference is public precisely so integration teams can evaluate and build against it before committing. Pricing is published too, so you can size a project without a call.

Does the API handle SMS fallback automatically?

Yes. A message sent to a recipient whose handset does not support RCS is delivered as SMS or MMS instead, so you author one message and each recipient receives the richest format their phone supports.