XYPNNew! XYPN has partnered with CurrentClientRead the announcement ›
Skip to content
Public API

Build on CurrentClient

Pull call recordings and transcripts, send texts, and keep contacts in sync from your own systems. Plain JSON over HTTPS, OAuth sign-in, cursor pagination.

Overview

The public CurrentClient API: calls, messages, contacts, inboxes, your profile, and team members.

Everything is JSON. Timestamps on calls and messages are unix seconds. Phone numbers are E.164, like +14155552671. List endpoints return records plus a meta object whose cursor you pass back to get the next page.

Base URL
https://api.currentclient.com
Authentication
OAuth authorization code flow. The access token goes on every request as a bearer token. How to get a token
Surface
10 endpoints across 6 resources.
Spec
Version 4d88e38, synced September 3, 2026. Raw OpenAPI JSON

Authentication

Access is by OAuth client using the authorization code flow. A person in the workspace signs in to CurrentClient once, your app receives tokens for them, and you send the access token as a bearer token on every request. A refresh token keeps it going without another sign-in. There are no long-lived API keys.

Authorization endpoint
https://auth.currentclient.com/oauth2/authorize
Token endpoint
https://auth.currentclient.com/oauth2/token
User info endpoint
https://auth.currentclient.com/oauth2/userInfo
Scopes
openidprofileemail
Request all three. Grant type authorization_code.
1

Request an OAuth client

API access is by OAuth client. Email us with the workspace name, what you plan to build, and the redirect URI your app will use, and we will issue a client id and secret for that workspace.

2

Send the person to sign in

Build the authorization URL with your client id, the redirect URI we registered for you, the three scopes, and a random state value you check when they come back. CurrentClient shows the sign-in page and redirects to your URI with a code in the query string.

Authorization URL
https://auth.currentclient.com/oauth2/authorize
  ?response_type=code
  &client_id=$CLIENT_ID
  &redirect_uri=https://yourapp.example/callback
  &scope=openid+profile+email
  &state=$RANDOM_STATE
3

Exchange the code for tokens

From your server, post the code to the token endpoint with your client id and secret as HTTP basic auth. Keep the secret on the server; never ship it in a browser or mobile app.

curl -X POST https://auth.currentclient.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code&code=$CODE&redirect_uri=https://yourapp.example/callback"

You get an access token for the API, an id token describing the person, a refresh token, and how long the access token lives in seconds. Store the refresh token securely; it is what keeps the integration running.

Token response
{
  "access_token": "eyJraWQiOiJ...",
  "id_token": "eyJraWQiOiJ...",
  "refresh_token": "eyJjdHkiOiJ...",
  "token_type": "Bearer",
  "expires_in": 3600
}
4

Refresh before it expires

Trade the refresh token for a new access token with the same basic auth. Do this a little before expires_in runs out rather than on every call.

curl -X POST https://auth.currentclient.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token&refresh_token=$REFRESH_TOKEN"

Access tokens expire. Read expires_in from the token response, cache the token, and use the refresh token to get a new one shortly before it runs out rather than sending the person through sign-in again.

5

Send the access token on every request

Send the access token in the Authorization header. A missing or malformed token gets a 401 with a plain text body. The same token also works against the user info endpoint if you want the person's name and email.

curl https://api.currentclient.com/api/v1/profile \
  -H "Authorization: Bearer $TOKEN"

curl https://auth.currentclient.com/oauth2/userInfo \
  -H "Authorization: Bearer $TOKEN"

Treat the client secret and refresh tokens like passwords. Keep them on a server, load them from an environment variable or secret manager, and never embed them in a browser, mobile app, or public repository. If a secret leaks, email us and we will rotate it.

Every public endpoint uses the JWTBearer security scheme, an HTTP bearer token. The spec also lists CcAdminJWTBearer, which is internal and not issued to partners.

Recipes

The jobs most integrations start with, end to end. Pick a language once and every example on the page follows.

A small helper the examples below use
# Set these once in your shell
export TOKEN="eyJraWQiOiJ..."

Get an access token

Sign a person in with the authorization code flow and exchange the code for tokens.

1

Send the person to sign in

Build the authorization URL with your client id, the redirect URI we registered for you, the three scopes, and a random state value you check when they come back. CurrentClient shows the sign-in page and redirects to your URI with a code in the query string.

https://auth.currentclient.com/oauth2/authorize
  ?response_type=code
  &client_id=$CLIENT_ID
  &redirect_uri=https://yourapp.example/callback
  &scope=openid+profile+email
  &state=$RANDOM_STATE
2

Exchange the code for tokens

From your server, post the code to the token endpoint with your client id and secret as HTTP basic auth. Keep the secret on the server; never ship it in a browser or mobile app.

curl -X POST https://auth.currentclient.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code&code=$CODE&redirect_uri=https://yourapp.example/callback"
3

Read the response

You get an access token for the API, an id token describing the person, a refresh token, and how long the access token lives in seconds. Store the refresh token securely; it is what keeps the integration running.

{
  "access_token": "eyJraWQiOiJ...",
  "id_token": "eyJraWQiOiJ...",
  "refresh_token": "eyJjdHkiOiJ...",
  "token_type": "Bearer",
  "expires_in": 3600
}
4

Refresh before it expires

Trade the refresh token for a new access token with the same basic auth. Do this a little before expires_in runs out rather than on every call.

curl -X POST https://auth.currentclient.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token&refresh_token=$REFRESH_TOKEN"
5

Use the access token on every request

Send the access token in the Authorization header. A missing or malformed token gets a 401 with a plain text body. The same token also works against the user info endpoint if you want the person's name and email.

curl https://api.currentclient.com/api/v1/profile \
  -H "Authorization: Bearer $TOKEN"

curl https://auth.currentclient.com/oauth2/userInfo \
  -H "Authorization: Bearer $TOKEN"

Find your UserId and inbox numbers

Two lookups you will do once and cache. Sending a message needs both.

1

Get your profile

The UserId on the profile is the account that owns the token. Sending a message requires it.

curl https://api.currentclient.com/api/v1/profile \
  -H "Authorization: Bearer $TOKEN"
2

List your inboxes

Each inbox has a Number in E.164 form. That is the UserNumber you send from. The record also tells you whether the inbox records and transcribes calls.

curl "https://api.currentclient.com/api/v1/inboxes/?showWorkspace=true" \
  -H "Authorization: Bearer $TOKEN"

Pull call recordings and transcripts

List recent calls, keep the ones with a finished recording, and download the audio, transcript, and summary.

1

List calls since a point in time

Pass since as a unix timestamp in seconds. Results come newest first. Use a limit that fits your batch size and follow the cursor for more.

curl "https://api.currentclient.com/api/v1/calls?since=1725235200&limit=100" \
  -H "Authorization: Bearer $TOKEN"
2

Keep the calls with a finished recording

IsRecorded says the inbox recorded the call. RecordingStatus says whether the file is ready. Only download when it is completed; in-progress means the recording is still being processed and absent means there is nothing to fetch.

const ready = calls.filter(
  (call) => call.IsRecorded && call.RecordingStatus === "completed" && call.RecordingUrl,
);
3

Download the audio and read the analysis

RecordingUrl points at the audio file. Fetch it soon after listing rather than storing the link long term. The transcript and summary live on the same record once CallAnalysisStatus is completed.

curl -L "$RECORDING_URL" -o call.mp3

Send a text message

Send from one of your inboxes and check what happened to it.

1

Send the message

UserId comes from your profile and UserNumber is one of your inbox numbers. ContactNumber is the recipient in E.164 form. Add setStatus=CLOSED for one-way notices so the conversation does not sit open in the inbox waiting for a reply.

curl -X POST "https://api.currentclient.com/api/v1/messages/send?setStatus=CLOSED" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "UserId": "user_9f3a2c",
    "UserNumber": "+14155550100",
    "ContactNumber": "+14155552671",
    "Message": "Hi Jane, your documents are ready to sign. Reply here with any questions."
  }'
2

Check the result

The response is the message record. Status starts at queued or sending and moves to delivered as the carrier reports back. An unsubscribed or blocked recipient shows up here too, so read the Status rather than assuming success.

if (["unsubscribed", "blockednumber", "failed"].includes(message.Status)) {
  console.warn("Not delivered:", message.Status, message.ErrorMessage);
}

Page through results

Every list endpoint uses the same cursor pattern.

1

Follow the cursor

A list response has records and meta. When meta.cursor is a string, pass it back as the cursor query parameter to get the next page. When it is null you have everything. Keep the other query parameters the same on every page.

async function* pages(path, params = {}) {
  let cursor = null;
  do {
    const qs = new URLSearchParams(params);
    if (cursor) qs.set("cursor", cursor);
    const page = await api(`${path}?${qs}`);
    yield page.records;
    cursor = page.meta?.cursor ?? null;
  } while (cursor);
}

for await (const records of pages("/api/v1/messages", { limit: "100" })) {
  console.log(records.length);
}

Create, tag, and find contacts

Keep contacts in step with another system.

1

Create contacts in a batch

The body is an array. FirstName, LastName, and Phone are required. Turn on isVerifyNumbers to learn each number's carrier and whether it can receive texts.

curl -X POST "https://api.currentclient.com/api/v1/contacts/?isVerifyNumbers=true" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
    { "FirstName": "Jane", "LastName": "Doe", "Phone": "+14155552671", "Email": "jane@example.com", "Tags": ["client"] }
  ]'
2

Add a tag without replacing the others

Updates replace Tags unless you pass isAddTag=true. Send only the fields you are changing.

curl -X PUT "https://api.currentclient.com/api/v1/contacts/$CONTACT_ID?isAddTag=true" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "Tags": ["reviewed-2026"] }'
3

Find contacts by field

useFilter takes Field:Operator:Value. Repeat it to combine conditions. Look up a caller by phone, or pull everyone with a tag.

curl "https://api.currentclient.com/api/v1/contacts/?useFilter=Phone:eq:%2B14155552671" \
  -H "Authorization: Bearer $TOKEN"

curl "https://api.currentclient.com/api/v1/contacts/?useFilter=Tags:contains:client&limit=200" \
  -H "Authorization: Bearer $TOKEN"

Calls

Every call placed or received through CurrentClient, including voicemails and calls handled by an AI agent. When recording, transcription, or call summaries are on for the inbox, each record carries the recording URL, the transcript, and the AI summary.

  • Pull recordings and transcripts into your own storage, CRM, or review tooling
  • Report on call volume and outcomes by team member, contact, or disposition
  • React when a call is missed or goes to voicemail
GET/api/v1/calls

List calls

Returns calls visible to the authenticated caller, most recent first.

Use this when

Pull calls for a time window and work through them page by page. This is the call to use for recordings, transcripts, and AI summaries: each record carries RecordingUrl, CallAnalysisTranscript, and CallAnalysisSummary.

Good to know

  • since and until are unix timestamps in seconds, not milliseconds.
  • Only trust RecordingUrl when RecordingStatus is completed. A call that just ended may still be in-progress, and absent means nothing was recorded.
  • CallAnalysisStatus tells you whether the transcript and summary are ready. Poll again later if it is queued or processing.
  • Results are newest first. Keep following meta.cursor until it comes back null.

Recipes: Pull call recordings and transcripts, Page through results

Query parameters

  • contactNumberstring | null
  • cursorstring | null
  • directionenum | null
    INBOUNDOUTBOUND
  • dispositionIdstring | null
  • isAgentCallboolean | null
  • isContactboolean | null
  • isVoicemailboolean | null
  • limitinteger (uint16)

    Default 100

  • searchstring | null
  • sinceinteger | null

    Unix timestamp in seconds

  • untilinteger | null

    Unix timestamp in seconds

  • userNumberstring | null

Example request

curl "https://api.currentclient.com/api/v1/calls?since=1725235200&limit=50" \
  -H "Authorization: Bearer $TOKEN"

Responses

200
Response fields
Example response
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "AgentInteractions": [
        {}
      ],
      "AnsweredBy": "human",
      "AnsweredByMemberId": "member_9f3a2c",
      "ArchiverIds": {},
      "CallAnalysisStatus": "completed",
      "CallAnalysisSummary": "Jane asked about rolling over her 401(k). Agreed to send the transfer form.",
      "CallAnalysisTranscript": "Agent: Thanks for calling. Jane: Hi, I had a question about my 401(k).",
      "CallDurationTime": "184",
      "CallEndedTime": 1725321600,
      "CallId": "call_9f3a2c",
      "CallSid": "CA7f3e2b9c1d4a5e6f",
      "CallerMemberId": "member_9f3a2c",
      "CallerName": "Jane Doe",
      "Comments": [
        {}
      ],
      "ContactId": "contact_9f3a2c",
      "ContactName": "Jane Doe",
      "ContactNumber": "+18008675309",
      "CreatedTime": 1725321600,
      "CrmIds": {},
      "Direction": "OUTBOUND",
      "DispositionId": "disposition_9f3a2c",
      "IsAgentCall": false,
      "IsForwarded": false,
      "IsMissedCall": false,
      "IsOutsideHours": false,
      "IsRecorded": true,
      "IsVoicemail": false,
      "Meta": {},
      "Note": "Follow up next week about the rollover.",
      "NotetakerIds": {},
      "NumberForwardedTo": "+14155552671",
      "Participants": [
        {}
      ],
      "RecordingDurationTime": "184",
      "RecordingSid": "RE7f3e2b9c1d4a5e6f",
      "RecordingStatus": "completed",
      "RecordingUrl": "https://recordings.currentclient.com/RE7f3e2b9c1d4a5e6f.mp3",
      "Status": "completed",
      "StatusCallSid": "CA7f3e2b9c1d4a5e6f",
      "StatusSequence": 20,
      "StatusWeight": 0,
      "Tags": [
        "client"
      ],
      "TranscriptionStatus": "string",
      "TranscriptionText": "string",
      "TransferredAtTime": 1725321600,
      "TransferredToMemberId": "member_9f3a2c",
      "TransferredToNumber": "string",
      "UpdatedTime": 1725321600,
      "UserId": "1234-abcd-4567-ABCD",
      "UserNumber": "+18008675309"
    }
  ]
}

Messages

Texts sent and received across your inboxes, with delivery status and any attached media. Sending through the API behaves exactly like sending from the app: the message lands in the conversation, is archived, and honors unsubscribes and blocked numbers.

  • Send appointment reminders or document-ready notices from your own systems
  • Mirror conversations into a CRM or data warehouse
  • Audit delivery status for compliance reporting
GET/api/v1/messages

List messages

Returns messages visible to the authenticated caller, most recent first.

Use this when

Read message history for reporting, syncing into another system, or building your own view of a conversation. Filter by contactNumber to get one thread, or by userNumber to get everything through one inbox.

Good to know

  • Direction is SENT or RECEIVED from the inbox's point of view.
  • Attachments arrive as MessageMediaItems with a MediaUrl you can download.
  • Group messages are excluded unless includeGroups is true.

Recipes: Page through results

Query parameters

  • contactNumberstring | null
  • cursorstring | null
  • includeGroupsboolean | null
  • limitinteger (uint16)

    Default 100

  • orderenum | null

    PRO-4251: `asc` for oldest-first, `desc` (default) for newest-first.

    ascdesc
  • searchstring | null
  • sinceinteger | null

    Unix timestamp in seconds

  • untilinteger | null

    Unix timestamp in seconds

  • userNumberstring | null

Example request

curl "https://api.currentclient.com/api/v1/messages?contactNumber=%2B14155552671&limit=50" \
  -H "Authorization: Bearer $TOKEN"

Responses

200
Response fields
Example response
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "ArchiverIds": {},
      "ChannelType": "sms",
      "Comments": [
        {}
      ],
      "ContactId": "contact_9f3a2c",
      "ContactName": "Jane Doe",
      "ContactNumber": "+14155552671",
      "ConversationId": "conversation_9f3a2c",
      "CreatedTime": 1725321600,
      "CrmIds": {},
      "Direction": "SENT",
      "ErrorCode": null,
      "ErrorMessage": null,
      "IsIgnored": false,
      "IsSilenced": false,
      "LocalMessageId": "message_9f3a2c",
      "Message": "Hi Jane, your documents are ready to sign.",
      "MessageId": "message_9f3a2c",
      "MessageMediaItems": [
        {}
      ],
      "Meta": {},
      "SenderMemberId": "member_9f3a2c",
      "SenderName": "Jane Doe",
      "Status": "delivered",
      "Tags": [
        "client"
      ],
      "TwilioNumOfSegments": "string",
      "TwilioSid": "CA7f3e2b9c1d4a5e6f",
      "UndeliveredContactNumber": "+14155552671",
      "UserId": "user_9f3a2c",
      "UserNumber": "+14155550100",
      "WebhookUrlStatus": "string"
    }
  ]
}
POST/api/v1/messages/send

Send a message

Sends an outbound message from one of the caller's inboxes.

Use this when

Send a text from one of your inboxes. Use it for reminders, document notices, and any message your own system decides to send. The message shows up in the app like any other and is archived automatically.

Good to know

  • UserId comes from the profile endpoint and UserNumber must be a number from the inboxes endpoint. Both belong to the token's workspace.
  • Contacts who unsubscribed or were blocked are not messaged. The returned Status tells you what happened.
  • Pass setStatus=CLOSED when the message is a one-way notice you do not need a reply to, so it does not sit open in the inbox.

Recipes: Find your UserId and inbox numbers, Send a text message

Query parameters

  • setStatusenum | null
    OPENCLOSED

Request body application/json, required

  • ArchiverIdsany
  • ChannelTypeenum | null
    smswhatsapp
  • CommentsComment[] | null
  • ContactIdstring | null
  • ContactNamestring | null
  • ContactNumberstringrequired
  • ConversationIdstring | null
  • CrmIdsany
  • ErrorCodestring | null
  • ErrorMessagestring | null
  • IsIgnoredboolean | null
  • IsSilencedboolean | null
  • LocalMessageIdstring | null
  • Messagestring | null
  • MessageMediaItemsMediaItem[] | null
  • Metaany
  • SenderMemberIdstring | null
  • SenderNamestring | null
  • Tagsstring[] | null
  • UserIdstringrequired
  • UserNumberstring | null
Example body
{
  "UserId": "user_9f3a2c",
  "UserNumber": "+14155550100",
  "ContactNumber": "+14155552671",
  "Message": "Hi Jane, your documents are ready to sign. Reply here with any questions.",
  "Tags": [
    "documents"
  ]
}

Example request

curl -X POST "https://api.currentclient.com/api/v1/messages/send" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "UserId": "user_9f3a2c",
  "UserNumber": "+14155550100",
  "ContactNumber": "+14155552671",
  "Message": "Hi Jane, your documents are ready to sign. Reply here with any questions.",
  "Tags": [
    "documents"
  ]
}'

Responses

200
Response fields
  • ArchiverIdsmap | null

    Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType

  • ChannelTypeenum | null

    Type of the communication channel

    smswhatsapp
  • CommentsMessageComment[] | null

    Comments about the message

  • ContactIdstring | null

    Id of the contact for outbounds

  • ContactNamestring | null

    Name of the contact for quick reference

  • ContactNumberstring | null

    Phone with a leading +1 or a short code

  • ConversationIdstring | null

    A Twilio conversation ID or our number TO number format

  • CreatedTimeinteger | null
  • CrmIdsmap | null

    Dictionary to store CRM ids - key is CrmId, value is CrmType

  • Directionenum | null

    Direction of the message, whether it was sent or received

    SENTRECEIVED
  • ErrorCodestring | null
  • ErrorMessagestring | null
  • IsIgnoredboolean | null
  • IsSilencedboolean | null
  • LocalMessageIdstring | null
  • Messagestring | null

    Field of message to send

  • MessageIdstringrequired
  • MessageMediaItemsMessageMediaItem[] | null

    Media to include in message

  • Metamap | null

    Key values of meta data for this message, will be published as attributes to topic on callbacks

  • SenderMemberIdstring | null

    Member id for the sender

  • SenderNamestring | null

    Name of the Sender for quick reference

  • Statusenum | null

    Status of the message

    createdreadyblockednumberunsubscribercannotrouteerrorinvalidnosmspresenderrorsenderrorunsubscribedaccepteddeliveredfailedqueuedreadsendingsentundeliveredreceivedreceiving
  • Tagsstring[] | null

    Tags for the message

  • TwilioNumOfSegmentsstring | null
  • TwilioSidstring | null
  • UndeliveredContactNumberstring | null

    For a group-conversation message, the specific participant number whose relay leg failed, resolved from Twilio's per-recipient onDeliveryUpdated ParticipantSid (PRO-6630/PRO-6632) since the message row's own ContactNumber can't name one recipient out of several. Unset for a 1:1 message, where ContactNumber already identifies the recipient, and unset if the participant lookup failed.

  • UserIdstring

    Id of the app user

  • UserNumberstring | null

    Number with a leading +1

  • WebhookUrlStatusstring | null
Example response
{
  "ArchiverIds": {},
  "ChannelType": "sms",
  "Comments": [
    {
      "Comment": "Client confirmed the meeting time.",
      "CreatedByUserId": "user_9f3a2c",
      "CreatedByUserName": "Jane Doe",
      "CreatedTime": "2026-09-03T14:30:00Z",
      "MessageCommentId": "comment_9f3a2c",
      "UpdatedAt": "2026-09-03T14:30:00Z"
    }
  ],
  "ContactId": "contact_9f3a2c",
  "ContactName": "Jane Doe",
  "ContactNumber": "+14155552671",
  "ConversationId": "conversation_9f3a2c",
  "CreatedTime": 1725321600,
  "CrmIds": {},
  "Direction": "SENT",
  "ErrorCode": null,
  "ErrorMessage": null,
  "IsIgnored": false,
  "IsSilenced": false,
  "LocalMessageId": "message_9f3a2c",
  "Message": "Hi Jane, your documents are ready to sign.",
  "MessageId": "message_9f3a2c",
  "MessageMediaItems": [
    {
      "ChatServiceId": "service_9f3a2c",
      "FileName": "statement.jpg",
      "MediaId": "media_9f3a2c",
      "MediaType": "image/jpeg",
      "MediaUrl": "https://media.currentclient.com/att_8x2k4m.jpg"
    }
  ],
  "Meta": {},
  "SenderMemberId": "member_9f3a2c",
  "SenderName": "Jane Doe",
  "Status": "delivered",
  "Tags": [
    "client"
  ],
  "TwilioNumOfSegments": "string",
  "TwilioSid": "CA7f3e2b9c1d4a5e6f",
  "UndeliveredContactNumber": "+14155552671",
  "UserId": "user_9f3a2c",
  "UserNumber": "+14155550100",
  "WebhookUrlStatus": "string"
}

Contacts

The people your team texts and calls. A contact can carry tags, custom fields, several numbers, and a household link. If a CRM sync is connected, the CRM stays the source of truth, so prefer updating there and let the sync bring changes in.

  • Create contacts from a form, a signup flow, or another system of record
  • Tag contacts so broadcasts and smart nudges can target them
  • Look up who a number belongs to before you act on a call or message
GET/api/v1/contacts/

List contacts

Get contact records

Use this when

Page through contacts, or narrow them with useFilter and saved segments. Good for syncing your list into another system or finding who a number belongs to.

Good to know

  • useFilter takes one or more Field:Operator:Value strings, for example Phone:eq:+14155552671 or Tags:contains:client. Operators: eq, ne, like, notlike, contains, notcontains, beginswith, isin, between, gt, gte, lt, lte, exists, notexists.
  • limit must be between 10 and 200.
  • versions returns the full edit history of every contact, which is much larger. Leave it off unless you need it.

Recipes: Create, tag, and find contacts, Page through results

Query parameters

  • cursorstring | null

    Pagination cursor provided by previous paginated response

  • limitinteger | null

    Pagination page size

    Default 100. 10 to 200

  • useFilterstring[] | null

    Filter results using Field:Operator:Value [ Regex: ([A-Za-z0-9:]+):(eq|ne|like|notlike|contains|beginswith|isin|between|notcontains|gt|gte|lt|lte|exists|notexists):([\w\d\s.,_@/#&+-]*) ]

  • userIdstring | nullAdmin only

    Id for the owner of the resource

  • useSegmentstring | null

    Segment results based on the saved segment using the provided segment ID

  • versionsboolean | null

    Return all versions of all contacts

Example request

curl "https://api.currentclient.com/api/v1/contacts/?useFilter=Tags%3Acontains%3Aclient&limit=50" \
  -H "Authorization: Bearer $TOKEN"

Responses

200Successful Response
Response fields
Example response
{
  "meta": {
    "calls": 0,
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "limit": 0,
    "stats": [
      {}
    ],
    "total": 0
  },
  "records": [
    {
      "Address1": "100 Market St",
      "Address2": "Suite 400",
      "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
      "BirthDate": "1975-04-12",
      "City": "San Francisco",
      "ContactId": "contact_9f3a2c",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "CustomFields": {},
      "Email": "jane@example.com",
      "EnrichCallerName": "Jane Doe",
      "EnrichCallerType": "consumer",
      "EnrichLookupAt": "2026-09-03T14:30:00Z",
      "EnrichMeta": {},
      "FirstName": "Jane",
      "HouseholdId": "household_9f3a2c",
      "HouseholdName": "Jane Doe",
      "HouseholdTitle": "The Doe household",
      "IsArchived": false,
      "LastContactedTime": "2026-09-03T14:30:00Z",
      "LastName": "Doe",
      "LastSubmittedTime": "2026-09-03T14:30:00Z",
      "LastSyncTime": "2026-09-03T14:30:00Z",
      "MiddleName": "Q",
      "Nickname": "Janie",
      "NumberCarrierName": "Jane Doe",
      "NumberCarrierType": "mobile",
      "NumberLookupAt": "2026-09-03T14:30:00Z",
      "NumberMeta": {},
      "Numbers": [
        {}
      ],
      "OwnerId": "owner_9f3a2c",
      "OwnerSourceId": "source_9f3a2c",
      "OwnerSourceName": "Jane Doe",
      "Phone": "+14155552671",
      "SourceId": "source_9f3a2c",
      "SourceMeta": {},
      "SourceSyncFlow": "string",
      "SourceType": "wealthbox",
      "State": "CA",
      "Tags": [
        "client"
      ],
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UploadId": "upload_9f3a2c",
      "UserId": "user_9f3a2c",
      "Version": 0,
      "Versions": [
        {}
      ],
      "Zip": "94107"
    }
  ]
}
400Invalid user request
Example response
{
  "detail": "A message for why the request is invalid"
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}
500Server error
Example response
{
  "detail": "A message for why the server failed"
}
POST/api/v1/contacts/

Create contacts

Create contact record

Use this when

Add one or many contacts in a single request. The body is always an array, even for one contact.

Good to know

  • FirstName, LastName, and Phone are required. Phone should be E.164, for example +14155552671.
  • isVerifyNumbers=true looks up each number's carrier and type so you know whether it can receive texts.
  • If a CRM sync is connected, consider creating the contact in the CRM instead so the two never disagree.

Recipes: Create, tag, and find contacts

Query parameters

  • isVerifyNumbersboolean | null

    Default false

  • syncboolean | null
  • userIdstring | nullAdmin only

    Id for the owner of the resource

Request body application/json, required

Array of ContactCreate

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestringrequired
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestringrequired
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestringrequired
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UploadIdstring | integer | null
  • Zipstring | null
Example body
[
  {
    "FirstName": "Jane",
    "LastName": "Doe",
    "Phone": "+14155552671",
    "Email": "jane@example.com",
    "Tags": [
      "client",
      "retirement"
    ]
  }
]

Example request

curl -X POST "https://api.currentclient.com/api/v1/contacts/?isVerifyNumbers=true" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
  {
    "FirstName": "Jane",
    "LastName": "Doe",
    "Phone": "+14155552671",
    "Email": "jane@example.com",
    "Tags": [
      "client",
      "retirement"
    ]
  }
]'

Responses

200Successful Response
Response fields

Array of Contact-Output

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • ContactIdstringrequired
  • CreatedAtstringrequired
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestringrequired
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestringrequired
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestringrequired
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UpdatedAtstring | null
  • UploadIdstring | integer | null
  • UserIdstringrequired
  • Versionintegerrequired
  • VersionsContactVersion[] | null
  • Zipstring | null
Example response
[
  {
    "Address1": "100 Market St",
    "Address2": "Suite 400",
    "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
    "BirthDate": "1975-04-12",
    "City": "San Francisco",
    "ContactId": "contact_9f3a2c",
    "CreatedAt": "2026-09-03T14:30:00Z",
    "CustomFields": {},
    "Email": "jane@example.com",
    "EnrichCallerName": "Jane Doe",
    "EnrichCallerType": "consumer",
    "EnrichLookupAt": "2026-09-03T14:30:00Z",
    "EnrichMeta": {},
    "FirstName": "Jane",
    "HouseholdId": "household_9f3a2c",
    "HouseholdName": "Jane Doe",
    "HouseholdTitle": "The Doe household",
    "IsArchived": false,
    "LastContactedTime": "2026-09-03T14:30:00Z",
    "LastName": "Doe",
    "LastSubmittedTime": "2026-09-03T14:30:00Z",
    "LastSyncTime": "2026-09-03T14:30:00Z",
    "MiddleName": "Q",
    "Nickname": "Janie",
    "NumberCarrierName": "Jane Doe",
    "NumberCarrierType": "mobile",
    "NumberLookupAt": "2026-09-03T14:30:00Z",
    "NumberMeta": {},
    "Numbers": [
      {
        "IsDoNotContact": false,
        "IsPreferred": true,
        "Label": "Mobile",
        "Meta": {},
        "Phone": "+14155552671"
      }
    ],
    "OwnerId": "owner_9f3a2c",
    "OwnerSourceId": "source_9f3a2c",
    "OwnerSourceName": "Jane Doe",
    "Phone": "+14155552671",
    "SourceId": "source_9f3a2c",
    "SourceMeta": {},
    "SourceSyncFlow": "string",
    "SourceType": "wealthbox",
    "State": "CA",
    "Tags": [
      "client"
    ],
    "UpdatedAt": "2026-09-03T14:30:00Z",
    "UploadId": "upload_9f3a2c",
    "UserId": "user_9f3a2c",
    "Version": 0,
    "Versions": [
      {
        "Address1": "100 Market St",
        "Address2": "Suite 400",
        "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
        "BirthDate": "1975-04-12",
        "City": "San Francisco",
        "CreatedAt": "2026-09-03T14:30:00Z",
        "CustomFields": {},
        "Email": "jane@example.com",
        "EnrichCallerName": "Jane Doe",
        "EnrichCallerType": "consumer",
        "EnrichLookupAt": "2026-09-03T14:30:00Z",
        "EnrichMeta": {},
        "FirstName": "Jane",
        "HouseholdId": "household_9f3a2c",
        "HouseholdName": "Jane Doe",
        "HouseholdTitle": "The Doe household",
        "IsArchived": false,
        "LastContactedTime": "2026-09-03T14:30:00Z",
        "LastName": "Doe",
        "LastSubmittedTime": "2026-09-03T14:30:00Z",
        "LastSyncTime": "2026-09-03T14:30:00Z",
        "MiddleName": "Q",
        "Nickname": "Janie",
        "NumberCarrierName": "Jane Doe",
        "NumberCarrierType": "mobile",
        "NumberLookupAt": "2026-09-03T14:30:00Z",
        "NumberMeta": {},
        "Numbers": [],
        "OwnerId": "owner_9f3a2c",
        "OwnerSourceId": "source_9f3a2c",
        "OwnerSourceName": "Jane Doe",
        "Phone": "+14155552671",
        "SourceId": "source_9f3a2c",
        "SourceMeta": {},
        "SourceSyncFlow": "string",
        "SourceType": "wealthbox",
        "State": "CA",
        "Tags": [],
        "UpdatedAt": "2026-09-03T14:30:00Z",
        "UploadId": "upload_9f3a2c",
        "Version": 0,
        "Zip": "94107"
      }
    ],
    "Zip": "94107"
  }
]
400Invalid user request
Example response
{
  "detail": "A message for why the request is invalid"
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}
500Server error
Example response
{
  "detail": "A message for why the server failed"
}
GET/api/v1/contacts/{id}

Get a contact

Get contact record

Use this when

Fetch one contact by its ContactId, for example the ContactId on a call or message record.

Good to know

  • Set versions=true to include the contact's edit history.

Recipes: Create, tag, and find contacts

Path parameters

  • idstringin pathrequired

Query parameters

  • teamMemberUserIdstring | nullAdmin only

    Team Member User Id for the owner of the resource

  • userIdstring | nullAdmin only

    Id for the owner of the resource

  • versionsboolean | null

    Include all the versions for the contact

Example request

curl "https://api.currentclient.com/api/v1/contacts/cnt_9f3a2c" \
  -H "Authorization: Bearer $TOKEN"

Responses

200Successful Response
Response fields
  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • ContactIdstringrequired
  • CreatedAtstringrequired
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestringrequired
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestringrequired
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestringrequired
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UpdatedAtstring | null
  • UploadIdstring | integer | null
  • UserIdstringrequired
  • Versionintegerrequired
  • VersionsContactVersion[] | null
  • Zipstring | null
Example response
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "ContactId": "contact_9f3a2c",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UpdatedAt": "2026-09-03T14:30:00Z",
  "UploadId": "upload_9f3a2c",
  "UserId": "user_9f3a2c",
  "Version": 0,
  "Versions": [
    {
      "Address1": "100 Market St",
      "Address2": "Suite 400",
      "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
      "BirthDate": "1975-04-12",
      "City": "San Francisco",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "CustomFields": {},
      "Email": "jane@example.com",
      "EnrichCallerName": "Jane Doe",
      "EnrichCallerType": "consumer",
      "EnrichLookupAt": "2026-09-03T14:30:00Z",
      "EnrichMeta": {},
      "FirstName": "Jane",
      "HouseholdId": "household_9f3a2c",
      "HouseholdName": "Jane Doe",
      "HouseholdTitle": "The Doe household",
      "IsArchived": false,
      "LastContactedTime": "2026-09-03T14:30:00Z",
      "LastName": "Doe",
      "LastSubmittedTime": "2026-09-03T14:30:00Z",
      "LastSyncTime": "2026-09-03T14:30:00Z",
      "MiddleName": "Q",
      "Nickname": "Janie",
      "NumberCarrierName": "Jane Doe",
      "NumberCarrierType": "mobile",
      "NumberLookupAt": "2026-09-03T14:30:00Z",
      "NumberMeta": {},
      "Numbers": [
        {}
      ],
      "OwnerId": "owner_9f3a2c",
      "OwnerSourceId": "source_9f3a2c",
      "OwnerSourceName": "Jane Doe",
      "Phone": "+14155552671",
      "SourceId": "source_9f3a2c",
      "SourceMeta": {},
      "SourceSyncFlow": "string",
      "SourceType": "wealthbox",
      "State": "CA",
      "Tags": [
        "client"
      ],
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UploadId": "upload_9f3a2c",
      "Version": 0,
      "Zip": "94107"
    }
  ],
  "Zip": "94107"
}
400Invalid user request
Example response
{
  "detail": "A message for why the request is invalid"
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}
500Server error
Example response
{
  "detail": "A message for why the server failed"
}
PUT/api/v1/contacts/{id}

Update a contact

Update contact record

Use this when

Change fields on an existing contact. Send only the fields you want to change; everything else is left alone.

Good to know

  • Tags are replaced by default. Pass isAddTag=true to add to the existing tags instead.
  • Every update creates a new version unless inPlace=true.

Recipes: Create, tag, and find contacts

Path parameters

  • idstringin pathrequired

Query parameters

  • connectSyncboolean | null

    Update the record in place with the sync info, dont version it

    Default false

  • inPlaceboolean | null

    Update the record in place, dont version it

    Default false

  • isAddTagboolean | null

    Add the tags, dont replace

    Default false

  • userIdstring | nullAdmin only

    Id for the owner of the resource

Request body application/json, required

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestring | null
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestring | null
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestring | null
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UploadIdstring | integer | null
  • Zipstring | null
Example body
{
  "Tags": [
    "reviewed-2026"
  ],
  "Nickname": "Janie"
}

Example request

curl -X PUT "https://api.currentclient.com/api/v1/contacts/cnt_9f3a2c?isAddTag=true" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "Tags": [
    "reviewed-2026"
  ],
  "Nickname": "Janie"
}'

Responses

200Successful Response
Response fields
  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestring | null
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestring | null
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestring | null
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UploadIdstring | integer | null
  • Zipstring | null
Example response
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UploadId": "upload_9f3a2c",
  "Zip": "94107"
}
400Invalid user request
Example response
{
  "detail": "A message for why the request is invalid"
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}
500Server error
Example response
{
  "detail": "A message for why the server failed"
}

Inboxes

An inbox is a phone number plus everything attached to it: business hours, auto-replies, the recording and transcription switches, and who is in the ring group. The numbers you can send from all come from here.

  • Find the numbers your token is allowed to send from
  • Check whether recording or transcription is on before relying on those fields on calls
GET/api/v1/inboxes/

List inboxes

Get list of inboxes

Use this when

Discover the phone numbers your token can send from and how each one is configured. Run this once and cache the Number values.

Good to know

  • showWorkspace=true returns every inbox in the workspace, not just the ones assigned to the token's user.
  • IsEnableAutoRecordCalls and IsEnableCallTranscription tell you whether call records from this inbox will carry recordings and transcripts.

Recipes: Find your UserId and inbox numbers

Query parameters

  • cursorstring | null

    Pagination cursor provided by previous paginated response

  • showHiddenboolean

    Show hidden inboxes

    Default false

  • showMutedboolean

    Show muted inboxes

    Default true

  • showWorkspaceboolean

    Show inboxes for the entire workspace

    Default false

  • teamMemberUserIdstring | nullAdmin only

    Team Member User Id for the owner of the resource

  • userIdstring | nullAdmin only

    Id for the owner of the resource

  • workspaceIdstring | null

    Workspace Id to get data for

Example request

curl "https://api.currentclient.com/api/v1/inboxes/?showWorkspace=true" \
  -H "Authorization: Bearer $TOKEN"

Responses

200Successful Response
Response fields
Example response
{
  "meta": {
    "calls": 0,
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "limit": 0,
    "stats": [
      {}
    ],
    "total": 0
  },
  "records": [
    {
      "BusinessSchedule": [
        {}
      ],
      "BusinessTimezone": "America/Los_Angeles",
      "CallRingDuration": "15",
      "CallRingOrderType": "string",
      "CallTeamMemberIds": [
        "member_9f3a2c"
      ],
      "CallflowId": "callflow_9f3a2c",
      "ComplianceMessage": "You can call or text us at this number. Primarily, you can expect to receive brief news and updates from us. Msg & data rates may apply. Reply STOP to opt-out anytime. Questions? You are welcome to reply.",
      "ComplianceVCardId": "card_9f3a2c",
      "Dialplan": "string",
      "ForwardingTimeout": 20,
      "ForwardingVoicemailMode": "DESTINATION",
      "GreetingAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
      "HiddenFor": [
        "string"
      ],
      "InboundType": "RING",
      "IsComplianceAutoSuppress": false,
      "IsComplianceEnabled": false,
      "IsDropCallerId": false,
      "IsEnableAutoIncomingMessage": false,
      "IsEnableAutoMissedCall": false,
      "IsEnableAutoOutOfOfficeIncomingMessage": false,
      "IsEnableAutoOutOfOfficeMissedCall": false,
      "IsEnableAutoOutsideHoursIncomingMessage": false,
      "IsEnableAutoOutsideHoursMissedCall": false,
      "IsEnableAutoRecordCalls": true,
      "IsEnableBusinessHours": false,
      "IsEnableCallSummary": true,
      "IsEnableCallTranscription": true,
      "IsEnableFilterProfanity": false,
      "IsEnableForwardCall": false,
      "IsEnableGreeting": false,
      "IsEnablePhoneMenu": false,
      "IsEnableRecordGreeting": false,
      "IsEnableRecordingAnnouncement": false,
      "IsEnableTranscribeVoicemail": false,
      "IsSmsHosting": false,
      "MutedFor": [
        "string"
      ],
      "Name": "Jane Doe",
      "Number": "+14155550100",
      "NumberForwardTo": "+14155550100",
      "OrgA2pId": "p_9f3a2c",
      "OrgA2pStatus": "PORTING_IN",
      "OutOfOfficeEndDate": "2026-09-03T14:30:00Z",
      "OutOfOfficeEndTime": "2026-09-03T14:30:00Z",
      "OutOfOfficeStartDate": "2026-09-03T14:30:00Z",
      "OutOfOfficeStartTime": "2026-09-03T14:30:00Z",
      "OutsideHoursVoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
      "Permissions": {},
      "RecordingAnnouncementPromptRef": "string",
      "SkipTeamMemberIds": [
        "member_9f3a2c"
      ],
      "Symbol": "JD",
      "TeamMemberId": "member_9f3a2c",
      "TextAutoAutoOutsideHoursMissedCall": "string",
      "TextAutoIncomingMessage": "string",
      "TextAutoMissedCall": "string",
      "TextAutoOutOfOfficeIncomingMessage": "string",
      "TextAutoOutOfOfficeMissedCall": "string",
      "TextAutoOutsideHoursIncomingMessage": "string",
      "UserId": "user_9f3a2c",
      "VoiceProvider": "twilio",
      "VoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3"
    }
  ]
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}

Profile

The account behind your token. This is where you get the UserId and workspace details that other calls need.

GET/api/v1/profile

Get your profile

Get user profile record

Use this when

The first call to make with a new token. It confirms the token works and returns the UserId that sending a message requires.

Recipes: Get an access token, Find your UserId and inbox numbers

Query parameters

  • userIdstring | nullAdmin only

    Id for the owner of the user

Example request

curl "https://api.currentclient.com/api/v1/profile" \
  -H "Authorization: Bearer $TOKEN"

Responses

200Successful Response
Response fields
  • AddOnProductIdsstring[] | null
  • Address1string | null
  • Address2string | null
  • AdminBrandImageUrlstring | null
  • AdminEmailstring | null
  • AdminFirstNamestring | null
  • AdminImageUrlstring | null
  • AdminLastNamestring | null
  • BillingBilling | null
  • Biostring | null
  • BrandImageUrlstring | null
  • Citystring | null
  • CompanyNamestring | null
  • CompanyWebsiteUrlstring | null
  • CreatedAtstring | null
  • Crmstring | null
  • Emailstring | null
  • ExternalConnectorIdstring | null
  • ExternalDataExternalDataWealthBox | null
  • ExternalIdstring | null
  • ExternalLastUpdatedinteger | null
  • ExternalTypeenum | null

    Types for external data

    WEALTHBOXSLANTAGENCYBLOCAGENTCOREHUBSPOTMEDICAREPROPRACTIFIQUIVRSALESFORCERADIUSBOBREDTAILXLR8
  • FirstNamestring | null
  • Industrystring | null
  • IsActiveboolean | null
  • IsAllowAiContactCreateboolean | null
  • IsDeleteRequestedboolean | null
  • IsFreeboolean | null
  • IsGovernorboolean | null
  • IsHasCrmSyncboolean | null
  • IsManagedBillingboolean | null
  • IsTeamMemberboolean | null
  • IsUserboolean | null
  • JobTitlestring | null
  • LastNamestring | null
  • LegalDisclosurestring | null
  • MessagingServiceIdstring | null
  • MilestonesMilestones | null
  • NetworkEnrolledAtstring | null
  • NetworkIdstring | null
  • OrganizationIdstring | null
  • Phonestring | null
  • PlanProductIdstring | null
  • RegisteredNumberRegisteredNumber | null
  • SourceAttributionstring | null
  • Statestring | null
  • TeamMemberUserIdstring | null
  • UserIdstringrequired
  • WorkspaceIdstring | null
  • WorkspaceNamestring | null
  • Zipstring | null
Example response
{
  "AddOnProductIds": [
    "product_9f3a2c"
  ],
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AdminBrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "AdminEmail": "jane@example.com",
  "AdminFirstName": "Jane",
  "AdminImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "AdminLastName": "Doe",
  "Billing": {
    "AddonIds": [
      "addon_9f3a2c"
    ],
    "AddonNames": [
      "Jane Doe"
    ],
    "BillingType": "string",
    "BundleIds": [
      "bundle_9f3a2c"
    ],
    "BundleNames": [
      "Jane Doe"
    ],
    "CancelAtTime": 1725321600,
    "CanceledAtTime": 1725321600,
    "CreatedTime": 1725321600,
    "PriceIds": [
      "price_9f3a2c"
    ],
    "ProductDescription": "string",
    "ProductId": "product_9f3a2c",
    "ProductName": "Jane Doe",
    "StripeCustomerId": "customer_9f3a2c",
    "SubscriptionId": "subscription_9f3a2c",
    "SubscriptionStatus": "active"
  },
  "Bio": "Helping families plan for what is next.",
  "BrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "City": "San Francisco",
  "CompanyName": "Acme Wealth Advisors",
  "CompanyWebsiteUrl": "https://example.com",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "Crm": "string",
  "Email": "jane@example.com",
  "ExternalConnectorId": "connector_9f3a2c",
  "ExternalData": {
    "Groups": [
      "string"
    ]
  },
  "ExternalId": "external_9f3a2c",
  "ExternalLastUpdated": 0,
  "ExternalType": "wealthbox",
  "FirstName": "Jane",
  "Industry": "Financial services",
  "IsActive": true,
  "IsAllowAiContactCreate": false,
  "IsDeleteRequested": false,
  "IsFree": false,
  "IsGovernor": false,
  "IsHasCrmSync": false,
  "IsManagedBilling": false,
  "IsTeamMember": false,
  "IsUser": true,
  "JobTitle": "Financial Advisor",
  "LastName": "Doe",
  "LegalDisclosure": "string",
  "MessagingServiceId": "service_9f3a2c",
  "Milestones": {
    "IsCompletedOnboarding": false
  },
  "NetworkEnrolledAt": "2026-09-03T14:30:00Z",
  "NetworkId": "network_9f3a2c",
  "OrganizationId": "organization_9f3a2c",
  "Phone": "+14155552671",
  "PlanProductId": "product_9f3a2c",
  "RegisteredNumber": {
    "AddressRequirements": "string",
    "Capabilities": {
      "IsMMSEnabled": false,
      "IsSMSEnabled": false,
      "IsVoiceEnabled": false
    },
    "DateCreated": "string",
    "DateUpdated": "string",
    "FriendlyName": "Jane Doe",
    "Origin": "string",
    "PhoneNumber": "string",
    "Sid": "CA7f3e2b9c1d4a5e6f",
    "SmsFallbackMethod": "string",
    "SmsFallbackUrl": "https://example.com",
    "SmsMethod": "string",
    "SmsUrl": "https://example.com",
    "Status": "string",
    "StatusCallback": "string",
    "StatusCallbackMethod": "string"
  },
  "SourceAttribution": "string",
  "State": "CA",
  "TeamMemberUserId": "user_9f3a2c",
  "UserId": "user_9f3a2c",
  "WorkspaceId": "workspace_9f3a2c",
  "WorkspaceName": "Acme Wealth Advisors",
  "Zip": "94107"
}
400Invalid user request
Example response
{
  "detail": "A message for why the request is invalid"
}
401Unauthorized request
Example response
{
  "detail": "A message for why the request is invalid"
}
403Unauthorized request
Example response
{
  "detail": "A message for why the request is invalid"
}
422Validation Error
Response fields
Example response
{
  "detail": [
    {
      "type": "string",
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string"
    }
  ]
}
500Server error
Example response
{
  "detail": "A message for why the server failed"
}

Team members

Everyone in the workspace, with role flags and contact details. Use it to turn the member ids on calls and messages back into people.

GET/api/v1/team-members

List team members

Returns the team members visible to the authenticated caller's workspace.

Use this when

Map the member ids that appear on calls and messages (AnsweredByMemberId, SenderMemberId) back to names and emails.

Good to know

  • Pass isActive=true to skip people who have left the workspace.

Query parameters

  • isActiveboolean | null

Example request

curl "https://api.currentclient.com/api/v1/team-members?isActive=true" \
  -H "Authorization: Bearer $TOKEN"

Responses

200
Response fields
Example response
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "Bio": "Helping families plan for what is next.",
      "BrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
      "CognitoUserId": "user_9f3a2c",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "Email": "jane@example.com",
      "ExternalConnectorId": "connector_9f3a2c",
      "ExternalData": {},
      "ExternalId": "external_9f3a2c",
      "ExternalLastUpdated": 0,
      "ExternalType": "wealthbox",
      "FirstName": "Jane",
      "IsActive": true,
      "IsAdmin": false,
      "IsFree": false,
      "IsGovernor": false,
      "IsInvited": false,
      "IsJoined": true,
      "IsMember": true,
      "IsXypnMember": false,
      "JobTitle": "Financial Advisor",
      "LastName": "Doe",
      "Phone": "+14155552671",
      "TeamMemberId": "member_9f3a2c",
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UserId": "user_9f3a2c"
    }
  ]
}

Models

The objects the endpoints above send and return. Field names are PascalCase throughout. A field marked nullable can come back as null.

Call

One phone call. Recording, transcript, and AI summary fields are filled in as those jobs finish, so a call fetched moments after it ends may still be missing them.

  • AgentInteractionsmap[] | null

    List of AI agent interactions on this call. Each entry contains agentId, conversationId, dialplanId, nextNodeId, and firmName.

  • AnsweredBystring | null

    Twilio AMD result for outbound calls: 'human', 'machine_start', 'machine_end_silence', 'machine_end_beep', 'machine_end_other', 'fax', or 'unknown'. None when AMD was not run.

  • AnsweredByMemberIdstring | null

    The id of the member that answered a call

  • ArchiverIdsmap | null

    Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType

  • CallAnalysisStatusenum | null

    Ai summary status of the call

    queuedprocessingcompletederror
  • CallAnalysisSummarystring | null

    Analysis generated for the call

  • CallAnalysisTranscriptstring | null

    Transcript generated for the call

  • CallDurationTimestring | null

    Time in seconds of the call

  • CallEndedTimeinteger | null

    The time the call ended

  • CallIdstringrequired
  • CallSidstring | null

    Specific call sid for the call, useful for twilio api

  • CallerMemberIdstring | null

    Member id for the caller

  • CallerNamestring | null

    Name of the caller for quick reference

  • CommentsCallComment[] | null

    Comments about the call

  • ContactIdstring | null

    Id of the contact for outbounds

  • ContactNamestring | null

    Name of the contact for quick reference

  • ContactNumberstring

    Phone number in E.164 format

  • CreatedTimeinteger | null
  • CrmIdsmap | null

    Dictionary to store CRM ids - key is CrmId, value is CrmType

  • Directionenum

    Direction of the call, whether it was outbound or inbound

    OUTBOUNDINBOUND
  • DispositionIdstring | null

    Workspace disposition assigned to this call (PRO-4164). Null until set; filterable via the calls list endpoint.

  • IsAgentCallboolean | null

    Whether an AI agent handled this call

  • IsForwardedboolean | null

    If the call is forwarded

  • IsMissedCallboolean | null

    Explicitly set to True when the call is confirmed missed by the application layer (is_done=True). Prevents premature missed-call notifications from intermediate DynamoDB stream events during parallel dial.

  • IsOutsideHoursboolean | null

    If the call is outside business hours

  • IsRecordedboolean | null

    If the call is recorded

  • IsVoicemailboolean | null

    True when this call was routed to voicemail

  • Metamap | null

    Key values of meta data for this call, will be published as attributes to topic on callbacks

  • Notestring | null

    Note about the call

  • NotetakerIdsmap | null

    Dictionary to store notetaker ids

  • NumberForwardedTostring | null

    If the call is forwarded, this is the number it went to

  • ParticipantsCallParticipant[]

    List of participants currently in the call

  • RecordingDurationTimestring | null

    Time in seconds of the call recording

  • RecordingSidstring | null

    Specific recording sid for the call, useful for twilio api

  • RecordingStatusenum | null

    Recording Status of the call

    in-progresscompletedabsent
  • RecordingUrlstring | null

    Url to the call recording

  • Statusenum

    Status of the call

    createdinitiatedringingin-progresstransferredblockedcompletedfailedbusyno-answercanceled
  • StatusCallSidstring | null

    The Twilio CallSid that produced the current StatusSequence.

  • StatusSequenceinteger | null

    Highest Twilio SequenceNumber processed for status updates. Stored as a DynamoDB N type for correct numeric comparison.

  • StatusWeightinteger | null

    Numeric weight of the current Status, used to prevent cross-CallSid status regressions.

  • Tagsstring[] | null

    Tags for the message

  • TranscriptionStatusstring | null

    Status of the transcription

  • TranscriptionTextstring | null

    Text of the voicemail

  • TransferredAtTimeinteger | null

    Epoch timestamp when the call was transferred

  • TransferredToMemberIdstring | null

    The id of the member that the call was transferred to

  • TransferredToNumberstring | null

    The phone number that the call was transferred to

  • UpdatedTimeinteger | null
  • UserIdstring

    Id of the app user

  • UserNumberstring

    Number with a leading +1

Example
{
  "AgentInteractions": [
    {}
  ],
  "AnsweredBy": "human",
  "AnsweredByMemberId": "member_9f3a2c",
  "ArchiverIds": {},
  "CallAnalysisStatus": "completed",
  "CallAnalysisSummary": "Jane asked about rolling over her 401(k). Agreed to send the transfer form.",
  "CallAnalysisTranscript": "Agent: Thanks for calling. Jane: Hi, I had a question about my 401(k).",
  "CallDurationTime": "184",
  "CallEndedTime": 1725321600,
  "CallId": "call_9f3a2c",
  "CallSid": "CA7f3e2b9c1d4a5e6f",
  "CallerMemberId": "member_9f3a2c",
  "CallerName": "Jane Doe",
  "Comments": [
    {
      "CallCommentId": "comment_9f3a2c",
      "Comment": "Client confirmed the meeting time.",
      "CreatedByUserId": "user_9f3a2c",
      "CreatedByUserName": "Jane Doe",
      "CreatedTime": 1725321600,
      "UpdatedAt": "2026-09-03T14:30:00Z"
    }
  ],
  "ContactId": "contact_9f3a2c",
  "ContactName": "Jane Doe",
  "ContactNumber": "+18008675309",
  "CreatedTime": 1725321600,
  "CrmIds": {},
  "Direction": "OUTBOUND",
  "DispositionId": "disposition_9f3a2c",
  "IsAgentCall": false,
  "IsForwarded": false,
  "IsMissedCall": false,
  "IsOutsideHours": false,
  "IsRecorded": true,
  "IsVoicemail": false,
  "Meta": {},
  "Note": "Follow up next week about the rollover.",
  "NotetakerIds": {},
  "NumberForwardedTo": "+14155552671",
  "Participants": [
    {
      "CallSid": "CA7f3e2b9c1d4a5e6f",
      "CallStatus": "connecting",
      "ContactId": "contact_9f3a2c",
      "Name": "Jane Doe",
      "Number": "+14155550100",
      "TeamMemberId": "member_9f3a2c",
      "Type": "contact"
    }
  ],
  "RecordingDurationTime": "184",
  "RecordingSid": "RE7f3e2b9c1d4a5e6f",
  "RecordingStatus": "completed",
  "RecordingUrl": "https://recordings.currentclient.com/RE7f3e2b9c1d4a5e6f.mp3",
  "Status": "completed",
  "StatusCallSid": "CA7f3e2b9c1d4a5e6f",
  "StatusSequence": 20,
  "StatusWeight": 0,
  "Tags": [
    "client"
  ],
  "TranscriptionStatus": "string",
  "TranscriptionText": "string",
  "TransferredAtTime": 1725321600,
  "TransferredToMemberId": "member_9f3a2c",
  "TransferredToNumber": "string",
  "UpdatedTime": 1725321600,
  "UserId": "1234-abcd-4567-ABCD",
  "UserNumber": "+18008675309"
}

Message

One text message, sent or received, with delivery status and any attached media.

  • ArchiverIdsmap | null

    Dictionary to store archiver ids - key is ArchiverId, value is ArchiverType

  • ChannelTypeenum | null

    Type of the communication channel

    smswhatsapp
  • CommentsMessageComment[] | null

    Comments about the message

  • ContactIdstring | null

    Id of the contact for outbounds

  • ContactNamestring | null

    Name of the contact for quick reference

  • ContactNumberstring | null

    Phone with a leading +1 or a short code

  • ConversationIdstring | null

    A Twilio conversation ID or our number TO number format

  • CreatedTimeinteger | null
  • CrmIdsmap | null

    Dictionary to store CRM ids - key is CrmId, value is CrmType

  • Directionenum | null

    Direction of the message, whether it was sent or received

    SENTRECEIVED
  • ErrorCodestring | null
  • ErrorMessagestring | null
  • IsIgnoredboolean | null
  • IsSilencedboolean | null
  • LocalMessageIdstring | null
  • Messagestring | null

    Field of message to send

  • MessageIdstringrequired
  • MessageMediaItemsMessageMediaItem[] | null

    Media to include in message

  • Metamap | null

    Key values of meta data for this message, will be published as attributes to topic on callbacks

  • SenderMemberIdstring | null

    Member id for the sender

  • SenderNamestring | null

    Name of the Sender for quick reference

  • Statusenum | null

    Status of the message

    createdreadyblockednumberunsubscribercannotrouteerrorinvalidnosmspresenderrorsenderrorunsubscribedaccepteddeliveredfailedqueuedreadsendingsentundeliveredreceivedreceiving
  • Tagsstring[] | null

    Tags for the message

  • TwilioNumOfSegmentsstring | null
  • TwilioSidstring | null
  • UndeliveredContactNumberstring | null

    For a group-conversation message, the specific participant number whose relay leg failed, resolved from Twilio's per-recipient onDeliveryUpdated ParticipantSid (PRO-6630/PRO-6632) since the message row's own ContactNumber can't name one recipient out of several. Unset for a 1:1 message, where ContactNumber already identifies the recipient, and unset if the participant lookup failed.

  • UserIdstring

    Id of the app user

  • UserNumberstring | null

    Number with a leading +1

  • WebhookUrlStatusstring | null
Example
{
  "ArchiverIds": {},
  "ChannelType": "sms",
  "Comments": [
    {
      "Comment": "Client confirmed the meeting time.",
      "CreatedByUserId": "user_9f3a2c",
      "CreatedByUserName": "Jane Doe",
      "CreatedTime": "2026-09-03T14:30:00Z",
      "MessageCommentId": "comment_9f3a2c",
      "UpdatedAt": "2026-09-03T14:30:00Z"
    }
  ],
  "ContactId": "contact_9f3a2c",
  "ContactName": "Jane Doe",
  "ContactNumber": "+14155552671",
  "ConversationId": "conversation_9f3a2c",
  "CreatedTime": 1725321600,
  "CrmIds": {},
  "Direction": "SENT",
  "ErrorCode": null,
  "ErrorMessage": null,
  "IsIgnored": false,
  "IsSilenced": false,
  "LocalMessageId": "message_9f3a2c",
  "Message": "Hi Jane, your documents are ready to sign.",
  "MessageId": "message_9f3a2c",
  "MessageMediaItems": [
    {
      "ChatServiceId": "service_9f3a2c",
      "FileName": "statement.jpg",
      "MediaId": "media_9f3a2c",
      "MediaType": "image/jpeg",
      "MediaUrl": "https://media.currentclient.com/att_8x2k4m.jpg"
    }
  ],
  "Meta": {},
  "SenderMemberId": "member_9f3a2c",
  "SenderName": "Jane Doe",
  "Status": "delivered",
  "Tags": [
    "client"
  ],
  "TwilioNumOfSegments": "string",
  "TwilioSid": "CA7f3e2b9c1d4a5e6f",
  "UndeliveredContactNumber": "+14155552671",
  "UserId": "user_9f3a2c",
  "UserNumber": "+14155550100",
  "WebhookUrlStatus": "string"
}

SendMessageRequest

Body for sending a message. Only ContactNumber and UserId are required; UserNumber picks the inbox to send from.

  • ArchiverIdsany
  • ChannelTypeenum | null
    smswhatsapp
  • CommentsComment[] | null
  • ContactIdstring | null
  • ContactNamestring | null
  • ContactNumberstringrequired
  • ConversationIdstring | null
  • CrmIdsany
  • ErrorCodestring | null
  • ErrorMessagestring | null
  • IsIgnoredboolean | null
  • IsSilencedboolean | null
  • LocalMessageIdstring | null
  • Messagestring | null
  • MessageMediaItemsMediaItem[] | null
  • Metaany
  • SenderMemberIdstring | null
  • SenderNamestring | null
  • Tagsstring[] | null
  • UserIdstringrequired
  • UserNumberstring | null
Example
{
  "ArchiverIds": {},
  "ChannelType": "sms",
  "Comments": [
    {
      "Comment": "Client confirmed the meeting time.",
      "CreatedByUserId": "user_9f3a2c",
      "CreatedByUserName": "Jane Doe",
      "CreatedTime": "2026-09-03T14:30:00Z",
      "MessageCommentId": "comment_9f3a2c",
      "UpdatedAt": "2026-09-03T14:30:00Z"
    }
  ],
  "ContactId": "contact_9f3a2c",
  "ContactName": "Jane Doe",
  "ContactNumber": "+14155552671",
  "ConversationId": "conversation_9f3a2c",
  "CrmIds": {},
  "ErrorCode": null,
  "ErrorMessage": null,
  "IsIgnored": false,
  "IsSilenced": false,
  "LocalMessageId": "message_9f3a2c",
  "Message": "Hi Jane, your documents are ready to sign.",
  "MessageMediaItems": [
    {
      "ChatServiceId": "service_9f3a2c",
      "FileName": "statement.jpg",
      "MediaId": "media_9f3a2c",
      "MediaType": "image/jpeg",
      "MediaUrl": "https://media.currentclient.com/att_8x2k4m.jpg"
    }
  ],
  "Meta": {},
  "SenderMemberId": "member_9f3a2c",
  "SenderName": "Jane Doe",
  "Tags": [
    "client"
  ],
  "UserId": "user_9f3a2c",
  "UserNumber": "+14155550100"
}

Contact-Output

A contact as returned by the API, including lookup and CRM sync metadata.

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • ContactIdstringrequired
  • CreatedAtstringrequired
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestringrequired
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestringrequired
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestringrequired
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UpdatedAtstring | null
  • UploadIdstring | integer | null
  • UserIdstringrequired
  • Versionintegerrequired
  • VersionsContactVersion[] | null
  • Zipstring | null
Example
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "ContactId": "contact_9f3a2c",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UpdatedAt": "2026-09-03T14:30:00Z",
  "UploadId": "upload_9f3a2c",
  "UserId": "user_9f3a2c",
  "Version": 0,
  "Versions": [
    {
      "Address1": "100 Market St",
      "Address2": "Suite 400",
      "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
      "BirthDate": "1975-04-12",
      "City": "San Francisco",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "CustomFields": {},
      "Email": "jane@example.com",
      "EnrichCallerName": "Jane Doe",
      "EnrichCallerType": "consumer",
      "EnrichLookupAt": "2026-09-03T14:30:00Z",
      "EnrichMeta": {},
      "FirstName": "Jane",
      "HouseholdId": "household_9f3a2c",
      "HouseholdName": "Jane Doe",
      "HouseholdTitle": "The Doe household",
      "IsArchived": false,
      "LastContactedTime": "2026-09-03T14:30:00Z",
      "LastName": "Doe",
      "LastSubmittedTime": "2026-09-03T14:30:00Z",
      "LastSyncTime": "2026-09-03T14:30:00Z",
      "MiddleName": "Q",
      "Nickname": "Janie",
      "NumberCarrierName": "Jane Doe",
      "NumberCarrierType": "mobile",
      "NumberLookupAt": "2026-09-03T14:30:00Z",
      "NumberMeta": {},
      "Numbers": [
        {}
      ],
      "OwnerId": "owner_9f3a2c",
      "OwnerSourceId": "source_9f3a2c",
      "OwnerSourceName": "Jane Doe",
      "Phone": "+14155552671",
      "SourceId": "source_9f3a2c",
      "SourceMeta": {},
      "SourceSyncFlow": "string",
      "SourceType": "wealthbox",
      "State": "CA",
      "Tags": [
        "client"
      ],
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UploadId": "upload_9f3a2c",
      "Version": 0,
      "Zip": "94107"
    }
  ],
  "Zip": "94107"
}

ContactCreate

Fields accepted when creating a contact.

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestringrequired
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestringrequired
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestringrequired
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UploadIdstring | integer | null
  • Zipstring | null
Example
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UploadId": "upload_9f3a2c",
  "Zip": "94107"
}

ContactUpdate

Fields accepted when updating a contact. All optional.

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestring | null
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestring | null
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestring | null
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UploadIdstring | integer | null
  • Zipstring | null
Example
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UploadId": "upload_9f3a2c",
  "Zip": "94107"
}

Inbox

A phone number and its settings.

  • BusinessSchedulemap[] | null
  • BusinessTimezonestring | null
  • CallRingDurationstring | null
  • CallRingOrderTypestring | null
  • CallTeamMemberIdsstring[] | null
  • CallflowIdstring | null
  • ComplianceMessagestring | null
  • ComplianceVCardIdstring | null
  • Dialplanstring | null
  • ForwardingTimeoutinteger
  • ForwardingVoicemailModeenum | null

    PRO-6628: which voicemail should win the race when a forwarded call goes unanswered. - DESTINATION (default, `None`/absent behaves identically): the forwarded-to number's own carrier voicemail. `ForwardingTimeout` is floored at `crud.MIN_FORWARD_RING_SEC` so that voicemail has a real chance to answer. - CURRENTCLIENT: CurrentClient's own voicemail. `ForwardingTimeout` is passed through unfloored so a short ring lets it win instead.

    DESTINATIONCURRENTCLIENT
  • GreetingAudioUrlstring | null
  • HiddenForstring[] | null
  • InboundTypeenum | null

    Determines how incoming calls are handled for this inbox: - RING: Ring the team members in the app - FORWARD: Forward the call to an external number - DIALPLAN: Route through a custom dial plan

    RINGFORWARDDIALPLAN
  • IsComplianceAutoSuppressboolean | null
  • IsComplianceEnabledboolean | null
  • IsDropCallerIdboolean | null
  • IsEnableAutoIncomingMessageboolean | null
  • IsEnableAutoMissedCallboolean | null
  • IsEnableAutoOutOfOfficeIncomingMessageboolean | null
  • IsEnableAutoOutOfOfficeMissedCallboolean | null
  • IsEnableAutoOutsideHoursIncomingMessageboolean | null
  • IsEnableAutoOutsideHoursMissedCallboolean | null
  • IsEnableAutoRecordCallsboolean | null
  • IsEnableBusinessHoursboolean | null
  • IsEnableCallSummaryboolean | null
  • IsEnableCallTranscriptionboolean | null
  • IsEnableFilterProfanityboolean | null
  • IsEnableForwardCallboolean | null
  • IsEnableGreetingboolean | null
  • IsEnablePhoneMenuboolean | null
  • IsEnableRecordGreetingboolean | null
  • IsEnableRecordingAnnouncementboolean | null
  • IsEnableTranscribeVoicemailboolean | null
  • IsSmsHostingboolean | null
  • MutedForstring[] | null
  • Namestring | null
  • Numberstringrequired
  • NumberForwardTostring | null
  • OrgA2pIdstring | null
  • OrgA2pStatusenum | string | null
  • OutOfOfficeEndDatestring | null
  • OutOfOfficeEndTimestring | null
  • OutOfOfficeStartDatestring | null
  • OutOfOfficeStartTimestring | null
  • OutsideHoursVoicemailAudioUrlstring | null
  • PermissionsPermissionSettings | null
  • RecordingAnnouncementPromptRefstring | null
  • SkipTeamMemberIdsstring[] | null
  • Symbolstring | null
  • TeamMemberIdstring | null
  • TextAutoAutoOutsideHoursMissedCallstring | null
  • TextAutoIncomingMessagestring | null
  • TextAutoMissedCallstring | null
  • TextAutoOutOfOfficeIncomingMessagestring | null
  • TextAutoOutOfOfficeMissedCallstring | null
  • TextAutoOutsideHoursIncomingMessagestring | null
  • UserIdstring | null
  • VoiceProviderenum

    PRO-7115: which voice stack places and receives calls for THIS inbox. Per inbox, deliberately not per workspace: one workspace has to be able to run a Twilio inbox and a CC SIP inbox side by side, both live in the same session. Values are lowercase, unlike the ALL-CAPS `InboundTypeEnum` / `ForwardingVoicemailModeEnum` above. That is not a style slip: cc-app-core passes this string verbatim from `resolveProviderConfig` into `createVoiceDriver`, whose registered driver ids are lowercase (`registerVoiceDriver('twilio', ...)`), and there is no normalization seam between the two. An ALL-CAPS value here would raise UnknownVoiceProviderError in the client.

    twiliosip
  • VoicemailAudioUrlstring | null
Example
{
  "BusinessSchedule": [
    {}
  ],
  "BusinessTimezone": "America/Los_Angeles",
  "CallRingDuration": "15",
  "CallRingOrderType": "string",
  "CallTeamMemberIds": [
    "member_9f3a2c"
  ],
  "CallflowId": "callflow_9f3a2c",
  "ComplianceMessage": "You can call or text us at this number. Primarily, you can expect to receive brief news and updates from us. Msg & data rates may apply. Reply STOP to opt-out anytime. Questions? You are welcome to reply.",
  "ComplianceVCardId": "card_9f3a2c",
  "Dialplan": "string",
  "ForwardingTimeout": 20,
  "ForwardingVoicemailMode": "DESTINATION",
  "GreetingAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
  "HiddenFor": [
    "string"
  ],
  "InboundType": "RING",
  "IsComplianceAutoSuppress": false,
  "IsComplianceEnabled": false,
  "IsDropCallerId": false,
  "IsEnableAutoIncomingMessage": false,
  "IsEnableAutoMissedCall": false,
  "IsEnableAutoOutOfOfficeIncomingMessage": false,
  "IsEnableAutoOutOfOfficeMissedCall": false,
  "IsEnableAutoOutsideHoursIncomingMessage": false,
  "IsEnableAutoOutsideHoursMissedCall": false,
  "IsEnableAutoRecordCalls": true,
  "IsEnableBusinessHours": false,
  "IsEnableCallSummary": true,
  "IsEnableCallTranscription": true,
  "IsEnableFilterProfanity": false,
  "IsEnableForwardCall": false,
  "IsEnableGreeting": false,
  "IsEnablePhoneMenu": false,
  "IsEnableRecordGreeting": false,
  "IsEnableRecordingAnnouncement": false,
  "IsEnableTranscribeVoicemail": false,
  "IsSmsHosting": false,
  "MutedFor": [
    "string"
  ],
  "Name": "Jane Doe",
  "Number": "+14155550100",
  "NumberForwardTo": "+14155550100",
  "OrgA2pId": "p_9f3a2c",
  "OrgA2pStatus": "PORTING_IN",
  "OutOfOfficeEndDate": "2026-09-03T14:30:00Z",
  "OutOfOfficeEndTime": "2026-09-03T14:30:00Z",
  "OutOfOfficeStartDate": "2026-09-03T14:30:00Z",
  "OutOfOfficeStartTime": "2026-09-03T14:30:00Z",
  "OutsideHoursVoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
  "Permissions": {
    "Editors": [
      "string"
    ],
    "Viewers": [
      "string"
    ]
  },
  "RecordingAnnouncementPromptRef": "string",
  "SkipTeamMemberIds": [
    "member_9f3a2c"
  ],
  "Symbol": "JD",
  "TeamMemberId": "member_9f3a2c",
  "TextAutoAutoOutsideHoursMissedCall": "string",
  "TextAutoIncomingMessage": "string",
  "TextAutoMissedCall": "string",
  "TextAutoOutOfOfficeIncomingMessage": "string",
  "TextAutoOutOfOfficeMissedCall": "string",
  "TextAutoOutsideHoursIncomingMessage": "string",
  "UserId": "user_9f3a2c",
  "VoiceProvider": "twilio",
  "VoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3"
}

UserProfile

The account behind the token.

  • AddOnProductIdsstring[] | null
  • Address1string | null
  • Address2string | null
  • AdminBrandImageUrlstring | null
  • AdminEmailstring | null
  • AdminFirstNamestring | null
  • AdminImageUrlstring | null
  • AdminLastNamestring | null
  • BillingBilling | null
  • Biostring | null
  • BrandImageUrlstring | null
  • Citystring | null
  • CompanyNamestring | null
  • CompanyWebsiteUrlstring | null
  • CreatedAtstring | null
  • Crmstring | null
  • Emailstring | null
  • ExternalConnectorIdstring | null
  • ExternalDataExternalDataWealthBox | null
  • ExternalIdstring | null
  • ExternalLastUpdatedinteger | null
  • ExternalTypeenum | null

    Types for external data

    WEALTHBOXSLANTAGENCYBLOCAGENTCOREHUBSPOTMEDICAREPROPRACTIFIQUIVRSALESFORCERADIUSBOBREDTAILXLR8
  • FirstNamestring | null
  • Industrystring | null
  • IsActiveboolean | null
  • IsAllowAiContactCreateboolean | null
  • IsDeleteRequestedboolean | null
  • IsFreeboolean | null
  • IsGovernorboolean | null
  • IsHasCrmSyncboolean | null
  • IsManagedBillingboolean | null
  • IsTeamMemberboolean | null
  • IsUserboolean | null
  • JobTitlestring | null
  • LastNamestring | null
  • LegalDisclosurestring | null
  • MessagingServiceIdstring | null
  • MilestonesMilestones | null
  • NetworkEnrolledAtstring | null
  • NetworkIdstring | null
  • OrganizationIdstring | null
  • Phonestring | null
  • PlanProductIdstring | null
  • RegisteredNumberRegisteredNumber | null
  • SourceAttributionstring | null
  • Statestring | null
  • TeamMemberUserIdstring | null
  • UserIdstringrequired
  • WorkspaceIdstring | null
  • WorkspaceNamestring | null
  • Zipstring | null
Example
{
  "AddOnProductIds": [
    "product_9f3a2c"
  ],
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AdminBrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "AdminEmail": "jane@example.com",
  "AdminFirstName": "Jane",
  "AdminImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "AdminLastName": "Doe",
  "Billing": {
    "AddonIds": [
      "addon_9f3a2c"
    ],
    "AddonNames": [
      "Jane Doe"
    ],
    "BillingType": "string",
    "BundleIds": [
      "bundle_9f3a2c"
    ],
    "BundleNames": [
      "Jane Doe"
    ],
    "CancelAtTime": 1725321600,
    "CanceledAtTime": 1725321600,
    "CreatedTime": 1725321600,
    "PriceIds": [
      "price_9f3a2c"
    ],
    "ProductDescription": "string",
    "ProductId": "product_9f3a2c",
    "ProductName": "Jane Doe",
    "StripeCustomerId": "customer_9f3a2c",
    "SubscriptionId": "subscription_9f3a2c",
    "SubscriptionStatus": "active"
  },
  "Bio": "Helping families plan for what is next.",
  "BrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "City": "San Francisco",
  "CompanyName": "Acme Wealth Advisors",
  "CompanyWebsiteUrl": "https://example.com",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "Crm": "string",
  "Email": "jane@example.com",
  "ExternalConnectorId": "connector_9f3a2c",
  "ExternalData": {
    "Groups": [
      "string"
    ]
  },
  "ExternalId": "external_9f3a2c",
  "ExternalLastUpdated": 0,
  "ExternalType": "wealthbox",
  "FirstName": "Jane",
  "Industry": "Financial services",
  "IsActive": true,
  "IsAllowAiContactCreate": false,
  "IsDeleteRequested": false,
  "IsFree": false,
  "IsGovernor": false,
  "IsHasCrmSync": false,
  "IsManagedBilling": false,
  "IsTeamMember": false,
  "IsUser": true,
  "JobTitle": "Financial Advisor",
  "LastName": "Doe",
  "LegalDisclosure": "string",
  "MessagingServiceId": "service_9f3a2c",
  "Milestones": {
    "IsCompletedOnboarding": false
  },
  "NetworkEnrolledAt": "2026-09-03T14:30:00Z",
  "NetworkId": "network_9f3a2c",
  "OrganizationId": "organization_9f3a2c",
  "Phone": "+14155552671",
  "PlanProductId": "product_9f3a2c",
  "RegisteredNumber": {
    "AddressRequirements": "string",
    "Capabilities": {
      "IsMMSEnabled": false,
      "IsSMSEnabled": false,
      "IsVoiceEnabled": false
    },
    "DateCreated": "string",
    "DateUpdated": "string",
    "FriendlyName": "Jane Doe",
    "Origin": "string",
    "PhoneNumber": "string",
    "Sid": "CA7f3e2b9c1d4a5e6f",
    "SmsFallbackMethod": "string",
    "SmsFallbackUrl": "https://example.com",
    "SmsMethod": "string",
    "SmsUrl": "https://example.com",
    "Status": "string",
    "StatusCallback": "string",
    "StatusCallbackMethod": "string"
  },
  "SourceAttribution": "string",
  "State": "CA",
  "TeamMemberUserId": "user_9f3a2c",
  "UserId": "user_9f3a2c",
  "WorkspaceId": "workspace_9f3a2c",
  "WorkspaceName": "Acme Wealth Advisors",
  "Zip": "94107"
}

TeamMemberExtra

A member of the workspace.

  • Biostring | null
  • BrandImageUrlstring | null
  • CognitoUserIdstring | null
  • CreatedAtstringrequired
  • Emailstringrequired
  • ExternalConnectorIdstring | null
  • ExternalDataExternalDataWealthBox | null
  • ExternalIdstring | null
  • ExternalLastUpdatedinteger | null
  • ExternalTypeenum | null

    Types for external data

    WEALTHBOXSLANTAGENCYBLOCAGENTCOREHUBSPOTMEDICAREPROPRACTIFIQUIVRSALESFORCERADIUSBOBREDTAILXLR8
  • FirstNamestring | null
  • IsActiveboolean | null
  • IsAdminboolean | null
  • IsFreeboolean | null
  • IsGovernorboolean | null
  • IsInvitedboolean | null
  • IsJoinedboolean | null
  • IsMemberboolean | null
  • IsXypnMemberboolean | null
  • JobTitlestring | null
  • LastNamestring | null
  • Phonestring | null
  • TeamMemberIdstringrequired
  • UpdatedAtstring | null
  • UserIdstringrequired
Example
{
  "Bio": "Helping families plan for what is next.",
  "BrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
  "CognitoUserId": "user_9f3a2c",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "Email": "jane@example.com",
  "ExternalConnectorId": "connector_9f3a2c",
  "ExternalData": {
    "Groups": [
      "string"
    ]
  },
  "ExternalId": "external_9f3a2c",
  "ExternalLastUpdated": 0,
  "ExternalType": "wealthbox",
  "FirstName": "Jane",
  "IsActive": true,
  "IsAdmin": false,
  "IsFree": false,
  "IsGovernor": false,
  "IsInvited": false,
  "IsJoined": true,
  "IsMember": true,
  "IsXypnMember": false,
  "JobTitle": "Financial Advisor",
  "LastName": "Doe",
  "Phone": "+14155552671",
  "TeamMemberId": "member_9f3a2c",
  "UpdatedAt": "2026-09-03T14:30:00Z",
  "UserId": "user_9f3a2c"
}

ResponseMetaBase

Pagination metadata for the contacts and inboxes endpoints. Follow cursor until it is null.

  • callsinteger | null
  • cursorstring | null
  • limitinteger | null
  • statsmap[] | null
  • totalinteger | null
Example
{
  "calls": 0,
  "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
  "limit": 0,
  "stats": [
    {}
  ],
  "total": 0
}
More models (21)

Billing

Billing provides fields for the billing record.

  • AddonIdsstring[] | null
  • AddonNamesstring[] | null
  • BillingTypestring | null
  • BundleIdsstring[] | null
  • BundleNamesstring[] | null
  • CancelAtTimeinteger | null
  • CanceledAtTimeinteger | null
  • CreatedTimeinteger | null
  • PriceIdsstring[] | null
  • ProductDescriptionstring | null
  • ProductIdstring | null
  • ProductNamestring | null
  • StripeCustomerIdstring | null
  • SubscriptionIdstring | null
  • SubscriptionStatusenum | null

    Status of the stripe subscription Docs: https://stripe.com/docs/api/subscriptions/object#subscription_object-status

    activepast_dueunpaidcanceledincompleteincomplete_expiredtrialing
Example
{
  "AddonIds": [
    "addon_9f3a2c"
  ],
  "AddonNames": [
    "Jane Doe"
  ],
  "BillingType": "string",
  "BundleIds": [
    "bundle_9f3a2c"
  ],
  "BundleNames": [
    "Jane Doe"
  ],
  "CancelAtTime": 1725321600,
  "CanceledAtTime": 1725321600,
  "CreatedTime": 1725321600,
  "PriceIds": [
    "price_9f3a2c"
  ],
  "ProductDescription": "string",
  "ProductId": "product_9f3a2c",
  "ProductName": "Jane Doe",
  "StripeCustomerId": "customer_9f3a2c",
  "SubscriptionId": "subscription_9f3a2c",
  "SubscriptionStatus": "active"
}

CallComment

  • CallCommentIdstring | integer | null
  • Commentstringrequired
  • CreatedByUserIdstringrequired
  • CreatedByUserNamestringrequired
  • CreatedTimeintegerrequired
  • UpdatedAtstring | null
Example
{
  "CallCommentId": "comment_9f3a2c",
  "Comment": "Client confirmed the meeting time.",
  "CreatedByUserId": "user_9f3a2c",
  "CreatedByUserName": "Jane Doe",
  "CreatedTime": 1725321600,
  "UpdatedAt": "2026-09-03T14:30:00Z"
}

CallParticipant

Model rerpesenting a participant to be added to an existing call

  • CallSidstring | null
  • CallStatusenum

    Enum for the various call states of a call participant

    connectingactiveleftno-answerheld
  • ContactIdstring | null
  • Namestring | null
  • Numberstring | null
  • TeamMemberIdstring | null
  • Typeenumrequired

    Enum for the type of call

    contactteam
Example
{
  "CallSid": "CA7f3e2b9c1d4a5e6f",
  "CallStatus": "connecting",
  "ContactId": "contact_9f3a2c",
  "Name": "Jane Doe",
  "Number": "+14155550100",
  "TeamMemberId": "member_9f3a2c",
  "Type": "contact"
}

Comment

  • Commentstring | null
  • CreatedByUserIdstring | null
  • CreatedByUserNamestring | null
  • CreatedTimestring | integer (uint64)required
  • MessageCommentIdstring | integer (uint64) | null
  • UpdatedAtstring | null
Example
{
  "Comment": "Client confirmed the meeting time.",
  "CreatedByUserId": "user_9f3a2c",
  "CreatedByUserName": "Jane Doe",
  "CreatedTime": "2026-09-03T14:30:00Z",
  "MessageCommentId": "comment_9f3a2c",
  "UpdatedAt": "2026-09-03T14:30:00Z"
}

ContactVersion

Version Properties to share for a Versioned contact

  • Address1string | null
  • Address2string | null
  • AvatarUrlstring | null
  • BirthDatestring | null
  • Citystring | null
  • CreatedAtstring | null
  • CustomFieldsmap | null
  • Emailstring | null
  • EnrichCallerNamestring | null
  • EnrichCallerTypestring | null
  • EnrichLookupAtstring | null
  • EnrichMetaany | null
  • FirstNamestring | null
  • HouseholdIdstring | null
  • HouseholdNamestring | null
  • HouseholdTitlestring | null
  • IsArchivedboolean | null
  • LastContactedTimestring | null
  • LastNamestring | null
  • LastSubmittedTimestring | null
  • LastSyncTimestring | integer | null
  • MiddleNamestring | null
  • Nicknamestring | null
  • NumberCarrierNamestring | null
  • NumberCarrierTypeenum | null

    Twilio carrier types https://www.twilio.com/docs/lookup/tutorials/carrier-and-caller-name

    mobilelandlinevoipinvaliderror
  • NumberLookupAtstring | null
  • NumberMetaany | null
  • NumbersContactNumber[] | null
  • OwnerIdstring | null
  • OwnerSourceIdstring | null
  • OwnerSourceNamestring | null
  • Phonestring | null
  • SourceIdstring | integer | null
  • SourceMetamap | null
  • SourceSyncFlowstring | null
  • SourceTypestring | null
  • Statestring | null
  • Tagsstring[] | null
  • UpdatedAtstring | null
  • UploadIdstring | integer | null
  • Versionintegerrequired
  • Zipstring | null
Example
{
  "Address1": "100 Market St",
  "Address2": "Suite 400",
  "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
  "BirthDate": "1975-04-12",
  "City": "San Francisco",
  "CreatedAt": "2026-09-03T14:30:00Z",
  "CustomFields": {},
  "Email": "jane@example.com",
  "EnrichCallerName": "Jane Doe",
  "EnrichCallerType": "consumer",
  "EnrichLookupAt": "2026-09-03T14:30:00Z",
  "EnrichMeta": {},
  "FirstName": "Jane",
  "HouseholdId": "household_9f3a2c",
  "HouseholdName": "Jane Doe",
  "HouseholdTitle": "The Doe household",
  "IsArchived": false,
  "LastContactedTime": "2026-09-03T14:30:00Z",
  "LastName": "Doe",
  "LastSubmittedTime": "2026-09-03T14:30:00Z",
  "LastSyncTime": "2026-09-03T14:30:00Z",
  "MiddleName": "Q",
  "Nickname": "Janie",
  "NumberCarrierName": "Jane Doe",
  "NumberCarrierType": "mobile",
  "NumberLookupAt": "2026-09-03T14:30:00Z",
  "NumberMeta": {},
  "Numbers": [
    {
      "IsDoNotContact": false,
      "IsPreferred": true,
      "Label": "Mobile",
      "Meta": {},
      "Phone": "+14155552671"
    }
  ],
  "OwnerId": "owner_9f3a2c",
  "OwnerSourceId": "source_9f3a2c",
  "OwnerSourceName": "Jane Doe",
  "Phone": "+14155552671",
  "SourceId": "source_9f3a2c",
  "SourceMeta": {},
  "SourceSyncFlow": "string",
  "SourceType": "wealthbox",
  "State": "CA",
  "Tags": [
    "client"
  ],
  "UpdatedAt": "2026-09-03T14:30:00Z",
  "UploadId": "upload_9f3a2c",
  "Version": 0,
  "Zip": "94107"
}

ContactsPaginated

Pagination Returns pages of records and meta data about pagination

Example
{
  "meta": {
    "calls": 0,
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "limit": 0,
    "stats": [
      {}
    ],
    "total": 0
  },
  "records": [
    {
      "Address1": "100 Market St",
      "Address2": "Suite 400",
      "AvatarUrl": "https://static.currentclient.com/avatars/jane.png",
      "BirthDate": "1975-04-12",
      "City": "San Francisco",
      "ContactId": "contact_9f3a2c",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "CustomFields": {},
      "Email": "jane@example.com",
      "EnrichCallerName": "Jane Doe",
      "EnrichCallerType": "consumer",
      "EnrichLookupAt": "2026-09-03T14:30:00Z",
      "EnrichMeta": {},
      "FirstName": "Jane",
      "HouseholdId": "household_9f3a2c",
      "HouseholdName": "Jane Doe",
      "HouseholdTitle": "The Doe household",
      "IsArchived": false,
      "LastContactedTime": "2026-09-03T14:30:00Z",
      "LastName": "Doe",
      "LastSubmittedTime": "2026-09-03T14:30:00Z",
      "LastSyncTime": "2026-09-03T14:30:00Z",
      "MiddleName": "Q",
      "Nickname": "Janie",
      "NumberCarrierName": "Jane Doe",
      "NumberCarrierType": "mobile",
      "NumberLookupAt": "2026-09-03T14:30:00Z",
      "NumberMeta": {},
      "Numbers": [
        {}
      ],
      "OwnerId": "owner_9f3a2c",
      "OwnerSourceId": "source_9f3a2c",
      "OwnerSourceName": "Jane Doe",
      "Phone": "+14155552671",
      "SourceId": "source_9f3a2c",
      "SourceMeta": {},
      "SourceSyncFlow": "string",
      "SourceType": "wealthbox",
      "State": "CA",
      "Tags": [
        "client"
      ],
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UploadId": "upload_9f3a2c",
      "UserId": "user_9f3a2c",
      "Version": 0,
      "Versions": [
        {}
      ],
      "Zip": "94107"
    }
  ]
}

InboxPagination

Pagniation Returns pages of records and meta data about pagination

Example
{
  "meta": {
    "calls": 0,
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "limit": 0,
    "stats": [
      {}
    ],
    "total": 0
  },
  "records": [
    {
      "BusinessSchedule": [
        {}
      ],
      "BusinessTimezone": "America/Los_Angeles",
      "CallRingDuration": "15",
      "CallRingOrderType": "string",
      "CallTeamMemberIds": [
        "member_9f3a2c"
      ],
      "CallflowId": "callflow_9f3a2c",
      "ComplianceMessage": "You can call or text us at this number. Primarily, you can expect to receive brief news and updates from us. Msg & data rates may apply. Reply STOP to opt-out anytime. Questions? You are welcome to reply.",
      "ComplianceVCardId": "card_9f3a2c",
      "Dialplan": "string",
      "ForwardingTimeout": 20,
      "ForwardingVoicemailMode": "DESTINATION",
      "GreetingAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
      "HiddenFor": [
        "string"
      ],
      "InboundType": "RING",
      "IsComplianceAutoSuppress": false,
      "IsComplianceEnabled": false,
      "IsDropCallerId": false,
      "IsEnableAutoIncomingMessage": false,
      "IsEnableAutoMissedCall": false,
      "IsEnableAutoOutOfOfficeIncomingMessage": false,
      "IsEnableAutoOutOfOfficeMissedCall": false,
      "IsEnableAutoOutsideHoursIncomingMessage": false,
      "IsEnableAutoOutsideHoursMissedCall": false,
      "IsEnableAutoRecordCalls": true,
      "IsEnableBusinessHours": false,
      "IsEnableCallSummary": true,
      "IsEnableCallTranscription": true,
      "IsEnableFilterProfanity": false,
      "IsEnableForwardCall": false,
      "IsEnableGreeting": false,
      "IsEnablePhoneMenu": false,
      "IsEnableRecordGreeting": false,
      "IsEnableRecordingAnnouncement": false,
      "IsEnableTranscribeVoicemail": false,
      "IsSmsHosting": false,
      "MutedFor": [
        "string"
      ],
      "Name": "Jane Doe",
      "Number": "+14155550100",
      "NumberForwardTo": "+14155550100",
      "OrgA2pId": "p_9f3a2c",
      "OrgA2pStatus": "PORTING_IN",
      "OutOfOfficeEndDate": "2026-09-03T14:30:00Z",
      "OutOfOfficeEndTime": "2026-09-03T14:30:00Z",
      "OutOfOfficeStartDate": "2026-09-03T14:30:00Z",
      "OutOfOfficeStartTime": "2026-09-03T14:30:00Z",
      "OutsideHoursVoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3",
      "Permissions": {
        "Editors": [],
        "Viewers": []
      },
      "RecordingAnnouncementPromptRef": "string",
      "SkipTeamMemberIds": [
        "member_9f3a2c"
      ],
      "Symbol": "JD",
      "TeamMemberId": "member_9f3a2c",
      "TextAutoAutoOutsideHoursMissedCall": "string",
      "TextAutoIncomingMessage": "string",
      "TextAutoMissedCall": "string",
      "TextAutoOutOfOfficeIncomingMessage": "string",
      "TextAutoOutOfOfficeMissedCall": "string",
      "TextAutoOutsideHoursIncomingMessage": "string",
      "UserId": "user_9f3a2c",
      "VoiceProvider": "twilio",
      "VoicemailAudioUrl": "https://static.currentclient.com/audio/greeting.mp3"
    }
  ]
}

MediaItem

  • ChatServiceIdstring | null
  • FileNamestring | null
  • MediaIdstring | null
  • MediaTypestringrequired
  • MediaUrlstring | null
Example
{
  "ChatServiceId": "service_9f3a2c",
  "FileName": "statement.jpg",
  "MediaId": "media_9f3a2c",
  "MediaType": "image/jpeg",
  "MediaUrl": "https://media.currentclient.com/att_8x2k4m.jpg"
}

MessageComment

  • Commentstringrequired
  • CreatedByUserIdstringrequired
  • CreatedByUserNamestringrequired
  • CreatedTimestring | integerrequired
  • MessageCommentIdstring | integer | null
  • UpdatedAtstring | null
Example
{
  "Comment": "Client confirmed the meeting time.",
  "CreatedByUserId": "user_9f3a2c",
  "CreatedByUserName": "Jane Doe",
  "CreatedTime": "2026-09-03T14:30:00Z",
  "MessageCommentId": "comment_9f3a2c",
  "UpdatedAt": "2026-09-03T14:30:00Z"
}

MessageMediaItem

An attachment on a message. Download it from MediaUrl.

  • ChatServiceIdstring | null
  • FileNamestring | null
  • MediaIdstring | null
  • MediaTypestringrequired
  • MediaUrlstring | null
Example
{
  "ChatServiceId": "service_9f3a2c",
  "FileName": "statement.jpg",
  "MediaId": "media_9f3a2c",
  "MediaType": "image/jpeg",
  "MediaUrl": "https://media.currentclient.com/att_8x2k4m.jpg"
}

Milestones

Milestones provides fields for user milestones

  • IsCompletedOnboardingboolean | null
Example
{
  "IsCompletedOnboarding": false
}

Paginated_for_Call

Example
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "AgentInteractions": [
        {}
      ],
      "AnsweredBy": "human",
      "AnsweredByMemberId": "member_9f3a2c",
      "ArchiverIds": {},
      "CallAnalysisStatus": "completed",
      "CallAnalysisSummary": "Jane asked about rolling over her 401(k). Agreed to send the transfer form.",
      "CallAnalysisTranscript": "Agent: Thanks for calling. Jane: Hi, I had a question about my 401(k).",
      "CallDurationTime": "184",
      "CallEndedTime": 1725321600,
      "CallId": "call_9f3a2c",
      "CallSid": "CA7f3e2b9c1d4a5e6f",
      "CallerMemberId": "member_9f3a2c",
      "CallerName": "Jane Doe",
      "Comments": [
        {}
      ],
      "ContactId": "contact_9f3a2c",
      "ContactName": "Jane Doe",
      "ContactNumber": "+18008675309",
      "CreatedTime": 1725321600,
      "CrmIds": {},
      "Direction": "OUTBOUND",
      "DispositionId": "disposition_9f3a2c",
      "IsAgentCall": false,
      "IsForwarded": false,
      "IsMissedCall": false,
      "IsOutsideHours": false,
      "IsRecorded": true,
      "IsVoicemail": false,
      "Meta": {},
      "Note": "Follow up next week about the rollover.",
      "NotetakerIds": {},
      "NumberForwardedTo": "+14155552671",
      "Participants": [
        {}
      ],
      "RecordingDurationTime": "184",
      "RecordingSid": "RE7f3e2b9c1d4a5e6f",
      "RecordingStatus": "completed",
      "RecordingUrl": "https://recordings.currentclient.com/RE7f3e2b9c1d4a5e6f.mp3",
      "Status": "completed",
      "StatusCallSid": "CA7f3e2b9c1d4a5e6f",
      "StatusSequence": 20,
      "StatusWeight": 0,
      "Tags": [
        "client"
      ],
      "TranscriptionStatus": "string",
      "TranscriptionText": "string",
      "TransferredAtTime": 1725321600,
      "TransferredToMemberId": "member_9f3a2c",
      "TransferredToNumber": "string",
      "UpdatedTime": 1725321600,
      "UserId": "1234-abcd-4567-ABCD",
      "UserNumber": "+18008675309"
    }
  ]
}

Paginated_for_Message

Example
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "ArchiverIds": {},
      "ChannelType": "sms",
      "Comments": [
        {}
      ],
      "ContactId": "contact_9f3a2c",
      "ContactName": "Jane Doe",
      "ContactNumber": "+14155552671",
      "ConversationId": "conversation_9f3a2c",
      "CreatedTime": 1725321600,
      "CrmIds": {},
      "Direction": "SENT",
      "ErrorCode": null,
      "ErrorMessage": null,
      "IsIgnored": false,
      "IsSilenced": false,
      "LocalMessageId": "message_9f3a2c",
      "Message": "Hi Jane, your documents are ready to sign.",
      "MessageId": "message_9f3a2c",
      "MessageMediaItems": [
        {}
      ],
      "Meta": {},
      "SenderMemberId": "member_9f3a2c",
      "SenderName": "Jane Doe",
      "Status": "delivered",
      "Tags": [
        "client"
      ],
      "TwilioNumOfSegments": "string",
      "TwilioSid": "CA7f3e2b9c1d4a5e6f",
      "UndeliveredContactNumber": "+14155552671",
      "UserId": "user_9f3a2c",
      "UserNumber": "+14155550100",
      "WebhookUrlStatus": "string"
    }
  ]
}

Paginated_for_TeamMemberExtra

Example
{
  "meta": {
    "cursor": "eyJrIjoiMTcyNTMyMTYwMCJ9",
    "total": 0
  },
  "records": [
    {
      "Bio": "Helping families plan for what is next.",
      "BrandImageUrl": "https://static.currentclient.com/avatars/jane.png",
      "CognitoUserId": "user_9f3a2c",
      "CreatedAt": "2026-09-03T14:30:00Z",
      "Email": "jane@example.com",
      "ExternalConnectorId": "connector_9f3a2c",
      "ExternalData": {
        "Groups": []
      },
      "ExternalId": "external_9f3a2c",
      "ExternalLastUpdated": 0,
      "ExternalType": "wealthbox",
      "FirstName": "Jane",
      "IsActive": true,
      "IsAdmin": false,
      "IsFree": false,
      "IsGovernor": false,
      "IsInvited": false,
      "IsJoined": true,
      "IsMember": true,
      "IsXypnMember": false,
      "JobTitle": "Financial Advisor",
      "LastName": "Doe",
      "Phone": "+14155552671",
      "TeamMemberId": "member_9f3a2c",
      "UpdatedAt": "2026-09-03T14:30:00Z",
      "UserId": "user_9f3a2c"
    }
  ]
}

PermissionSettings

Model to hold inbox permission settings

  • Editorsstring[]
  • Viewersstring[]
Example
{
  "Editors": [
    "string"
  ],
  "Viewers": [
    "string"
  ]
}

RegisteredNumber

  • AddressRequirementsstring | null
  • CapabilitiesRegisteredNumberCapabilities | null
  • DateCreatedstring | null
  • DateUpdatedstring | null
  • FriendlyNamestring | null
  • Originstring | null
  • PhoneNumberstringrequired
  • Sidstring | null
  • SmsFallbackMethodstring | null
  • SmsFallbackUrlstring | null
  • SmsMethodstring | null
  • SmsUrlstring | null
  • Statusstring | null
  • StatusCallbackstring | null
  • StatusCallbackMethodstring | null
Example
{
  "AddressRequirements": "string",
  "Capabilities": {
    "IsMMSEnabled": false,
    "IsSMSEnabled": false,
    "IsVoiceEnabled": false
  },
  "DateCreated": "string",
  "DateUpdated": "string",
  "FriendlyName": "Jane Doe",
  "Origin": "string",
  "PhoneNumber": "string",
  "Sid": "CA7f3e2b9c1d4a5e6f",
  "SmsFallbackMethod": "string",
  "SmsFallbackUrl": "https://example.com",
  "SmsMethod": "string",
  "SmsUrl": "https://example.com",
  "Status": "string",
  "StatusCallback": "string",
  "StatusCallbackMethod": "string"
}