Upsert a contact
curl --request POST \
--url https://incoming.qomon.app/contacts/upsert \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"actions": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"address": {
"addition": "<string>",
"building": "<string>",
"city": "<string>",
"citycode": "<string>",
"country": "<string>",
"county": "<string>",
"door": "<string>",
"floor": "<string>",
"housenumber": "<string>",
"id": 1,
"infos": "<string>",
"latitude": "<string>",
"longitude": "<string>",
"pollingstation": "<string>",
"postalcode": "<string>",
"state": "<string>",
"street": "<string>"
},
"age_category": 123,
"birthcity": "<string>",
"birthcountry": "<string>",
"birthdate": "<string>",
"birthdept": "<string>",
"black_list": true,
"consents": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"custom_fields": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"firstname": "<string>",
"forms": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"id": 1,
"mail": "jsmith@example.com",
"married_name": "<string>",
"mobile": "<string>",
"name_presences": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"nationality": "<string>",
"nationbuilderid": 123,
"notes": [
{
"content": "<string>",
"id": 1,
"pinned": true
}
],
"phone": "<string>",
"status": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"surname": "<string>",
"tags": [
{
"name": "<string>"
}
]
},
"kind": "contact"
}
'{
"detail": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "about:blank"
}Contacts
Upsert a contact
Asynchronously creates or updates a contact in the Qomon database. See the upsert rules in the documentation.
POST
/
contacts
/
upsert
Upsert a contact
curl --request POST \
--url https://incoming.qomon.app/contacts/upsert \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"data": {
"actions": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"address": {
"addition": "<string>",
"building": "<string>",
"city": "<string>",
"citycode": "<string>",
"country": "<string>",
"county": "<string>",
"door": "<string>",
"floor": "<string>",
"housenumber": "<string>",
"id": 1,
"infos": "<string>",
"latitude": "<string>",
"longitude": "<string>",
"pollingstation": "<string>",
"postalcode": "<string>",
"state": "<string>",
"street": "<string>"
},
"age_category": 123,
"birthcity": "<string>",
"birthcountry": "<string>",
"birthdate": "<string>",
"birthdept": "<string>",
"black_list": true,
"consents": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"custom_fields": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"firstname": "<string>",
"forms": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"id": 1,
"mail": "jsmith@example.com",
"married_name": "<string>",
"mobile": "<string>",
"name_presences": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"nationality": "<string>",
"nationbuilderid": 123,
"notes": [
{
"content": "<string>",
"id": 1,
"pinned": true
}
],
"phone": "<string>",
"status": [
{
"id": 1,
"label": "<string>",
"value": "<string>"
}
],
"surname": "<string>",
"tags": [
{
"name": "<string>"
}
]
},
"kind": "contact"
}
'{
"detail": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "about:blank"
}Authorizations
OAuth2 access token. Pass the token in the Authorization header as Bearer <token>. The token is looked up in Redis to resolve the caller identity.
Body
application/json
Response
Accepted
Last modified on June 16, 2026
Was this page helpful?
⌘I

