A valid request URL is required to generate request examples{
"success": true,
"data": {
"id": "obc_2d8e14f7a9c3b0e6",
"organizationId": "org_2Yh1kQ",
"name": "Spring service reminders",
"agentId": "agt_4f9c2b7e10a24d51",
"listId": "obl_7a3f21c9e5b04d68",
"callerNumberId": "pn_6a2f9c31e07b4d58",
"status": "draft",
"dialingMode": "predictive",
"messageCategory": "informational",
"audienceType": "consumer",
"spendCapCents": 50000,
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T15:04:00.000Z"
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Create an outbound campaign (draft)
Create a draft campaign over a contact list. The agent, caller-ID number, and list must all belong to your organization. Created in status draft; call launch to begin dialing. This release dials message_category informational only. Use this (with launchOutboundCampaign) for paced bulk dialing over a contact list. For a single ad-hoc dial, use enqueueOutboundCall (POST /outbound/calls) instead.
A valid request URL is required to generate request examples{
"success": true,
"data": {
"id": "obc_2d8e14f7a9c3b0e6",
"organizationId": "org_2Yh1kQ",
"name": "Spring service reminders",
"agentId": "agt_4f9c2b7e10a24d51",
"listId": "obl_7a3f21c9e5b04d68",
"callerNumberId": "pn_6a2f9c31e07b4d58",
"status": "draft",
"dialingMode": "predictive",
"messageCategory": "informational",
"audienceType": "consumer",
"spendCapCents": 50000,
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T15:04:00.000Z"
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Authorizations
Flowyte secret API key (Authorization: Bearer flowyte_sk_live_…). Scope-gated; is scoped to your organization — a key can never reach another tenant. The listed scopes in each operation's apiKey requirement are the scopes that key must hold. The tokenUrl is nominal: keys are minted in the dashboard.
- Token URL
- /api/v1/api-keys
Body
informational, marketing consumer, business Optional dialing window. Common keys: timezone (IANA, e.g. "America/New_York"), dailyStart / dailyEnd ("HH:MM" local, honoring callee quiet-hours), daysOfWeek (array of 0–6, Sun=0). Omit to use platform defaults.
Optional dial-rate control. Common keys: maxConcurrent (simultaneous live calls), callsPerMinute. Omit for conservative defaults.
Optional re-attempt rules for no-answer/busy/voicemail. Common keys: maxAttempts, retryAfterMinutes, retryOn (array of outcomes, e.g. ["no_answer","busy"]).
Optional answering-machine handling. Common keys: action ("hangup" | "leave_message"), messageText (used when action is leave_message).
Optional spend cap for the campaign