curl --request POST \
--url https://api.example.com/api/v2/contact/_assert \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"match": {
"primary_email": "sarah.chen@acme.com"
},
"attributes": {
"first_name": "Sarah",
"last_name": "Chen",
"title": "VP of Engineering"
}
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"attributes": {
"id": {
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"value_type": "uuid"
},
"organization_id": {
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"value_type": "uuid"
},
"created_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"updated_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"display_name": {
"value": "<string>",
"value_type": "string"
},
"stage": {
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_value": "<string>",
"api_name": "<string>",
"color": "<string>"
},
"value_type": "contact_stage"
},
"created_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"participant_user_id_list": [
{
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
}
],
"first_name": {
"value": "<string>",
"value_type": "string"
},
"last_name": {
"value": "<string>",
"value_type": "string"
},
"middle_name": {
"value": "<string>",
"value_type": "string"
},
"title": {
"value": "<string>",
"value_type": "string"
},
"department": {
"value": "<string>",
"value_type": "string"
},
"primary_email": {
"value": "jsmith@example.com",
"value_type": "email"
},
"primary_phone_number": {
"value": "<string>",
"value_type": "phone_number"
},
"sms_consent": {
"value": true,
"value_type": "boolean"
},
"address": {
"value": {
"street_one": "<string>",
"street_two": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"zip_code": "<string>"
},
"value_type": "address"
},
"contact_emails": [
{
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"is_primary": true,
"labels": []
},
"value_type": "contact_email"
}
],
"contact_phone_numbers": [
{
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone_number": "<string>",
"is_primary": true,
"labels": []
},
"value_type": "contact_phone_number"
}
],
"linkedin_url": {
"value": "<string>",
"value_type": "string"
},
"zoominfo_url": {
"value": "<string>",
"value_type": "string"
},
"x_url": {
"value": "<string>",
"value_type": "string"
},
"facebook_url": {
"value": "<string>",
"value_type": "string"
},
"owner_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"owner_team_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"updated_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"archived_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"created_source": {
"value": "<string>",
"value_type": "enum"
},
"created_source_form_submission_details": {
"value": {
"form_submission_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_event_occurred_at": "2023-11-07T05:31:56Z",
"utm_campaign": "<string>",
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_content": "<string>",
"utm_term": "<string>"
},
"value_type": "created_source_form_submission_details"
},
"phone_enriched_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"email_enriched_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"email_enrich_status": {
"value": "<string>",
"value_type": "enum"
},
"phone_number_enrich_status": {
"value": "<string>",
"value_type": "enum"
},
"last_activity_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_voice_call": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_meeting": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_global_thread": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_engaged_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outreached_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_meeting_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_voice_call_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_global_thread_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_meeting_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_voice_call_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_global_thread_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"archived_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
}
},
"record_type": "contact"
},
"meta": {
"matched_on": {}
}
}Upsert a contact by unique-field match
curl --request POST \
--url https://api.example.com/api/v2/contact/_assert \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"match": {
"primary_email": "sarah.chen@acme.com"
},
"attributes": {
"first_name": "Sarah",
"last_name": "Chen",
"title": "VP of Engineering"
}
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"attributes": {
"id": {
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"value_type": "uuid"
},
"organization_id": {
"value": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"value_type": "uuid"
},
"created_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"updated_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"display_name": {
"value": "<string>",
"value_type": "string"
},
"stage": {
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_value": "<string>",
"api_name": "<string>",
"color": "<string>"
},
"value_type": "contact_stage"
},
"created_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"participant_user_id_list": [
{
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
}
],
"first_name": {
"value": "<string>",
"value_type": "string"
},
"last_name": {
"value": "<string>",
"value_type": "string"
},
"middle_name": {
"value": "<string>",
"value_type": "string"
},
"title": {
"value": "<string>",
"value_type": "string"
},
"department": {
"value": "<string>",
"value_type": "string"
},
"primary_email": {
"value": "jsmith@example.com",
"value_type": "email"
},
"primary_phone_number": {
"value": "<string>",
"value_type": "phone_number"
},
"sms_consent": {
"value": true,
"value_type": "boolean"
},
"address": {
"value": {
"street_one": "<string>",
"street_two": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"zip_code": "<string>"
},
"value_type": "address"
},
"contact_emails": [
{
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"is_primary": true,
"labels": []
},
"value_type": "contact_email"
}
],
"contact_phone_numbers": [
{
"value": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone_number": "<string>",
"is_primary": true,
"labels": []
},
"value_type": "contact_phone_number"
}
],
"linkedin_url": {
"value": "<string>",
"value_type": "string"
},
"zoominfo_url": {
"value": "<string>",
"value_type": "string"
},
"x_url": {
"value": "<string>",
"value_type": "string"
},
"facebook_url": {
"value": "<string>",
"value_type": "string"
},
"owner_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"owner_team_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"updated_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"archived_by_user_id": {
"value": {
"related_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"related_record_type": "<string>"
},
"value_type": "record_reference"
},
"created_source": {
"value": "<string>",
"value_type": "enum"
},
"created_source_form_submission_details": {
"value": {
"form_submission_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"form_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_event_occurred_at": "2023-11-07T05:31:56Z",
"utm_campaign": "<string>",
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_content": "<string>",
"utm_term": "<string>"
},
"value_type": "created_source_form_submission_details"
},
"phone_enriched_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"email_enriched_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"email_enrich_status": {
"value": "<string>",
"value_type": "enum"
},
"phone_number_enrich_status": {
"value": "<string>",
"value_type": "enum"
},
"last_activity_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_voice_call": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_meeting": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_global_thread": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_engaged_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outreached_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_meeting_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_voice_call_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_inbound_global_thread_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_meeting_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_voice_call_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"last_outbound_global_thread_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
},
"archived_at": {
"value": "2023-11-07T05:31:56Z",
"value_type": "timestamp"
}
},
"record_type": "contact"
},
"meta": {
"matched_on": {}
}
}Authorizations
Reevo API key passed as Authorization: Bearer <api-key>.
Body
Assert (upsert) request — match block + create-shape attributes.
Per FR-035 the assert body carries no relationships block;
relationships are written via the relationship sub-resource endpoint
(contracts/07). The match-key field is immutable on the update branch, so
a key present in BOTH match and attributes is a structural
conflict rejected here with a generic 422. An empty attributes
block (zero set fields) is likewise structural: an assert must carry at
least one attribute so the no-match branch can CREATE the record.
Create standard-field surface.
display_name is NOT writable: core ContactV2.display_name is
is_ui_editable=False (server-derived from first / last), so it is absent
from the create surface and rendered only on the response.
Show child attributes
Show child attributes
Assert match against any address in the contact's contact_emails
array (C14).
Each contact_email row's email field is is_unique=true on the
descriptor, so the match value resolves to at most one contact. The primary
email is itself a member of contact_emails, so this single key covers
matching by primary email too.
Show child attributes
Show child attributes
Was this page helpful?