A valid request URL is required to generate request examples{
"success": true,
"data": {
"phoneNumber": "+14155551234",
"consent": "conversational",
"optedOut": false,
"relationship": "customer",
"aiPaused": true,
"aiPausedAt": "2026-09-24T16:30:00.000Z",
"aiPausedBy": "key_3f9a12",
"aiPauseNote": "handled by Kiwi ops (ticket 8812)",
"firstContact": "2026-09-02T10:15:00.000Z",
"lastContact": "2026-09-24T16:41:07.000Z",
"lastInbound": "2026-09-24T16:41:07.000Z",
"conversationId": "conv_9d2f01"
}
}{
"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>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>"
}
]
}Get an SMS contact
Read everything the workspace knows about texting ONE person: their consent tier, whether they opted out (STOP), whether they are marked as a team contact, whether the AI is paused for them (and since when, by whom, and why), their first/last contact times, and their most recent open text conversation. Use it before sending (is this person reachable?) and to check who is answering their texts right now. conversationId is present only when the person has an open text conversation; it is their most recent open conversation and the id Observe shows. A person who texts numbers answered by different agents has a separate conversation with each agent, so their next text joins the conversation of the agent behind the number they text. 404 not_found when the number is unknown to this workspace: it has never texted one of your numbers or been texted from one, has no recorded consent or AI pause, and is not on the opt-out list. A number that is only on the opt-out list is 200 with optedOut: true.
A valid request URL is required to generate request examples{
"success": true,
"data": {
"phoneNumber": "+14155551234",
"consent": "conversational",
"optedOut": false,
"relationship": "customer",
"aiPaused": true,
"aiPausedAt": "2026-09-24T16:30:00.000Z",
"aiPausedBy": "key_3f9a12",
"aiPauseNote": "handled by Kiwi ops (ticket 8812)",
"firstContact": "2026-09-02T10:15:00.000Z",
"lastContact": "2026-09-24T16:41:07.000Z",
"lastInbound": "2026-09-24T16:41:07.000Z",
"conversationId": "conv_9d2f01"
}
}{
"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>"
}
]
}{
"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
Path Parameters
The contact's number in E.164 format (e.g. +14155551234).
Response
The contact's consent, opt-out and AI-pause state.