Documentación
superleads.mx

Contacts

Referencia de la API · ☕ 17 min de lectura
Actualizado el 19 Jun 2026

Contacts API v3

Documentación de la API de Contacts

API Versión v3

Todos los endpoints estan disponibles bajo el prefijo /v3, con respuestas que siguen el estandar AIP.

Servidor base: https://services.leadconnectorhq.com

Endpoints


POST /contacts/search

Buscar contactos Search contacts based on combinations of advanced filters. Documentation Link - https://doc.clickup.com/8631005/d/h/87cpx-158396/6e629989abe7fad

Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API

Cuerpo de la peticion (application/json): - (ver esquema en la fuente original)

Respuestas: - 200 — Exitosa - 400 — Peticion invalida - 401 — No autorizado


GET /contacts/search/duplicate

Obtener contacto duplicado Get Duplicate Contact.

If Allow Duplicate Contact is disabled under Settings, the global unique identifier will be used for searching the contact. If the setting is enabled, first priority for search is email and the second priority will be phone.

Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - locationId (query, string) (requerido) — Id de sede - number (query, string) — Phone Number — URL-encoded. E.g. +1423164516 → %2B1423164516 - email (query, string) — Email — URL-encoded. E.g. test+abc@gmail.com → test%2Babc%40gmail.com

Respuestas: - 200 - 400 — Peticion invalida - 401 — No autorizado


GET /contacts/{contactId}/tasks

Obtener todas las tareas Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado


POST /contacts/{contactId}/tasks

Crear tarea Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - title (requerido) — string — Title of the task - body — string — Body or description of the task - dueDate (requerido) — string — Due date of the task (ISO 8601 format) - completed (requerido) — boolean — Whether the task is completed - assignedTo — string — User Id to whom the task is assigned

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/{contactId}/tasks/{taskId}

Obtener tarea Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - taskId (path, string) (requerido) — Id de tarea

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado


PUT /contacts/{contactId}/tasks/{taskId}

Actualizar tarea Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - taskId (path, string) (requerido) — Id de tarea

Cuerpo de la peticion (application/json): - title — string — Title of the task - body — string — Body or description of the task - dueDate — string — Due date of the task (ISO 8601 format) - completed — boolean — Whether the task is completed - assignedTo — string — User Id to whom the task is assigned

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/tasks/{taskId}

Eliminar tarea Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - taskId (path, string) (requerido) — Id de tarea

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado


PUT /contacts/{contactId}/tasks/{taskId}/completed

Actualizar Task Completed Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - taskId (path, string) (requerido) — Id de tarea

Cuerpo de la peticion (application/json): - completed (requerido) — boolean — Whether the task is completed

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/{contactId}/appointments

Obtener Appointments for Contact Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/{contactId}/tags

Agregar etiquetas Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - tags (requerido) — array — List of tags to add or remove

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/tags

Quitar etiquetas Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - tags (requerido) — array — List of tags to add or remove

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/{contactId}/notes

Obtener todas las notas Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado


POST /contacts/{contactId}/notes

Crear nota Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - userId — string — User Id of the note author - body (requerido) — string — Body content of the note - title — string — Title of the note - color — string — Hex color code for the note - pinned — boolean — Whether the note is pinned

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/{contactId}/notes/{id}

Obtener nota Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - id (path, string) (requerido) — Id de nota

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


PUT /contacts/{contactId}/notes/{id}

Actualizar nota Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - id (path, string) (requerido) — Id de nota

Cuerpo de la peticion (application/json): - userId — string — User Id of the note author - body — string — Body content of the note - title — string — Title of the note - color — string — Hex color code for the note - pinned — boolean — Whether the note is pinned

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/notes/{id}

Eliminar nota Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - id (path, string) (requerido) — Id de nota

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/bulk/tags/update/{type}

Actualizar Contacts Tags Allows you to update tags to multiple contacts at once, you can add or remove tags from the contacts

Parametros: - Versión (header, string) (requerido) — Versión de la API

Cuerpo de la peticion (application/json): - contacts (requerido) — array — list of contact ids to be processed - tags (requerido) — array — list of tags to be added or removed - locationId (requerido) — string — location id from where the bulk request is executed - removeAllTags — boolean — Option to implement remove all tags. if true, all tags will be removed from the contacts. Can only be used with remove type.

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 422 — Entidad no procesable


POST /contacts/bulk/business

Add/Remove Contacts From Business Add/Remove Contacts From Business . Passing a null businessId will remove the businessId from the contacts

Parametros: - Versión (header, string) (requerido) — Versión de la API

Cuerpo de la peticion (application/json): - locationId (requerido) — string — Location Id - ids (requerido) — array — List of contact Ids to update (maximum 50) - businessId (requerido) — string — Business Id to assign to contacts. Pass null to remove business association.

Respuestas: - 200 — Respuesta exitosa - 422 — Entidad no procesable


DELETE /contacts/{contactId}

Eliminar contacto Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/{contactId}

Obtener contacto Retrieves a contact by its unique identifier.

Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Unique identifier of the contact

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


PUT /contacts/{contactId}

Actualizar contacto Update a contact using contactId

Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Unique identifier of the contact

Cuerpo de la peticion (application/json): - firstName — string — First name of the contact - lastName — string — Last name of the contact - name — string — Full name of the contact - email — string — Email address of the contact - phone — string — Phone number of the contact - address1 — string — Street address of the contact - city — string — City of the contact - state — string — State of the contact - postalCode — string — Postal code of the contact - website — string — Website URL of the contact - timezone — string — Timezone of the contact - dnd — boolean — Whether Do Not Disturb is enabled for the contact - inboundDndSettings — — Inbound DND settings per channel for the contact - tags — array — This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. - customFields — array — List of custom field values to assign to the contact - source — string — Source from which the contact was updated - dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY - country — string — Country code of the contact (ISO 3166-1 alpha-2), Refer country list from documentaion, documentation has list of all countries - assignedTo — string — User's Id - dndSettings — — Per-channel DND settings for the contact

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/upsert

Crear o actualizar contacto The Upsert API will adhere to the configuration defined under the "Allow Duplicate Contact" setting at the Location level. If the setting is configured to check both Email and Phone, the API will attempt to identify an existing contact based on the priority sequence specified in the setting, and will create or update the contact accordingly.

If two separate contacts already exist—one with the same email and another with the same phone—and an upsert request includes both the email and phone, the API will update the contact that matches the first field in the configured sequence, and ignore the second field to prevent duplication.

Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API

Cuerpo de la peticion (application/json): - firstName — string — First name of the contact - lastName — string — Last name of the contact - name — string — Full name of the contact - email — string — Email address of the contact - locationId (requerido) — string — Location Id the contact should be created under - gender — string — Gender of the contact - phone — string — Phone number of the contact - address1 — string — Street address of the contact - city — string — City of the contact - state — string — State of the contact - postalCode — string — Postal code of the contact - website — string — Website URL of the contact - timezone — string — Timezone of the contact - dnd — boolean — Whether Do Not Disturb is enabled for the contact - inboundDndSettings — — Inbound DND settings per channel for the contact - tags — array — This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. - customFields — array — List of custom field values to assign to the contact - source — string — Source from which the contact was created - dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY - country — string — Country code of the contact (ISO 3166-1 alpha-2) - companyName — string — Company name of the contact - assignedTo — string — User's Id - createNewIfDuplicateAllowed — boolean — Controls whether to create a new contact or update an existing duplicate. Scenario 1: If this value is true and the location allows duplicate contacts, a new contact will be created immediately without checking for duplicates. Scenario 2: If this value is true but the location does not allow duplicate contacts, this field is ignored and the normal upsert behavior applies: the API will search for an existing duplicate contact, update it if found, or create a new contact if not found. Scenario 3: If this value is false or not provided, the normal upsert behavior applies regardless of the location's duplicate contact setting. - dndSettings — — Per-channel DND settings for the contact

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


GET /contacts/business/{businessId}

Obtener Contacts By BusinessId Scopes requeridos: contacts.readonly

Parametros: - Versión (header, string) (requerido) — Versión de la API - businessId (path, string) (requerido) — Id de empresa - limit (query, string) — Maximum number of records per page (up to 100, default 25) - locationId (query, string) (requerido) — Id de sede - skip (query, string) — Número de registros a omitir - query (query, string) — Search query (name, email, phone) - startAfter (query, array) — Cursor for pagination (comma-separated name,id pair)

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/{contactId}/followers

Agregar seguidores Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - followers (requerido) — array — List of user Ids to follow or unfollow the contact

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/followers

Quitar seguidores Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Cuerpo de la peticion (application/json): - followers (requerido) — array — List of user Ids to follow or unfollow the contact

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/{contactId}/campaigns/{campaignId}

Agregar Contact to Campaign Add contact to Campaign

Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - campaignId (path, string) (requerido) — Id de campaña

Cuerpo de la peticion (application/json): - (ver esquema en la fuente original)

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/campaigns/{campaignId}

Quitar Contact From Campaign Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - campaignId (path, string) (requerido) — Id de campaña

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/campaigns/remove-all

Quitar Contact From Every Campaign Removes the contact from every campaign it is enrolled in.

Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/{contactId}/workflow/{workflowId}

Agregar Contact to Workflow Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - workflowId (path, string) (requerido) — Id de flujo de trabajo

Cuerpo de la peticion (application/json): - eventStartTime — string — Start time of the workflow event (ISO 8601 format)

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


DELETE /contacts/{contactId}/workflow/{workflowId}

Eliminar Contact from Workflow Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API - contactId (path, string) (requerido) — Id de contacto - workflowId (path, string) (requerido) — Id de flujo de trabajo

Cuerpo de la peticion (application/json): - eventStartTime — string — Start time of the workflow event (ISO 8601 format)

Respuestas: - 200 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable


POST /contacts/

Crear contacto Create a new contact

Scopes requeridos: contacts.write

Parametros: - Versión (header, string) (requerido) — Versión de la API

Cuerpo de la peticion (application/json): - firstName — string — First name of the contact - lastName — string — Last name of the contact - name — string — Full name of the contact - email — string — Email address of the contact - locationId (requerido) — string — Location Id the contact should be created under - gender — string — Gender of the contact - phone — string — Phone number of the contact - address1 — string — Street address of the contact - city — string — City of the contact - state — string — State of the contact - postalCode — string — Postal code of the contact - website — string — Website URL of the contact - timezone — string — Timezone of the contact - dnd — boolean — Whether Do Not Disturb is enabled for the contact - inboundDndSettings — — Inbound DND settings per channel for the contact - tags — array — List of tags to assign to the contact - customFields — array — List of custom field values to assign to the contact - source — string — Source from which the contact was created - dateOfBirth — object — The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY - country — string — Country code of the contact (ISO 3166-1 alpha-2) - companyName — string — Company name of the contact - assignedTo — string — User's Id - dndSettings — — Per-channel DND settings for the contact

Respuestas: - 201 — Respuesta exitosa - 400 — Peticion invalida - 401 — No autorizado - 422 — Entidad no procesable