A valid request URL is required to generate request examples{
"success": true,
"data": {
"contacts": [
{
"phoneNumber": "+14155551234",
"consent": "express",
"optedOut": false,
"firstContact": "2026-06-01T09:00:00.000Z",
"lastContact": "2026-07-10T14:20:00.000Z",
"consentBasis": "express_written",
"consentSource": "web_form",
"consentAt": "2026-06-01T09:00:00.000Z"
}
],
"total": 1
}
}{
"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>"
}
]
}List SMS contacts with consent status (Consent & contacts)
The per-contact consent dashboard: each contact’s coarse consent tier (none | conversational | express), org-wide opt-out status, first/last contact times, and the latest consent-ledger record’s basis/source/timestamp. Searchable by phone substring and paged. Backs the 4-year TCPA consent-proof surface. Filter by consent tier and/or opt-out status to build a campaign list: pass consent=conversational,express&optedOut=false to get the outbound-ready opted-in list (every contact with at-least conversational consent that has NOT opted out).
A valid request URL is required to generate request examples{
"success": true,
"data": {
"contacts": [
{
"phoneNumber": "+14155551234",
"consent": "express",
"optedOut": false,
"firstContact": "2026-06-01T09:00:00.000Z",
"lastContact": "2026-07-10T14:20:00.000Z",
"consentBasis": "express_written",
"consentSource": "web_form",
"consentAt": "2026-06-01T09:00:00.000Z"
}
],
"total": 1
}
}{
"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.
Query Parameters
Filter by phone-number substring.
Filter by coarse consent tier. A comma-separated subset of none, conversational, express (compiled to a SQL IN); an unknown value is a 400. Omit for all tiers. The outbound-ready opted-in list is consent=conversational,express&optedOut=false.
"conversational,express"
Tri-state org-wide opt-out (suppression) filter. Omit for all contacts; true = only opted-out (suppressed) numbers; false = only reachable (NOT suppressed) numbers. Combine with consent for the outbound-ready list (consent=conversational,express&optedOut=false).
1-based page number for offset pagination. Defaults to 1 (the first page).
x >= 1Page size — how many items to return per page (1–100). Defaults to 20.
1 <= x <= 100