{
"title": "Forbidden",
"status": 403,
"detail": "Authenticated user is not a recognized client administrator"
}
This operation uses the live messaging service and can consume message credits. Use an approved Sender ID and message only recipients you are permitted to contact.
sendAt is always interpreted as Irish local time (Europe/Dublin). Do not include Z or a numeric UTC offset. For example, 2030-07-08T15:00 schedules delivery for 15:00 in Ireland, regardless of where the request originates. Convert the intended time to Irish local time before sending the request.
Phonovation does not use your device, server, account, or recipient timezone. It reads the date and clock time in sendAt as the time in Ireland.Prefer yyyy-MM-ddTHH:mm. A space instead of T and optional seconds are also accepted. Supplied seconds are ignored, and the campaign is scheduled at the start of the minute.
Desired local delivery time
Irish time to submit
sendAt
UK: 8 July 2030 at 15:00 (Europe/London)
8 July at 15:00
2030-07-08T15:00
China: 8 July 2030 at 15:00 (Asia/Shanghai)
8 July at 08:00
2030-07-08T08:00
China: 15 January 2030 at 15:00 (Asia/Shanghai)
15 January at 07:00
2030-01-15T07:00
New York: 8 July 2030 at 15:00 (America/New_York)
8 July at 20:00
2030-07-08T20:00
Use the IANA timezone Europe/Dublin in your date-time library. Do not hard-code an offset: Ireland changes offset during the year, and other countries may change clocks on different dates.
Omit sendAt or send null to send immediately. Empty and whitespace-only strings are invalid.
A UI-generated Phonovation Personal Access Token (PAT) is the recommended
option for most integrations. OAuth/OIDC JWT access tokens are also accepted
when an OAuth lifecycle is required.
Send either token as:
Authorization: Bearer <token>
PAT values begin with phv_pat_. Generate a PAT once in the Phonovation UI,
store it securely, and reuse it across requests. You do not need to generate
or refresh a token for every SMS. Preserve the exact casing in
Bearer phv_pat_....
Body
application/json
The message, sender, recipients, and optional campaign settings. Any
sendAt value must contain the intended Irish local date and time.
Everything Phonovation needs to create, schedule, or save an SMS campaign.
One or more people who should receive the campaign. The API does not set a
maximum recipient count.
Invalid or duplicate numbers may be skipped while valid recipients continue.
Duplicate detection happens after phone-number normalization, and the first
occurrence is kept.
When the campaign should be sent, interpreted exclusively as Irish local
time in the Europe/Dublin timezone.
Phonovation reads the date and clock portion exactly as Irish time. It
does not use the timezone of the caller, server, account, or recipient,
and it does not convert the value from UTC. A request sent from China
with 2030-07-08T15:00 schedules the campaign for 15:00 in Ireland,
not 15:00 in China.
Prefer yyyy-MM-ddTHH:mm, for example 2030-07-08T14:30.
These forms are accepted:
yyyy-MM-ddTHH:mm
yyyy-MM-ddTHH:mm:ss
yyyy-MM-dd HH:mm
yyyy-MM-dd HH:mm:ss
If seconds are supplied, they are ignored and the scheduled time is
normalized to the start of the minute.
Example conversions for 8 July 2030 at 15:00 in the source country:
United Kingdom (Europe/London) becomes
2030-07-08T15:00 in Ireland.
China (Asia/Shanghai) becomes 2030-07-08T08:00 in Ireland.
New York, United States (America/New_York) becomes
2030-07-08T20:00 in Ireland.
Do not include Z, another timezone designator, or a numeric UTC offset.
If the intended send time is outside Ireland, convert it to
Europe/Dublin before constructing this value.
Ireland uses GMT (UTC+0) during part of the year and Irish Standard
Time (UTC+1) during part of the year. Use a timezone-aware library;
do not hard-code a single UTC offset.
Omit the field or send null to send immediately. Empty and
whitespace-only strings are invalid.
Past dates are accepted.
The API does not set a maximum scheduling horizon.
Optional saved-list flag. It is passed through as shouldSaveList and
defaults to false. Saved-list behaviour is not part of the current
public API contract, so leave this as false unless Phonovation has
enabled the feature for your integration.
Response
The campaign is accepted for background processing.
Confirms that the campaign request was accepted and queued.
Human-readable confirmation for logs or troubleshooting. A successful
202 response returns Campaign received to be processed.
Allowed value: "Campaign received to be processed"
Example:
"Campaign received to be processed"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Phonovation Developer Portal","colors":{"primary":"#D23A25","light":"#E8654F","dark":"#4B69A0"},"logo":{"light":"https://mintcdn.com/phonovation/6oxiVkd8RMPgmxm-/logo/light.svg?fit=max\u0026auto=format\u0026n=6oxiVkd8RMPgmxm-\u0026q=85\u0026s=4a2d02c1056b9917f6106c9327d0263a","dark":"https://mintcdn.com/phonovation/6oxiVkd8RMPgmxm-/logo/dark.svg?fit=max\u0026auto=format\u0026n=6oxiVkd8RMPgmxm-\u0026q=85\u0026s=71190bfb6a7c725d080a392d87fdfeb6","href":"https://www.phonovation.com/"},"favicon":{"light":"https://mintcdn.com/phonovation/N1mBACmfihSekmO_/favicon.svg?fit=max\u0026auto=format\u0026n=N1mBACmfihSekmO_\u0026q=85\u0026s=8762414bb88dbc5afc27bec19bdacc75","dark":"https://mintcdn.com/phonovation/N1mBACmfihSekmO_/favicon.svg?fit=max\u0026auto=format\u0026n=N1mBACmfihSekmO_\u0026q=85\u0026s=8762414bb88dbc5afc27bec19bdacc75"},"api":{"openapi":["openapi/oauth.yaml","openapi/phonovation-api.yaml","openapi/phonovation-whatsapp.json","openapi/json-legacy.yaml","openapi/url-legacy.yaml","openapi/delivery-receipt-webhook.yaml","openapi/inbound-message-webhook.yaml"],"examples":{"defaults":"all","languages":["curl","python","csharp","java","php","javascript"],"prefill":true}},"background":{"decoration":"windows","color":{"light":"#FAFAFA","dark":"#0f1926"}},"navbar":{"links":[{"href":"https://phonovation.com","label":"phonovation.com"}],"primary":{"type":"button","label":"Login","href":"https://secure.interactsms.com/login.aspx"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/phonovation-ltd","x":"https://x.com/phonovation","facebook":"https://www.facebook.com/phonovation","instagram":"https://www.instagram.com/phonovation.ltd","youtube":"https://www.youtube.com/@phonovation"},"links":[{"header":"Contact us","items":[{"label":"Contact our team in Ireland","href":"https://www.phonovation.com/contact-us"},{"label":"+353 (1) 284 3011","href":"https://www.phonovation.com/contact-us"},{"label":"sales@phonovation.com","href":"https://www.phonovation.com/contact-us"},{"label":"Make an enquiry","href":"https://www.phonovation.com/contact-us"}]},{"header":"Head office","items":[{"label":"Frascati Hall","href":"https://www.google.com/maps/search?api=1\u0026query=Frascati%20Hall%2C%20Sweetman%27s%20Avenue%2C%20Blackrock%2C%20Co.%20Dublin%2C%20Ireland%2C%20A94%20F9N7"},{"label":"Sweetman's Avenue","href":"https://www.google.com/maps/search?api=1\u0026query=Frascati%20Hall%2C%20Sweetman%27s%20Avenue%2C%20Blackrock%2C%20Co.%20Dublin%2C%20Ireland%2C%20A94%20F9N7"},{"label":"Blackrock, Co. Dublin","href":"https://www.google.com/maps/search?api=1\u0026query=Frascati%20Hall%2C%20Sweetman%27s%20Avenue%2C%20Blackrock%2C%20Co.%20Dublin%2C%20Ireland%2C%20A94%20F9N7"},{"label":"Ireland, A94 F9N7","href":"https://www.google.com/maps/search?api=1\u0026query=Frascati%20Hall%2C%20Sweetman%27s%20Avenue%2C%20Blackrock%2C%20Co.%20Dublin%2C%20Ireland%2C%20A94%20F9N7"}]},{"header":"Legal \u0026 Compliance","items":[{"label":"Legal \u0026 Compliance","href":"https://www.phonovation.com/legal-compliance"},{"label":"Terms \u0026 Conditions","href":"https://www.phonovation.com/terms-and-conditions"},{"label":"Privacy Policy","href":"https://www.phonovation.com/privacy-policy"}]}]},"seo":{"indexing":"all"},"icons":{"library":"fontawesome"},"styling":{"codeblocks":"dark","latex":false},"integrations":{"cookies":{"key":"phonovation-measurement-consent","value":"granted"}},"contextual":{"options":["copy","view","chatgpt","claude","aistudio",{"title":"Open in Codex","description":"Open Codex in ChatGPT.","icon":"terminal","href":"https://chatgpt.com/codex"}],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"headset","href":"mailto:support@phonovation.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"phonovation","hasAudioNarration":false,"actualSubdomain":"phonovation","customDomains":["developers.phonovation.com"],"gitSource":{"type":"github","owner":"phonovation","repo":"developerportal","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad769a97a3fec7fec58d3d1","collectionId":"b1631086-f318-4e72-9962-8ca580caa128","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad769a97a3fec7fec58d3d1"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6ad769a97a3fec7fec58d3d1","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":362},{"language":"default","tag":"customer-engagement","count":240},{"language":"default","tag":"channels","count":90},{"language":"default","tag":"platform","count":22},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"Send messages","count":4},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Receive events","count":3},{"language":"default","tag":"Legacy APIs","count":3},{"language":"default","tag":"Webhooks","count":3}],"searchSettings":{"showContentSnippets":true,"maxResults":10}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar,#content-side-layout{max-width:1380px!important;margin-left:auto!important;margin-right:auto!important}#sidebar{left:max(24px, calc((100vw - 1380px) / 2))!important}@media (max-width: 1380px){#navbar,#content-side-layout{max-width:none!important}#sidebar{left:24px!important}}:root{--phono-red: #d23a25;--phono-red-bright: #e8654f;--phono-navy: #0f1926;--phono-blue: #4b69a0;--phono-green: #247a4b;--phono-amber: #b66a16;--phono-canvas: #fafafa;--phono-line: rgba(15, 25, 38, 0.12);--phono-shadow: 0 18px 48px rgba(15, 25, 38, 0.1)}card,code-block,callout,[data-component-name=\"mermaid-container\"]{border-radius:14px!important}card{transition:transform 180ms ease,\n border-color 180ms ease,\n box-shadow 180ms ease}card:hover{transform:translateY(-2px);border-color:rgba(210, 58, 37, 0.38)!important;box-shadow:0 14px 32px rgba(15, 25, 38, 0.1)}code-block{border-color:rgba(75, 105, 160, 0.32)!important;box-shadow:0 12px 30px rgba(15, 25, 38, 0.1)}[data-component-name=\"mermaid-container\"]{border:1px solid rgba(75, 105, 160, 0.2);background:radial-gradient(circle at 12% 0%, rgba(210, 58, 37, 0.08), transparent 38%),\n radial-gradient(\n circle at 92% 100%,\n rgba(75, 105, 160, 0.1),\n transparent 42%\n );padding:18px}callout{box-shadow:0 8px 24px rgba(15, 25, 38, 0.05)}.phono-faq .accordion-group{overflow:visible;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.phono-faq details.accordion{border-top:1px solid rgba(75, 105, 160, 0.2)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.phono-faq details.accordion:last-child{border-bottom:1px solid rgba(75, 105, 160, 0.2)!important}.phono-faq details.accordion>summary{padding-left:10px;padding-right:10px;border-radius:9px!important;transition:color 160ms ease,\n background-color 160ms ease}.phono-faq details.accordion>summary:hover,.phono-faq details.accordion[open]>summary{background:rgba(210, 58, 37, 0.055)!important}.dark .phono-faq details.accordion{border-color:rgba(142, 164, 194, 0.18)!important;background:transparent!important}.dark .phono-faq details.accordion:last-child{border-bottom-color:rgba(142, 164, 194, 0.18)!important}.dark .phono-faq details.accordion>summary:hover,.dark .phono-faq details.accordion[open]>summary{background:rgba(232, 101, 79, 0.09)!important}.phono-kicker{color:var(--phono-red);display:inline-flex;font-size:0.76rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase}.phono-hero{position:relative;display:grid;grid-template-columns:minmax(0, 0.92fr) minmax(420px, 1.08fr);gap:44px;align-items:center;overflow:hidden;margin:8px 0 42px;padding:44px;border:1px solid rgba(75, 105, 160, 0.2);border-radius:24px;background:linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.96),\n rgba(245, 248, 252, 0.9)\n ),\n radial-gradient(circle at 0% 0%, rgba(210, 58, 37, 0.18), transparent 40%);box-shadow:var(--phono-shadow)}.phono-hero::before{content:\"\";position:absolute;width:280px;height:280px;top:-170px;left:-110px;border-radius:999px;background:rgba(210, 58, 37, 0.12);filter:blur(12px);pointer-events:none}.phono-hero__copy,.phono-console{position:relative;z-index:1}.phono-hero__title{margin:12px 0 16px!important;color:var(--phono-navy);font-size:clamp(2.35rem, 4.5vw, 4.6rem);font-weight:750;letter-spacing:-0.055em;line-height:0.98}.phono-hero__copy>p:not(.phono-hero__title){max-width:38rem;margin:0;color:#526071;font-size:1.05rem;line-height:1.65}.phono-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.phono-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid transparent;border-radius:10px;font-size:0.9rem;font-weight:700;text-decoration:none!important;cursor:pointer;transition:transform 160ms ease,\n box-shadow 160ms ease,\n background 160ms ease}.phono-button:hover{transform:translateY(-1px)}.phono-button--primary{color:#fff!important;background:linear-gradient(\n 135deg,\n var(--phono-red),\n var(--phono-red-bright)\n );box-shadow:0 10px 24px rgba(210, 58, 37, 0.25)}.phono-button--secondary{color:var(--phono-navy)!important;border-color:rgba(15, 25, 38, 0.16);background:rgba(255, 255, 255, 0.76)}.phono-local-badge{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border:1px solid rgba(75, 105, 160, 0.2);border-radius:999px;color:#40506a;background:rgba(75, 105, 160, 0.07);font-size:0.73rem;font-weight:700}.phono-console{min-width:0;overflow:hidden;border:1px solid rgba(255, 255, 255, 0.12);border-radius:18px;color:#e7edf6;background:#0f1926;box-shadow:0 26px 60px rgba(15, 25, 38, 0.28)}.phono-console__chrome{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:43px;padding:0 14px;border-bottom:1px solid rgba(255, 255, 255, 0.08);color:#8fa0b8;font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.72rem}.phono-console__chrome button{justify-self:end;color:#c7d2e1;background:transparent;border:0;cursor:pointer}.phono-console__lights{display:flex;gap:6px}.phono-console__lights i{width:8px;height:8px;border-radius:99px;background:#d23a25}.phono-console__lights i:nth-child(2){background:#d99a32}.phono-console__lights i:nth-child(3){background:#3e9a68}.phono-console pre{overflow:auto;margin:0;color:#dce7f6;background:transparent;font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.78rem;line-height:1.65;white-space:pre}.phono-console pre{min-height:270px;padding:14px 18px 20px}.phono-facts{display:flex;align-items:center;gap:14px;overflow-x:auto;margin:18px 0 30px;padding:11px 13px;border:1px solid var(--phono-line);border-radius:12px;background:linear-gradient(\n 90deg,\n rgba(75, 105, 160, 0.06),\n rgba(210, 58, 37, 0.04)\n )}.phono-facts__label{flex:0 0 auto;color:#718096;font-size:0.68rem;font-weight:750;letter-spacing:0.08em;text-transform:uppercase}.phono-facts__items{display:flex;align-items:center;gap:8px}.phono-fact{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;background:rgba(255, 255, 255, 0.68);white-space:nowrap}.phono-fact__dot{width:7px;height:7px;border-radius:99px;background:#7b8798}.phono-fact__dot--success{background:var(--phono-green)}.phono-fact__dot--warning{background:var(--phono-amber)}.phono-fact__dot--accent{background:var(--phono-red)}.phono-fact__label{color:#657286;font-size:0.7rem}.phono-fact code{color:var(--phono-navy);font-size:0.72rem;font-weight:700}.phono-journey{margin:26px 0 34px}.phono-journey ol{display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));gap:0;padding:0;list-style:none}.phono-journey li{position:relative;display:flex;gap:10px;min-width:0;padding-right:20px}.phono-journey li:not(:last-child)::after{content:\"\";position:absolute;z-index:0;top:15px;left:34px;right:5px;height:2px;background:linear-gradient(\n 90deg,\n rgba(210, 58, 37, 0.55),\n rgba(75, 105, 160, 0.26)\n )}.phono-journey__number{position:relative;z-index:1;display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;height:30px;border-radius:99px;color:#fff;background:linear-gradient(\n 135deg,\n var(--phono-red),\n var(--phono-red-bright)\n );box-shadow:0 6px 16px rgba(210, 58, 37, 0.2);font-size:0.75rem;font-weight:800}.phono-journey__copy{display:flex;min-width:0;flex-direction:column;gap:3px;padding-top:3px}.phono-journey__copy strong{color:var(--phono-navy);font-size:0.76rem}.phono-journey__copy small{color:#778397;font-size:0.68rem;line-height:1.35}.phono-success{display:flex;align-items:flex-start;gap:12px;margin:18px 0;padding:14px 16px;border:1px solid rgba(36, 122, 75, 0.25);border-radius:13px;background:linear-gradient(\n 135deg,\n rgba(36, 122, 75, 0.08),\n rgba(75, 105, 160, 0.04)\n )}.phono-success__mark{display:inline-flex;flex:0 0 26px;align-items:center;justify-content:center;width:26px;height:26px;border-radius:99px;color:#fff;background:var(--phono-green);font-weight:800}.phono-success>div{display:flex;flex-direction:column;gap:2px}.phono-success__eyebrow{color:var(--phono-green);font-size:0.66rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase}.phono-success strong{color:var(--phono-navy)}.phono-success__body{margin-top:3px;color:#5e6b7c;font-size:0.82rem}.sms-lab{overflow:hidden;margin:28px 0;border:1px solid rgba(75, 105, 160, 0.22);border-radius:22px;color:var(--phono-navy);background:#fff;box-shadow:var(--phono-shadow)}.sms-lab__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 30px 24px;border-bottom:1px solid var(--phono-line);background:radial-gradient(\n circle at 100% 0%,\n rgba(210, 58, 37, 0.11),\n transparent 38%\n ),\n linear-gradient(135deg, #fff, #f6f8fc)}.sms-lab__header h2{margin:5px 0 7px;color:var(--phono-navy);font-size:1.55rem;letter-spacing:-0.03em}.sms-lab__header p{max-width:45rem;margin:0;color:#697588;font-size:0.88rem}.sms-lab__workspace{display:grid;grid-template-columns:minmax(0, 1.15fr) minmax(320px, 0.85fr);border-bottom:1px solid var(--phono-line)}.sms-lab__composer{min-width:0;padding:28px 30px}.sms-lab__section-heading,.sms-lab__detail-heading,.sms-lab__segment-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.sms-lab__section-heading label,.sms-lab__detail h3,.sms-lab__legend h3{color:var(--phono-navy);font-weight:760}.sms-lab__section-heading label{font-size:0.82rem}.sms-lab button{border:0;font:inherit;cursor:pointer}.sms-lab button:focus-visible{outline:2px solid var(--phono-red);outline-offset:2px}.sms-lab__section-heading button{padding:5px 8px;border-radius:7px;color:#66748a;background:transparent;font-size:0.72rem;font-weight:700}.sms-lab__section-heading button:hover{color:var(--phono-red);background:rgba(210, 58, 37, 0.07)}.sms-lab textarea{width:100%;min-height:220px;margin-top:10px;padding:16px 17px;resize:vertical;border:1px solid rgba(15, 25, 38, 0.17);border-radius:14px;outline:none;color:var(--phono-navy);background:#fbfcfe;font:inherit;font-size:0.92rem;line-height:1.65;transition:border-color 160ms ease,\n box-shadow 160ms ease,\n background 160ms ease}.sms-lab textarea:focus{border-color:rgba(210, 58, 37, 0.68);background:#fff;box-shadow:0 0 0 4px rgba(210, 58, 37, 0.1)}.sms-lab__composer-footer{display:flex;justify-content:space-between;gap:16px;margin-top:8px;color:#7a8798;font-size:0.68rem}.sms-lab__examples{margin-top:20px}.sms-lab__examples>span{color:#778397;font-size:0.67rem;font-weight:750;letter-spacing:0.07em;text-transform:uppercase}.sms-lab__examples>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.sms-lab__examples button{padding:7px 10px;border:1px solid rgba(75, 105, 160, 0.16);border-radius:999px;color:#40506a;background:rgba(75, 105, 160, 0.055);font-size:0.71rem;font-weight:700;transition:border-color 160ms ease,\n color 160ms ease,\n background 160ms ease}.sms-lab__examples button:hover{border-color:rgba(210, 58, 37, 0.32);color:var(--phono-red);background:rgba(210, 58, 37, 0.06)}.sms-lab__summary{min-width:0;padding:28px;color:#eaf0f8;background:radial-gradient(\n circle at 100% 0%,\n rgba(232, 101, 79, 0.2),\n transparent 42%\n ),\n var(--phono-navy)}.sms-lab__metrics{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px}.sms-lab__metric{display:flex;min-height:104px;flex-direction:column;justify-content:center;padding:14px;border:1px solid rgba(255, 255, 255, 0.1);border-radius:13px;background:rgba(255, 255, 255, 0.055)}.sms-lab__metric>span,.sms-lab__metric small{color:#95a5ba}.sms-lab__metric>span{font-size:0.65rem;font-weight:750;letter-spacing:0.07em;text-transform:uppercase}.sms-lab__metric strong{margin:4px 0 2px;color:#fff;font-size:1.45rem;line-height:1}.sms-lab__metric small{font-size:0.67rem}.sms-lab__segment-track{overflow:hidden;border-radius:999px;background:rgba(255, 255, 255, 0.1)}.sms-lab__segment-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg, var(--phono-red), var(--phono-red-bright));transition:width 180ms ease}.sms-lab__multipart-note{display:flex;flex-direction:column;gap:2px;margin-top:18px;padding:12px 13px;border:1px solid rgba(232, 101, 79, 0.25);border-radius:11px;background:rgba(210, 58, 37, 0.12);font-size:0.74rem}.sms-lab__multipart-note span{color:#b4c0d1}.sms-lab__normalization{display:grid;grid-template-columns:minmax(230px, 0.5fr) minmax(0, 1.5fr);gap:22px;align-items:center;padding:16px 30px;border-bottom:1px solid rgba(182, 106, 22, 0.18);background:#fff8ec}.sms-lab__normalization>div{display:flex;flex-direction:column;gap:2px}.sms-lab__normalization strong{color:#6f4716;font-size:0.76rem}.sms-lab__normalization span{color:#8a663b;font-size:0.68rem}.sms-lab__normalization code{overflow:auto;padding:8px 10px;border:1px solid rgba(182, 106, 22, 0.18);border-radius:8px;color:#6f4716;background:rgba(255, 255, 255, 0.68);font-size:0.72rem;white-space:pre-wrap}.sms-lab__detail{padding:28px 30px 30px;border-bottom:1px solid var(--phono-line)}.sms-lab__detail h3,.sms-lab__legend h3{margin:0;font-size:1rem}.sms-lab__detail-heading p{margin:4px 0 0;color:#748095;font-size:0.72rem}.sms-lab__detail-heading>span{flex:0 0 auto;padding:5px 9px;border-radius:999px;color:var(--phono-red);background:rgba(210, 58, 37, 0.08);font-size:0.7rem;font-weight:750}.sms-lab__segments{display:flex;flex-direction:column;gap:14px;margin-top:18px}.sms-lab__segment{padding:15px;border:1px solid rgba(75, 105, 160, 0.15);border-radius:14px;background:#f9fbfd}.sms-lab__segment-heading strong{color:var(--phono-navy);font-size:0.75rem}.sms-lab__segment-heading span{color:#748095;font-size:0.68rem}.sms-lab__segment-track{height:4px;margin:9px 0 13px;background:rgba(75, 105, 160, 0.1)}.sms-lab__characters{display:flex;flex-wrap:wrap;gap:5px}.sms-lab__character{position:relative;display:inline-flex;min-width:30px;height:31px;align-items:center;justify-content:center;padding:0 7px;border:1px solid;border-radius:7px;font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.72rem;line-height:1}.sms-lab__character small{position:absolute;top:-5px;right:-4px;display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center;border-radius:999px;color:#fff;background:var(--phono-navy);font-family:inherit;font-size:0.55rem;font-weight:800}.sms-lab__character--basic{border-color:rgba(36, 122, 75, 0.24);color:#1f6c43;background:#eaf6ef}.sms-lab__character--extended{border-color:rgba(182, 106, 22, 0.28);color:#8f5417;background:#fff3db}.sms-lab__character--replacement{border-color:rgba(210, 58, 37, 0.28);color:#a42f20;background:#fff0ed}.sms-lab__character--unicode-compatible{border-color:rgba(75, 105, 160, 0.27);color:#3f5d91;background:#edf2fa}.sms-lab__character--unicode{border-color:rgba(210, 58, 37, 0.38);color:#fff;background:var(--phono-red)}.sms-lab__character--udh{min-width:42px;border-color:rgba(15, 25, 38, 0.22);color:#fff;background:var(--phono-navy);font-size:0.59rem;font-weight:800;letter-spacing:0.04em}.sms-lab__empty{display:flex;min-height:142px;align-items:center;justify-content:center;gap:14px;margin-top:18px;border:1px dashed rgba(75, 105, 160, 0.22);border-radius:14px;color:#778397;background:rgba(75, 105, 160, 0.025)}.sms-lab__empty>span{display:inline-flex;width:43px;height:43px;align-items:center;justify-content:center;border-radius:11px;color:var(--phono-blue);background:rgba(75, 105, 160, 0.1);font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.74rem;font-weight:800}.sms-lab__empty strong{color:var(--phono-navy);font-size:0.78rem}.sms-lab__empty p{margin:3px 0 0;font-size:0.7rem}.sms-lab__legend{padding:24px 30px 28px;background:#fbfcfe}.sms-lab__legend-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px 18px;margin-top:16px}.sms-lab__legend-item{display:flex;min-width:0;align-items:center;gap:10px}.sms-lab__legend-swatch{display:block;width:28px;height:28px;flex:0 0 28px;border:1px solid;border-radius:7px}.sms-lab__legend-item>div{display:flex;min-width:0;flex-direction:column;gap:1px}.sms-lab__legend-item strong{color:var(--phono-navy);font-size:0.71rem}.sms-lab__legend-item small{color:#778397;font-size:0.64rem}.dark .phono-hero,.dark .sms-lab{border-color:rgba(255, 255, 255, 0.11);background:radial-gradient(circle at 0% 0%, rgba(210, 58, 37, 0.14), transparent 38%),\n linear-gradient(135deg, rgba(20, 32, 47, 0.98), rgba(15, 25, 38, 0.98))}.dark .phono-hero__title,.dark .phono-fact code,.dark .phono-journey__copy strong,.dark .phono-success strong,.dark .sms-lab__header h2,.dark .sms-lab__section-heading label,.dark .sms-lab__detail h3,.dark .sms-lab__legend h3,.dark .sms-lab__segment-heading strong,.dark .sms-lab__empty strong,.dark .sms-lab__legend-item strong{color:#f5f8fc}.dark .phono-hero__copy>p:not(.phono-hero__title),.dark .phono-success__body,.dark .sms-lab__header p{color:#aebbd0}.dark .phono-facts,.dark .sms-lab__header{border-color:rgba(255, 255, 255, 0.1);background:rgba(255, 255, 255, 0.035)}.dark .phono-fact{background:rgba(255, 255, 255, 0.055)}.dark .sms-lab__workspace,.dark .sms-lab__detail{border-color:rgba(255, 255, 255, 0.1)}.dark .sms-lab textarea{border-color:rgba(255, 255, 255, 0.13);color:#eef3fa;background:rgba(255, 255, 255, 0.045)}.dark .sms-lab textarea:focus{background:rgba(255, 255, 255, 0.065)}.dark .sms-lab__examples button,.dark .sms-lab__segment,.dark .sms-lab__empty{border-color:rgba(255, 255, 255, 0.09);background:rgba(255, 255, 255, 0.035)}.dark .sms-lab__examples button{color:#b5c1d4}.dark .sms-lab__legend{background:rgba(255, 255, 255, 0.02)}.dark .sms-lab__normalization{border-color:rgba(255, 201, 131, 0.13);background:rgba(182, 106, 22, 0.12)}.dark .sms-lab__normalization strong,.dark .sms-lab__normalization code{color:#f3c587}.dark .sms-lab__normalization span{color:#c9a777}.dark .sms-lab__normalization code{border-color:rgba(255, 201, 131, 0.14);background:rgba(15, 25, 38, 0.35)}@media (max-width: 980px){.phono-hero{grid-template-columns:1fr;padding:34px}.sms-lab__workspace{grid-template-columns:1fr}.sms-lab__summary{border-top:1px solid rgba(255, 255, 255, 0.08)}.phono-journey ol{grid-template-columns:1fr;gap:14px}.phono-journey li:not(:last-child)::after{top:30px;bottom:-14px;left:14px;right:auto;width:2px;height:auto}}@media (max-width: 720px){.phono-hero{gap:28px;margin-left:-4px;margin-right:-4px;padding:24px 18px;border-radius:18px}.phono-hero__title{font-size:2.45rem}.phono-console pre{min-height:310px;font-size:0.7rem}.phono-facts{align-items:flex-start;flex-direction:column}.phono-facts__items{align-items:flex-start;flex-direction:column}.sms-lab__header{flex-direction:column;padding:22px 18px}.sms-lab__composer,.sms-lab__summary,.sms-lab__detail,.sms-lab__legend{padding:22px 18px}.sms-lab__normalization{grid-template-columns:1fr;gap:10px;padding:16px 18px}.sms-lab__legend-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}.sms-lab__composer-footer,.sms-lab__detail-heading{align-items:flex-start;flex-direction:column;gap:6px}}@media (prefers-reduced-motion: reduce){card,.phono-button,.sms-lab textarea,.sms-lab button,.sms-lab__segment-track>span{transition:none!important}card:hover,.phono-button:hover{transform:none}}"}],"page":{"pagePath":"phonovation-api/api-reference/campaigns/create-campaign","slug":"/phonovation-api/api-reference/campaigns/create-campaign","pageMetadata":{"title":"Create and send an SMS campaign","description":"Send an SMS campaign immediately or schedule it for later.","openapi":"openapi/phonovation-api.yaml POST /v1/campaign","playground":"interactive","timestamp":false,"noindex":true,"searchable":false,"href":"/phonovation-api/api-reference/campaigns/create-campaign"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Send an SMS campaign immediately or schedule it for later.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Info,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsx(_components.p,{children:`This operation uses the live messaging service and can consume message credits. Use an approved Sender ID and message only recipients you are permitted to contact.`})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`sendAt`}),` is always interpreted as Irish local time (`,_jsx(_components.code,{children:`Europe/Dublin`}),`). Do not include `,_jsx(_components.code,{children:`Z`}),` or a numeric UTC offset. For example, `,_jsx(_components.code,{children:`2030-07-08T15:00`}),` schedules delivery for 15:00 in Ireland, regardless of where the request originates. Convert the intended time to Irish local time before sending the request.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`scheduling-from-outside-ireland`,children:`Scheduling from outside Ireland`}),`\n`,_jsxs(_components.p,{children:[`Phonovation does not use your device, server, account, or recipient timezone. It reads the date and clock time in `,_jsx(_components.code,{children:`sendAt`}),` as the time in Ireland.`]}),`\n`,_jsxs(_components.p,{children:[`Prefer `,_jsx(_components.code,{children:`yyyy-MM-ddTHH:mm`}),`. A space instead of `,_jsx(_components.code,{children:`T`}),` and optional seconds are also accepted. Supplied seconds are ignored, and the campaign is scheduled at the start of the minute.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Desired local delivery time`}),_jsx(_components.th,{children:`Irish time to submit`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`sendAt`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`UK: 8 July 2030 at 15:00 (`,_jsx(_components.code,{children:`Europe/London`}),`)`]}),_jsx(_components.td,{children:`8 July at 15:00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2030-07-08T15:00`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`China: 8 July 2030 at 15:00 (`,_jsx(_components.code,{children:`Asia/Shanghai`}),`)`]}),_jsx(_components.td,{children:`8 July at 08:00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2030-07-08T08:00`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`China: 15 January 2030 at 15:00 (`,_jsx(_components.code,{children:`Asia/Shanghai`}),`)`]}),_jsx(_components.td,{children:`15 January at 07:00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2030-01-15T07:00`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`New York: 8 July 2030 at 15:00 (`,_jsx(_components.code,{children:`America/New_York`}),`)`]}),_jsx(_components.td,{children:`8 July at 20:00`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`2030-07-08T20:00`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Use the IANA timezone `,_jsx(_components.code,{children:`Europe/Dublin`}),` in your date-time library. Do not hard-code an offset: Ireland changes offset during the year, and other countries may change clocks on different dates.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Omit `,_jsx(_components.code,{children:`sendAt`}),` or send `,_jsx(_components.code,{children:`null`}),` to send immediately. Empty and whitespace-only strings are invalid.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create and send an SMS campaign","description":"Send an SMS campaign immediately or schedule it for later.","openapi":"openapi/phonovation-api.yaml POST /v1/campaign","playground":"interactive","timestamp":false,"noindex":true,"searchable":false,"href":"/phonovation-api/api-reference/campaigns/create-campaign"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Scheduling from outside Ireland","slug":"scheduling-from-outside-ireland","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/phonovation/2d10a0601a4e8785/privacy.js"],"openApiReferenceData":{"operation":{"tags":["Campaigns"],"summary":"Create and send an SMS campaign","operationId":"createCampaign","servers":["a9f7db01-fe20-4e6f-9cbd-42fc967f71e6"],"description":"Send an SMS campaign immediately or schedule it for later.","requestBody":"ff4d4bc6-0297-439a-b8b7-e0d26668b2a8","responses":{"202":"fc7d337e-1d56-4a37-90b7-fd88db9a5af5","400":"2f9b09e3-6b8f-4f3e-b033-745e48eef561","401":"6ef39eae-0e60-4d00-a0c7-f45874217d41","403":"775ebca6-0ca5-48ed-8ddf-ad537feb0783"},"method":"post","type":"path","security":["55a610c0-5365-44cb-be44-dd3da6d673eb"],"path":"/v1/campaign","baseUrlOptions":["https://api.phonovation.com"],"title":"Create and send an SMS campaign","codeSamples":[],"requestExampleLanguages":["bash","python","csharp","java","php","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.text":"Your appointment is tomorrow at 10:30.","body.from":"CompanyName","body.recipientInfo.items.0.msisdn":"353871234567"},{"body.text":"Your appointment is tomorrow at 10:30.","body.from":"CompanyName","body.recipientInfo.items.0.msisdn":"353871234567","body.recipientInfo.items.0.ClientReference.oneOf.0":"appointment-001"},{"body.text":"Service update","body.from":"CompanyName","body.recipientInfo.items.0.msisdn":"353871234567","body.recipientInfo.items.1.msisdn":"353851112222","body.campaignName":"Service Update"},{"body.text":"Service update","body.from":"CompanyName","body.recipientInfo.items.0.msisdn":"353871234567","body.recipientInfo.items.0.ClientReference.oneOf.0":"customer-001","body.recipientInfo.items.1.msisdn":"353851112222","body.recipientInfo.items.1.ClientReference.oneOf.0":"customer-002","body.campaignName":"Service Update"},{"body.text":"Reminder about your scheduled appointment","body.from":"CompanyName","body.recipientInfo.items.0.msisdn":"353871234567","body.recipientInfo.items.0.ClientReference.oneOf.0":"appointment-001","body.recipientInfo.items.1.msisdn":"353851112222","body.recipientInfo.items.1.ClientReference.oneOf.0":"appointment-002","body.campaignName":"Appointment Reminders","body.sendAt.oneOf.0":"2030-07-08T14:30"}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"description":"The message, sender, recipients, and optional campaign settings. Any\n`sendAt` value must contain the intended Irish local date and time.\n","content":{"application/json":{"schema":{"type":"object","title":"Create Campaign Request","description":"Everything Phonovation needs to create, schedule, or save an SMS campaign.","required":["text","from","recipientInfo"],"properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S","description":"The message your recipients will receive. It must include at least one\nvisible character.\n\nPhonovation automatically detects the message encoding and calculates how\nmany SMS parts will be sent and billed:\n\n- GSM-7: up to 160 characters in one part, then 153 per part.\n- UTF-16: up to 70 characters in one part, then 67 per part.\n- GSM-7 extended characters count as two character units.\n\nTo improve handset compatibility, Phonovation replaces these typographic\ncharacters before sending:\n\n- typographic single quotes to `'`\n- typographic double quotes to `\"`\n- en/em dashes to `-`\n- ellipsis to `.`\n- bullet to `*`\n\nThe API does not automatically add opt-out or footer text, so include any\nwording required for your use case and compliance obligations.\n","examples":["Your appointment is tomorrow at 10:30."],"isRequired":true,"uniqueKey":"text","typeLabel":"string"},"from":{"type":"string","description":"The sender name or number recipients see on their phone.\n\nLeading and trailing spaces are removed automatically.\n\n- Numbers-only sender IDs may contain up to 20 digits.\n- All other sender IDs may contain up to 11 characters.\n- Numbers from `50000` through `59999` are reserved and cannot be used.\n\nNon-numeric sender IDs are not limited to letters and numbers by this API.\n\nFor Irish recipients, the sender ID must be on the permitted sender list.\nRecipients for whom the sender is not permitted are skipped.\n","minLength":1,"pattern":"\\S","example":"CompanyName","isRequired":true,"uniqueKey":"from","typeLabel":"string"},"recipientInfo":{"type":"array","minItems":1,"description":"One or more people who should receive the campaign. The API does not set a\nmaximum recipient count.\n\nInvalid or duplicate numbers may be skipped while valid recipients continue.\nDuplicate detection happens after phone-number normalization, and the first\noccurrence is kept.\n","items":{"type":"object","title":"Campaign Recipient","description":"A mobile number to message, with an optional reference from your system.","required":["msisdn"],"properties":{"msisdn":{"type":"string","minLength":1,"maxLength":20,"description":"The recipient's mobile number (also called an MSISDN). Use digits with an\noptional leading `+`; do not include spaces, brackets, or hyphens.\n\nThe API normalizes supported Irish and UK formats, but it does **not**\nperform full international E.164 validation.\n\nAccepted Irish examples include:\n\n- `0871234567`\n- `353871234567`\n- `+353871234567`\n- `00353871234567`\n\nSupported Irish numbers are stored as `353...`; supported UK numbers are\nstored as `44...`. Other digits-only values are accepted unchanged, but\nthe API does not confirm their country or whether they can receive SMS.\n","examples":["353871234567","0871234567"],"isRequired":true,"uniqueKey":"recipientInfo.items.[INDEX].msisdn","typeLabel":"string"},"ClientReference":{"oneOf":[{"type":"string","maxLength":30,"description":"Your optional reference for this recipient — for example, a customer,\norder, or appointment ID.\n\nPhonovation stores the value unchanged and returns it in delivery webhooks\nas `ClientReference`. It does not need to be unique. If omitted,\n`ClientReference` is `null`.\n","examples":["customer-123"],"uniqueKey":"recipientInfo.items.[INDEX].ClientReference.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":30,"description":"Your optional reference for this recipient — for example, a customer,\norder, or appointment ID.\n\nPhonovation stores the value unchanged and returns it in delivery webhooks\nas `ClientReference`. It does not need to be unique. If omitted,\n`ClientReference` is `null`.\n","examples":["customer-123"],"uniqueKey":"recipientInfo.items.[INDEX].ClientReference.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientInfo.items.[INDEX].ClientReference","typeLabel":"string | null"}},"uniqueKey":"recipientInfo.items.[INDEX]","typeLabel":"Campaign Recipient · object"},"isRequired":true,"uniqueKey":"recipientInfo","typeLabel":"Campaign Recipient · object[]"},"campaignName":{"type":"string","minLength":1,"maxLength":30,"pattern":"\\S","default":"API Broadcast","description":"A short name to help you identify the campaign in reporting. If omitted,\nit defaults to `API Broadcast`.\n\nKeep the name to 30 characters or fewer. `null`, empty, and spaces-only\nvalues are rejected. Valid names are stored exactly as supplied.\n","examples":["Summer Promotion"],"uniqueKey":"campaignName","typeLabel":"string"},"sendAt":{"oneOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(:\\d{2})?$","description":"When the campaign should be sent, interpreted exclusively as Irish local\ntime in the `Europe/Dublin` timezone.\n\nPhonovation reads the date and clock portion exactly as Irish time. It\ndoes not use the timezone of the caller, server, account, or recipient,\nand it does not convert the value from UTC. A request sent from China\nwith `2030-07-08T15:00` schedules the campaign for 15:00 in Ireland,\nnot 15:00 in China.\n\nPrefer `yyyy-MM-ddTHH:mm`, for example `2030-07-08T14:30`.\nThese forms are accepted:\n\n- `yyyy-MM-ddTHH:mm`\n- `yyyy-MM-ddTHH:mm:ss`\n- `yyyy-MM-dd HH:mm`\n- `yyyy-MM-dd HH:mm:ss`\n\nIf seconds are supplied, they are ignored and the scheduled time is\nnormalized to the start of the minute.\n\nExample conversions for 8 July 2030 at 15:00 in the source country:\n\n- United Kingdom (`Europe/London`) becomes\n `2030-07-08T15:00` in Ireland.\n- China (`Asia/Shanghai`) becomes `2030-07-08T08:00` in Ireland.\n- New York, United States (`America/New_York`) becomes\n `2030-07-08T20:00` in Ireland.\n\n- Do not include `Z`, another timezone designator, or a numeric UTC offset.\n- If the intended send time is outside Ireland, convert it to\n `Europe/Dublin` before constructing this value.\n- Ireland uses GMT (UTC+0) during part of the year and Irish Standard\n Time (UTC+1) during part of the year. Use a timezone-aware library;\n do not hard-code a single UTC offset.\n- Omit the field or send `null` to send immediately. Empty and\n whitespace-only strings are invalid.\n- Past dates are accepted.\n- The API does not set a maximum scheduling horizon.\n","examples":["2030-07-08T14:30","2030-07-08T14:30:45","2030-07-08 14:30","2030-07-08 14:30:45"],"uniqueKey":"sendAt.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}(:\\d{2})?$","description":"When the campaign should be sent, interpreted exclusively as Irish local\ntime in the `Europe/Dublin` timezone.\n\nPhonovation reads the date and clock portion exactly as Irish time. It\ndoes not use the timezone of the caller, server, account, or recipient,\nand it does not convert the value from UTC. A request sent from China\nwith `2030-07-08T15:00` schedules the campaign for 15:00 in Ireland,\nnot 15:00 in China.\n\nPrefer `yyyy-MM-ddTHH:mm`, for example `2030-07-08T14:30`.\nThese forms are accepted:\n\n- `yyyy-MM-ddTHH:mm`\n- `yyyy-MM-ddTHH:mm:ss`\n- `yyyy-MM-dd HH:mm`\n- `yyyy-MM-dd HH:mm:ss`\n\nIf seconds are supplied, they are ignored and the scheduled time is\nnormalized to the start of the minute.\n\nExample conversions for 8 July 2030 at 15:00 in the source country:\n\n- United Kingdom (`Europe/London`) becomes\n `2030-07-08T15:00` in Ireland.\n- China (`Asia/Shanghai`) becomes `2030-07-08T08:00` in Ireland.\n- New York, United States (`America/New_York`) becomes\n `2030-07-08T20:00` in Ireland.\n\n- Do not include `Z`, another timezone designator, or a numeric UTC offset.\n- If the intended send time is outside Ireland, convert it to\n `Europe/Dublin` before constructing this value.\n- Ireland uses GMT (UTC+0) during part of the year and Irish Standard\n Time (UTC+1) during part of the year. Use a timezone-aware library;\n do not hard-code a single UTC offset.\n- Omit the field or send `null` to send immediately. Empty and\n whitespace-only strings are invalid.\n- Past dates are accepted.\n- The API does not set a maximum scheduling horizon.\n","examples":["2030-07-08T14:30","2030-07-08T14:30:45","2030-07-08 14:30","2030-07-08 14:30:45"],"uniqueKey":"sendAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"sendAt","typeLabel":"string | null"},"createAsDraft":{"type":"boolean","default":false,"description":"Set to `true` to save the campaign as a draft. A draft has no delivery\nsummary until it is marked ready.\n","uniqueKey":"createAsDraft","typeLabel":"boolean"},"shouldSaveList":{"type":"boolean","default":false,"description":"Optional saved-list flag. It is passed through as `shouldSaveList` and\ndefaults to `false`. Saved-list behaviour is not part of the current\npublic API contract, so leave this as `false` unless Phonovation has\nenabled the feature for your integration.\n","uniqueKey":"shouldSaveList","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"Create Campaign Request · object"},"examples":{"oneRecipient":{"title":"oneRecipient","value":{"text":"Your appointment is tomorrow at 10:30.","from":"CompanyName","recipientInfo":[{"msisdn":"353871234567"}]}},"oneRecipientWithClientReference":{"title":"oneRecipientWithClientReference","value":{"text":"Your appointment is tomorrow at 10:30.","from":"CompanyName","recipientInfo":[{"msisdn":"353871234567","ClientReference":"appointment-001"}]}},"multipleRecipients":{"title":"multipleRecipients","value":{"text":"Service update","from":"CompanyName","campaignName":"Service Update","recipientInfo":[{"msisdn":"353871234567"},{"msisdn":"353851112222"}]}},"multipleRecipientsWithClientReferences":{"title":"multipleRecipientsWithClientReferences","value":{"text":"Service update","from":"CompanyName","campaignName":"Service Update","recipientInfo":[{"msisdn":"353871234567","ClientReference":"customer-001"},{"msisdn":"353851112222","ClientReference":"customer-002"}]}},"scheduled":{"title":"scheduled","value":{"text":"Reminder about your scheduled appointment","from":"CompanyName","campaignName":"Appointment Reminders","sendAt":"2030-07-08T14:30","recipientInfo":[{"msisdn":"353871234567","ClientReference":"appointment-001"},{"msisdn":"353851112222","ClientReference":"appointment-002"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"fc7d337e-1d56-4a37-90b7-fd88db9a5af5":{"description":"The campaign is accepted for background processing.","content":{"application/json":{"schema":{"type":"object","title":"Create Campaign Response","description":"Confirms that the campaign request was accepted and queued.","required":["id","message"],"properties":{"id":{"type":"string","format":"uuid","description":"Public campaign UUID. Store it so you can request delivery totals later.","examples":["ffd14db7-e526-4d69-b41e-ec5e38bc04dd"],"isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"message":{"type":"string","const":"Campaign received to be processed","description":"Human-readable confirmation for logs or troubleshooting. A successful\n`202` response returns `Campaign received to be processed`.\n","examples":["Campaign received to be processed"],"isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"Create Campaign Response · object"},"examples":{"queued":{"title":"queued","value":{"id":"ffd14db7-e526-4d69-b41e-ec5e38bc04dd","message":"Campaign received to be processed"}}},"exampleType":"examples"}},"links":{"GetCampaignSummary":{"operationId":"getCampaignSummary","parameters":{"id":"$response.body#/id"},"description":"Use the returned ID to request the campaign summary. Processing may\nstill be in progress, so a summary might not be available immediately.\n"}},"exampleType":"examples"},"2f9b09e3-6b8f-4f3e-b033-745e48eef561":{"description":"Request validation or immediate campaign creation fails.","content":{"application/problem+json":{"schema":{"type":"object","required":["title","status","detail"],"properties":{"title":{"type":"string","const":"Validation Error","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","const":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Dynamic validation or campaign failure message.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Validation Error","status":400,"detail":"\u003cdynamic validation or campaign failure message>"},"examples":{"Example":{"title":"Example","value":{"title":"Validation Error","status":400,"detail":"\u003cdynamic validation or campaign failure message>"}}},"exampleType":"examples"}},"exampleType":"examples"},"6ef39eae-0e60-4d00-a0c7-f45874217d41":{"description":"Authentication is missing or unsuccessful. No response body is returned.","headers":{"WWW-Authenticate":{"description":"Bearer authentication challenge.","schema":{"type":"string","const":"Bearer"},"example":"Bearer"}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"775ebca6-0ca5-48ed-8ddf-ad537feb0783":{"description":"Authentication succeeds, but the identity is not a recognized client administrator.","content":{"application/problem+json":{"schema":{"type":"object","required":["title","status","detail"],"properties":{"title":{"type":"string","const":"Forbidden","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","const":403,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","const":"Authenticated user is not a recognized client administrator","isRequired":true,"uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"title":"Forbidden","status":403,"detail":"Authenticated user is not a recognized client administrator"},"examples":{"Example":{"title":"Example","value":{"title":"Forbidden","status":403,"detail":"Authenticated user is not a recognized client administrator"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"55a610c0-5365-44cb-be44-dd3da6d673eb":{"BearerAuth":{"type":"http","scheme":"bearer","description":"A UI-generated Phonovation Personal Access Token (PAT) is the recommended\noption for most integrations. OAuth/OIDC JWT access tokens are also accepted\nwhen an OAuth lifecycle is required.\n\nSend either token as:\n\n`Authorization: Bearer \u003ctoken>`\n\nPAT values begin with `phv_pat_`. Generate a PAT once in the Phonovation UI,\nstore it securely, and reuse it across requests. You do not need to generate\nor refresh a token for every SMS. Preserve the exact casing in\n`Bearer phv_pat_...`.\n","scopes":[]}}},"servers":{"a9f7db01-fe20-4e6f-9cbd-42fc967f71e6":{"url":"https://api.phonovation.com","description":"Phonovation production API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A UI-generated Phonovation Personal Access Token (PAT) is the recommended\noption for most integrations. OAuth/OIDC JWT access tokens are also accepted\nwhen an OAuth lifecycle is required.\n\nSend either token as:\n\n`Authorization: Bearer \u003ctoken>`\n\nPAT values begin with `phv_pat_`. Generate a PAT once in the Phonovation UI,\nstore it securely, and reuse it across requests. You do not need to generate\nor refresh a token for every SMS. Preserve the exact casing in\n`Bearer phv_pat_...`.\n","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A UI-generated Phonovation Personal Access Token (PAT) is the recommended\noption for most integrations. OAuth/OIDC JWT access tokens are also accepted\nwhen an OAuth lifecycle is required.\n\nSend either token as:\n\n`Authorization: Bearer \u003ctoken>`\n\nPAT values begin with `phv_pat_`. Generate a PAT once in the Phonovation UI,\nstore it securely, and reuse it across requests. You do not need to generate\nor refresh a token for every SMS. Preserve the exact casing in\n`Bearer phv_pat_...`.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi/phonovation-api.yaml"},"subdomain":"phonovation","siteName":"Phonovation Developer Portal","title":"Create and send an SMS campaign - Phonovation Developer Portal","navMaps":{"firstHrefInVersion":{"InteractSMS API":{"href":"/interactsms-api","matchLevel":4},"Phonovation SMS API":{"href":"/phonovation-api/api-reference/campaigns/create-campaign","matchLevel":0},"Phonovation WhatsApp":{"href":"/phonovation-whatsapp/api-reference/customer-engagement/get-a-single-person-or-a-list-of-people","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-08-27T16:03:49.653Z","gitLastModified":"2026-08-31T08:52:42.000Z","originalFileLocation":"phonovation-api/api-reference/campaigns/create-campaign.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Send an SMS campaign immediately or schedule it for later.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Phonovation Developer Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create and send an SMS campaign - Phonovation Developer Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Send an SMS campaign immediately or schedule it for later.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Phonovation Developer Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.phonovation.com/phonovation-api/api-reference/campaigns/create-campaign\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phonovation.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Create+and+send+an+SMS+campaign\u0026amp;description=Send+an+SMS+campaign+immediately+or+schedule+it+for+later.\u0026amp;theme=7cdb3d0b06bd351947031069\u0026amp;signature=62ee7a66b93884f177b8586f34159353289f4797c0b5723b35a356effe948c1b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create and send an SMS campaign - Phonovation Developer Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Send an SMS campaign immediately or schedule it for later.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phonovation.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Create+and+send+an+SMS+campaign\u0026amp;description=Send+an+SMS+campaign+immediately+or+schedule+it+for+later.\u0026amp;theme=7cdb3d0b06bd351947031069\u0026amp;signature=62ee7a66b93884f177b8586f34159353289f4797c0b5723b35a356effe948c1b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/phonovation/GityeubJi2yAP0eB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Phonovation Developer Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#D23A25\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.phonovation.com/phonovation-api/api-reference/campaigns/create-campaign\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/phonovation-api/api-reference/campaigns/create-campaign.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Phonovation Developer Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Phonovation Developer Portal","nav":{"global":{"anchors":[{"anchor":"Support","icon":"headset","href":"mailto:support@phonovation.com"}]},"versions":[{"version":"InteractSMS API","default":true,"tag":"Current","pages":[{"title":"InteractSMS API","href":"/interactsms-api"}]},{"version":"Phonovation SMS API","tag":"New","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Phonovation Developer Hub","sidebarTitle":"Home","icon":"house","mode":"wide","href":"/phonovation-api/overview"},{"title":"Quickstart","icon":"rocket","href":"/phonovation-api/quickstart"},{"title":"Frequently asked questions","sidebarTitle":"FAQ","icon":"circle-question","href":"/phonovation-api/faq"},{"title":"Phonovation SMS API changelog","icon":"clock-rotate-left","href":"/phonovation-api/changelog"}]},{"group":"Core concepts","icon":"paper-plane","pages":[{"title":"Authentication","icon":"lock","href":"/phonovation-api/authentication"},{"title":"Sending SMS","icon":"paper-plane","href":"/phonovation-api/sending-sms"},{"title":"Client Reference","icon":"fingerprint","href":"/phonovation-api/client-reference"},{"title":"Sender IDs","icon":"signature","href":"/phonovation-api/sender-ids"},{"title":"Webhooks","icon":"webhook","href":"/phonovation-api/webhooks"}]},{"group":"API Reference","icon":"code","pages":[{"group":"Authentication","icon":"key","expanded":true,"pages":[{"title":"Obtain or refresh an OAuth access token","openapi":"openapi/phonovation-api.yaml POST /token","playground":"interactive","href":"/phonovation-api/api-reference/authentication/obtain-access-token"}]},{"group":"Health","icon":"heart-pulse","expanded":true,"pages":[{"title":"Check whether the API is running","description":"Check whether the Phonovation API is available and responding.","openapi":"openapi/phonovation-api.yaml GET /health","playground":"interactive","href":"/phonovation-api/api-reference/health/check-api-health"}]},{"group":"Campaigns","icon":"bullhorn","expanded":true,"pages":[{"title":"Create and send an SMS campaign","openapi":"openapi/phonovation-api.yaml POST /v1/campaign","playground":"interactive","href":"/phonovation-api/api-reference/campaigns/create-campaign"},{"title":"View campaign delivery results","description":"Retrieve the processing and delivery summary for a campaign.","openapi":"openapi/phonovation-api.yaml GET /v1/campaign/{id}","playground":"interactive","href":"/phonovation-api/api-reference/campaigns/get-campaign-summary"}]},{"group":"Webhooks","icon":"webhook","expanded":true,"pages":[{"title":"Receive Phonovation webhook events","openapi":"openapi/phonovation-api.yaml webhook Webhook","playground":"none","href":"/phonovation-api/api-reference/webhooks/receive-webhook"}]}]},{"group":"Security and compliance","icon":"shield-halved","pages":[{"title":"ISO/IEC 27001 certification","icon":"certificate","href":"/phonovation-api/security/iso-certification"},{"title":"Opt-outs","icon":"user-slash","href":"/phonovation-api/security/opt-outs"},{"title":"IP whitelisting","icon":"network-wired","href":"/phonovation-api/security/ip-whitelisting"}]},{"group":"Tools","icon":"wrench","pages":[{"title":"MCP Server","icon":"robot","href":"/phonovation-api/tools/mcp"},{"title":"SMS Message Lab","icon":"flask","mode":"wide","href":"/phonovation-api/tools/message-lab"}]}]},{"version":"Phonovation WhatsApp","tag":"New","pages":[{"title":"Phonovation WhatsApp","href":"/phonovation-whatsapp/api-reference/customer-engagement/get-a-single-person-or-a-list-of-people"}]}]},"basePath":"","title":"Create and send an SMS campaign - Phonovation Developer Portal","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}