Contacts
- class ab.api.endpoints.contacts.ContactsEndpoint(client, resolver)[source]
Operations on contacts (ACPortal API).
- Parameters:
client (Any)
resolver (CodeResolver)
- get(contact_id)[source]
GET /contacts/{id}
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get.html Response model: ContactSimple
- Parameters:
contact_id (str)
- Return type:
- get_did(contact_did)[source]
Resolve a contact display ID through CodeResolver, then GET /contacts/{id}.
- Parameters:
- Return type:
- get_details(contact_id)[source]
GET /contacts/{contactId}/editdetails
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get_details.html Response model: ContactDetailedInfo
- Parameters:
contact_id (str)
- Return type:
- update_details(contact_id, *, data, franchisee_id=None)[source]
PUT /contacts/{contactId}/editdetails.
- Parameters:
contact_id (str) – Contact identifier.
data (ContactEditRequest | dict) – Contact edit payload with name, email, phone, addresses. Accepts a
ContactEditRequestinstance or a dict.franchisee_id (str | None) – Franchisee UUID filter (query param).
- Return type:
None
Request model:
ContactEditRequestParams model:ContactEditParamsDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/update_details.html Request model: ContactEditRequest Query params: ContactEditParams
- create(*, data, franchisee_id=None)[source]
POST /contacts/editdetails.
- Parameters:
data (ContactEditRequest | dict) – Contact creation payload with name, email, phone, addresses. Accepts a
ContactEditRequestinstance or a dict.franchisee_id (str | None) – Franchisee UUID filter (query param).
- Return type:
None
Request model:
ContactEditRequestParams model:ContactEditParamsDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/create.html Request model: ContactEditRequest Query params: ContactEditParams
- search(*, data)[source]
POST /contacts/v2/search.
- Parameters:
data (ContactSearchRequest | dict) – Search payload with search_text, page, and page_size. Accepts a
ContactSearchRequestinstance or a dict.- Return type:
Request model:
ContactSearchRequestDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/search.html Request model: ContactSearchRequest Response model: List[SearchContactEntityResult]
- get_primary_details(contact_id)[source]
GET /contacts/{contactId}/primarydetails
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get_primary_details.html Response model: ContactPrimaryDetails
- Parameters:
contact_id (str)
- Return type:
- get_current_user()[source]
GET /contacts/user
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get_current_user.html Response model: ContactSimple
- Return type:
- post_history(contact_id, *, data)[source]
POST /contacts/{contactId}/history.
- Parameters:
contact_id (str) – Contact identifier.
data (ContactHistoryCreateRequest | dict) – History creation payload. Accepts a
ContactHistoryCreateRequestinstance or a dict.
- Return type:
Request model:
ContactHistoryCreateRequestDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/post_history.html Request model: ContactHistoryCreateRequest Response model: ContactHistory
- get_history_aggregated(contact_id)[source]
GET /contacts/{contactId}/history/aggregated
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get_history_aggregated.html Query params: ContactHistoryParams Response model: ContactHistoryAggregated
- Parameters:
contact_id (str)
- Return type:
- get_history_graph_data(contact_id)[source]
GET /contacts/{contactId}/history/graphdata
Docs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/get_history_graph_data.html Query params: ContactHistoryParams Response model: ContactGraphData
- Parameters:
contact_id (str)
- Return type:
- merge_preview(merge_to_id, *, data)[source]
POST /contacts/{mergeToId}/merge/preview.
- Parameters:
merge_to_id (str) – Target contact to merge into.
data (ContactMergeRequest | dict) – Merge preview request payload. Accepts a
ContactMergeRequestinstance or a dict.
- Return type:
Request model:
ContactMergeRequestDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/merge_preview.html Request model: ContactMergeRequest Response model: ContactMergePreview
- merge(merge_to_id, *, data)[source]
PUT /contacts/{mergeToId}/merge.
- Parameters:
merge_to_id (str) – Target contact to merge into.
data (ContactMergeRequest | dict) – Merge request payload. Accepts a
ContactMergeRequestinstance or a dict.
- Return type:
None
Request model:
ContactMergeRequestDocs: https://ab-sdk.readthedocs.io/en/latest/api/contacts/merge.html Request model: ContactMergeRequest
Per-endpoint reference
Each route-backed method has its own page rendering the HTTP route, the
Python and CLI call signatures, and the request/response model field tables.
This is the page help(api.contacts.<method>) links to via its Docs: footer.
These pages are generated by scripts/generate_endpoint_docs.py and kept
current by a CI freshness gate.
api.contacts.createapi.contacts.getapi.contacts.get_current_userapi.contacts.get_detailsapi.contacts.get_history_aggregatedapi.contacts.get_history_graph_dataapi.contacts.get_primary_detailsapi.contacts.mergeapi.contacts.merge_previewapi.contacts.post_historyapi.contacts.searchapi.contacts.update_details
Methods
get
GET /contacts/{id} — Get a contact by ID.
Returns: ContactSimple
from ab import ABConnectAPI
api = ABConnectAPI(env="staging")
contact = api.contacts.get("30760")
print(contact.first_name, contact.last_name)
get_did
Resolve a contact display ID through the cache resolver, then call GET /contacts/{id}.
Returns: ContactSimple
from examples.constants import TEST_CONTACT_DID
contact = api.contacts.get_did(TEST_CONTACT_DID)
print(contact.id, contact.contact_display_id)
get_details
GET /contacts/{contactId}/editdetails — Full editable contact details.
Returns: ContactDetailedInfo
details = api.contacts.get_details("30760")
print(details.full_name, details.contact_display_id)
# Typed nested lists with IDE autocomplete
for entry in details.emails_list or []:
print(entry.email.email, entry.meta_data)
for entry in details.phones_list or []:
print(entry.phone.phone, entry.meta_data)
for entry in details.addresses_list or []:
print(entry.address.city, entry.address.state)
update_details
PUT /contacts/{contactId}/editdetails — Update contact details.
api.contacts.update_details("30760", {"firstName": "Jane", "lastName": "Doe"})
create
POST /contacts/editdetails — Create a new contact.
api.contacts.create({"firstName": "New", "lastName": "Contact", "email": "new@example.com"})
search
POST /contacts/v2/search — Search contacts.
Returns: list[SearchContactEntityResult]`
from ab.api.models.contacts import ContactSearchRequest, ContactSearchParams, PageOrderedRequest
results = api.contacts.search(data=ContactSearchRequest(
main_search_request=ContactSearchParams(full_name="Justine"),
load_options=PageOrderedRequest(page_number=1, page_size=10),
))
for r in results:
print(r.contact_full_name, r.contact_email, r.company_name)
get_primary_details
GET /contacts/{contactId}/primarydetails — Primary contact info.
Returns: ContactPrimaryDetails
primary = api.contacts.get_primary_details("30760")
print(primary.full_name, primary.email)
get_current_user
GET /contacts/user — Current authenticated user’s contact info.
Returns: ContactSimple
me = api.contacts.get_current_user()
print(me.full_name)