The contacts API lets you manage the people in your Amplifi organization. Each contact belongs to exactly one organization and is identified by a UUID. Contacts store phone numbers in E.164 format, support arbitrary tags for segmentation, and carry aDocumentation Index
Fetch the complete documentation index at: https://docs.messagesender.ai/llms.txt
Use this file to discover all available pages before exploring further.
isTextable flag derived from Twilio Lookup that controls whether they can receive SMS. All write endpoints require authentication with write-level access.
List contacts
Query parameters
Full-text search across
firstName, lastName, email, and phone. Fuzzy matching is applied for terms of 3 or more characters.Comma-separated list of tags to filter by (e.g.
tags=vip,member). Use tagsLogic to control AND vs. OR matching.Logic for tag filtering.
OR (default) returns contacts that have any of the specified tags. AND returns contacts that have all of them.Filter by textability status.
true returns only textable contacts; false returns non-textable.Filter by opt-out status.
true returns opted-out contacts; false returns opted-in.Filter to contacts that have (
true) or do not have (false) an email address.Filter to contacts that have (
true) or do not have (false) a phone number.Comma-separated list of US state codes to filter by (e.g.
state=NC,SC).Filter to contacts matching an exact ZIP code.
Return only contacts in a saved segment. When provided, ad-hoc filter params (
search, tags, etc.) are ignored.Number of results to return. Default
50, max 200.Keyset pagination cursor from a previous response. Pass the
cursor value to fetch the next page.Offset-based pagination fallback. Ignored when
cursor is present.Sort field.
updated_at (default) or created_at.When
true, includes a total count in the response. This runs a separate COUNT query and adds latency.Response
Create a contact
_outcome of merged rather than created.
Phone numbers are normalized to E.164 format automatically. A Twilio Lookup job is queued in the background to determine textability; the contact is created with isTextable: null until the lookup completes.
Request body
Phone number in any standard US format. Stored as E.164 (e.g.
+19195551234).Contact’s first name.
Contact’s last name.
Contact’s email address.
Street address.
City.
Two-letter US state code.
ZIP or postal code.
Array of tag strings to apply to the contact.
Key-value pairs for custom data. Up to 20 custom fields per contact.
IANA timezone string (e.g.
America/Chicago).Example request
Response
Returns the created or merged contact with status201 (created) or 200 (merged). The _outcome field indicates which occurred.
A
409 Conflict is returned only when a unique constraint violation cannot be resolved through merging. In most cases, duplicate phone or email results in a merge rather than an error.Get a contact
404 if the contact does not exist in your organization.
Path parameters
The contact’s UUID.
Response
Update a contact
Path parameters
The contact’s UUID.
Request body
All fields are optional. Include only those you want to update.Updated first name.
Updated last name.
Updated email address.
Replacement tag array. This replaces the entire tag list, not appends to it.
Replacement custom fields object. Keys not present in the new object are removed.
IANA timezone string.
Example request
Delete a contact
Path parameters
The contact’s UUID.
Response
Returns200 with { "id": "<uuid>", "deleted": true } on success, or 404 if the contact is not found.
Key fields reference
UUID uniquely identifying the contact within Amplifi.
Phone number in E.164 format (e.g.
+19195551234).Whether the phone number is confirmed textable via Twilio Lookup.
null means the lookup has not completed yet. false means the number is not textable (landline, VOIP, etc.).true if the contact is opted in to receive messages. false if they have opted out (sent STOP or equivalent).ISO 8601 timestamp of when the contact opted out, or
null if they are still opted in.Array of tag strings. Used for ad-hoc audience targeting in campaigns and polls.
Key-value pairs of custom data. Values are used in campaign merge fields.