Error
A valid request URL is required to generate request examples{
"success": true,
"data": {
"listId": "obl_7a3f21c9e5b04d68",
"total": 2,
"valid": 2,
"invalid": 0,
"duplicate": 0,
"suppressed": 0,
"list": {
"id": "obl_7a3f21c9e5b04d68",
"organizationId": "org_2Yh1kQ",
"name": "Spring service reminders",
"source": "paste",
"rowsTotal": 2,
"rowsValid": 2,
"rowsInvalid": 0,
"rowsDuplicate": 0,
"rowsSuppressed": 0,
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T16:20: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>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Outbound
Import contacts into a list from JSON rows
Import recipients from JSON rows (the paste / CRM path) through the SAME normalize / validate / dedupe / scrub pipeline as the CSV import. columnMapping maps canonical fields to the keys present in each row object. Use this when you have the rows as JSON. To upload a CSV file instead, use importOutboundList (POST …/import) — same result, different input format.
POST
/
outbound
/
lists
/
{id}
/
contacts
Error
A valid request URL is required to generate request examples{
"success": true,
"data": {
"listId": "obl_7a3f21c9e5b04d68",
"total": 2,
"valid": 2,
"invalid": 0,
"duplicate": 0,
"suppressed": 0,
"list": {
"id": "obl_7a3f21c9e5b04d68",
"organizationId": "org_2Yh1kQ",
"name": "Spring service reminders",
"source": "paste",
"rowsTotal": 2,
"rowsValid": 2,
"rowsInvalid": 0,
"rowsDuplicate": 0,
"rowsSuppressed": 0,
"createdAt": "2026-07-13T15:04:00.000Z",
"updatedAt": "2026-07-13T16:20: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>"
}
]
}{
"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.
FlowClient Credentials
- Token URL
- /api/v1/api-keys
Scopes1
outbound:write
Create/import contact lists, create/launch/pause/resume/cancel outbound campaigns, and enqueue single outbound calls.
Path Parameters
The contact-list id to import into.
Body
application/json