User API
Contacts
Contact management and bulk import
/contactsList contacts
Query parameters
Responses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"contacts": [
{
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string"
}
]
}/contactsCreate a contact
Request body
mobileworkhomeotherpersonalworkotheruserteamResponses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]"
}'Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string"
}
}/contacts/bulk-tagTag or untag many contacts at once (portal-only)
Applies the tag add/remove lists to each visible contact. Invisible ids are returned in `failed[]`. Prime cannot call this endpoint — individual contact tagging goes through update_contact instead.
Request body
Responses
truetrueRequest
curl 'https://app.openassistant.us/api/contacts/bulk-tag' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"ids": [
"string"
]
}'Response
{
"ok": true,
"bulkTag": {
"ok": true,
"updated": 0,
"total": 0,
"failed": [
{
"id": "string",
"reason": "string"
}
]
}
}/contacts/bulk-importBulk import contacts
Request body
mobileworkhomeotherpersonalworkotherResponses
trueRequest
curl 'https://app.openassistant.us/api/contacts/bulk-import' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"contacts": [
{
"email": "[email protected]"
}
]
}'Response
{
"ok": true,
"bulkImport": {
"success": true,
"total": 0,
"created": 0,
"updated": 0,
"skipped": 0,
"errors": [
{
"error": "string"
}
]
}
}/contacts/{contactId}Get a contact
Path parameters
Responses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string",
"outgoingRelationships": [],
"incomingRelationships": []
}
}/contacts/{contactId}Update a contact
Path parameters
Request body
mobileworkhomeotherpersonalworkotheruserteamResponses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"preferredName": "string",
"phones": [
{
"number": "string"
}
],
"company": "string"
}'Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string"
}
}/contacts/{contactId}Delete a contact
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"contact": {
"id": "string"
}
}/contacts/{contactId}/mergeMerge two contacts
Path parameters
Request body
Responses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>/merge' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"mergeContactId": "string"
}'Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string",
"merged": true,
"mergedContactId": "string"
}
}/contacts/{contactId}/relationshipsCreate a contact relationship link
Path parameters
Request body
coordinatespartnerassistantparentotherResponses
truecoordinatespartnerassistantparentotherRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>/relationships' \
-X POST \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"toContactId": "string",
"type": "coordinates"
}'Response
{
"ok": true,
"relationship": {
"id": "string",
"account": "string",
"user": "string",
"fromContact": "string",
"toContact": "string",
"type": "coordinates"
}
}/contacts/{contactId}/relationships/{relationshipId}Update a contact relationship (role, isPrimary, notes)
Path parameters
Request body
Responses
truecoordinatespartnerassistantparentotherRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>/relationships/<relationshipId>' \
-X PATCH \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"role": "string",
"isPrimary": true,
"notes": "string"
}'Response
{
"ok": true,
"relationship": {
"id": "string",
"account": "string",
"user": "string",
"fromContact": "string",
"toContact": "string",
"type": "coordinates"
}
}/contacts/{contactId}/relationships/{relationshipId}Delete a contact relationship link
Path parameters
Responses
trueRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>/relationships/<relationshipId>' \
-X DELETE \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"relationship": {
"id": "string"
}
}/contacts/{contactId}/external-ids/{integration}Upsert an external system ID
Path parameters
Request body
Responses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts/<contactId>/external-ids/<integration>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"externalId": "string"
}'Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string"
}
}/contacts/by-external-id/{integration}/{externalId}Find contact by external system ID
Path parameters
Responses
trueworkpersonalotherworkmobilehomeothermanualteammateteammate_archivedimportedemailimportapollocrmatshrisvoiceonboardingcalendarothernulluserteaminternal-rosterdeclared-by-counterpartmanualnullRequest
curl 'https://app.openassistant.us/api/contacts/by-external-id/<integration>/<externalId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"contact": {
"id": "string",
"user": "string",
"name": "string",
"email": "string",
"company": {
"id": "string",
"name": "string",
"slug": "string",
"domain": "string"
},
"title": "string"
}
}/property-definitionsList property definitions
Query parameters
Responses
truecontactcompanytextnumberdatebooleanselecturluserteamRequest
curl 'https://app.openassistant.us/api/property-definitions' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"propertyDefinitions": [
{
"id": "507f1f77bcf86cd799439011",
"account": "507f1f77bcf86cd799439011",
"user": "507f1f77bcf86cd799439011",
"entityType": "contact",
"key": "string",
"label": "string"
}
]
}/property-definitions/{entityType}/{key}Upsert a property definition
Path parameters
Request body
textnumberdatebooleanselecturluserteamResponses
truecontactcompanytextnumberdatebooleanselecturluserteamRequest
curl 'https://app.openassistant.us/api/property-definitions/<entityType>/<key>' \
-X PUT \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{
"label": "string",
"type": "text",
"options": [
"string"
],
"showForAll": true
}'Response
{
"ok": true,
"propertyDefinition": {
"id": "507f1f77bcf86cd799439011",
"account": "507f1f77bcf86cd799439011",
"user": "507f1f77bcf86cd799439011",
"entityType": "contact",
"key": "string",
"label": "string"
}
}