Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/push-contact-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cendyn CRM (PUSHTech) REST Contact API
version: v2
description: 'Token-authenticated REST API for the Cendyn CRM (formerly PUSHTech) hospitality CRM / CDP platform. Manage account balance, contacts and contact custom fields, companies, products, coupon lists, purchases, hotel data, audience lists and campaigns, and send email, SMS and push deliveries.
This document was DERIVED by API Evangelist from the provider''s own published, server-rendered API reference at https://developers.cendyncrm.com/api/docs (Apitome / rspec_api_documentation). Cendyn CRM does not publish an OpenAPI document; every path, HTTP method, parameter name, parameter description and example payload here is copied verbatim from that reference. Nothing was invented.'
contact:
name: Cendyn
url: https://www.cendyn.com/contact-us/
termsOfService: https://www.cendyn.com/terms-of-use/
x-provenance:
publisher: API Evangelist
method: derived
derived_from: https://developers.cendyncrm.com/api/docs
provider_published_openapi: false
note: NOT published by Cendyn. Derived from the provider's public HTML API reference; verify against the live docs before production use.
servers:
- url: https://api.eu.cendyncrm.com
description: EU data center
- url: https://api.us.cendyncrm.com
description: US data center
security:
- accountToken: []
tags:
- name: Contact
paths:
/v2/account/{account_id}/contact:
post:
operationId: createContact
summary: Create — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/create
x-source-path: /v2/account/{account_id}/contact/
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
device_id:
description: Contact associated device_id
name_first:
description: Name of the contact
name_last:
description: Last name of the contact
email:
description: Email of the contact
phone_countrycode:
description: Country code of the contact phone
phone_number:
description: Phone number without country code of the contact
phone:
description: Full phone number with country code of the contact
city:
description: City of the contact
country:
description: Country of the contact
region:
description: Region of the contact
zip:
description: Zip code of the contact
full_address:
description: Address of the contact
born_date:
type: string
format: date-time
description: 'The date of the birthday in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
gender:
description: Gender of the contact (MALE or FEMALE)
language:
description: 'Language of the contact in ISO-2 format, Example: ES'
user_id:
description: Unique identifier of contact in your backend
facebook_id:
description: Facebook id of the contact
facebook_friends:
type: number
description: Number of the friends in facebook of the contact
google_id:
description: Google+ id of the contact
twitter_id:
description: Twitter id of the contact
twitter_followers:
type: number
description: Number of the followers in twitter of the contact
gdpr_date:
type: string
format: date-time
description: 'Date for GDPR changes in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
last_latitude:
type: number
description: 'Last GPS latitude, Number, example: 27.994401'
last_longitude:
type: number
description: 'Last GPS longitude, Number, example: -81.726896'
'[custom field]':
description: You can create a custom field and use in every contact, only add parameter in the json with the name of custom ( no label)
list_subscriptions[list_id]:
description: Id of audience list
list_subscriptions[subscribed]:
type: boolean
description: If true, subscribe in this list
gdpr_marketing_consent:
type: boolean
description: 'Boolean type: If true, the contact accepted marketing consent'
gdpr_accept_terms:
type: boolean
description: 'Boolean type: If true, the contact accepted your terms'
gdpr_remote_ip:
description: 'String type: Contact IP when accepted GDPR'
email_validation:
description: Json with email_validation parameters
email_validation[validate]:
type: boolean
description: 'Boolean, if true, validate contact Email, Default: false'
email_validation[create_if_invalid]:
type: boolean
description: 'Boolean: If true, the contact contact will be created if Email is not valid, Default: false'
email_validation[create_if_no_credit]:
type: boolean
description: 'Boolean: If true, create contact if the account hasn''t credit for validation, Default: false'
example:
name_first: John
name_last: Doe
email: '[email protected]'
phone_countrycode: '44'
phone_number: '7712345678'
tags:
- tag1
- tag2
responses:
'201':
description: Successful response
content:
application/json:
example:
id: 550aac3da096734ce5000001
name_first: John
name_last: Doe
phone_countrycode: '44'
phone_number: '7712345678'
email: '[email protected]'
tags:
- tag1
- tag2
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
get:
operationId: listContact
summary: List — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/list
x-source-path: /v2/account/{account_id}/contact/
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: user_id
in: query
required: false
schema:
type: string
description: 'Search by: Contact user_id'
- name: device_id
in: query
required: false
schema:
type: string
description: 'Search by: Contact associated device_id'
- name: name_first
in: query
required: false
schema:
type: string
description: 'Search by: Name of the contact'
- name: name_last
in: query
required: false
schema:
type: string
description: 'Search by: Last name of the contact'
- name: email
in: query
required: false
schema:
type: string
description: 'Search by: Email fo the contact'
- name: phone_countrycode
in: query
required: false
schema:
type: string
description: 'Search by: Country code of the contact phone'
- name: phone_number
in: query
required: false
schema:
type: string
description: 'Search by: Phone number without country code of the contact'
- name: limit
in: query
required: false
schema:
type: string
description: 'limit of number contacts returns, default: 200'
- name: contact_id_from
in: query
required: false
schema:
type: string
description: Contact id to start the list
- name: order
in: query
required: false
schema:
type: string
description: 'creation_date order asc or desc, default: asc'
responses:
'200':
description: Successful response
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
/v2/account/{account_id}/contact/bulk:
post:
operationId: createBulkContact
summary: Create Bulk — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/create_bulk
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
contacts:
description: Array of contact data. Maximum of 5000 contacts per request.
match_contact_user_id:
type: boolean
description: 'If true, update the contact who have this user_id on the Cendyn CRM platform, else create a new one. By default: false'
webhook_url:
description: A URL designated to receive notifications or data via webhook transmissions.
validate_emails:
type: boolean
description: 'If true, validate all contact´s emails of the bulk. This service has an extra cost and will use credits of your Pushtech account. If not enought credits the import will be processed without emails validation. By default: false'
contacts_webhook_extra_fields:
description: 'Array that contain extra fields needed to be sent by the webhook. By default it is sent by the webhook the following fields: _id, user_id, email, phone_countrycode, phone_number'
contacts[device_id]:
description: Contact associated device_id
contacts[name_first]:
description: Name of the contact
contacts[name_last]:
description: Last name of the contact
contacts[email]:
description: Email of the contact
contacts[phone_countrycode]:
description: Country code of the contact phone
contacts[phone_number]:
description: Phone number without country code of the contact
contacts[phone]:
description: Full phone number with country code of the contact
contacts[city]:
description: City of the contact
contacts[country]:
description: Country of the contact
contacts[region]:
description: Region of the contact
contacts[zip]:
description: Zip code of the contact
contacts[full_address]:
description: Address of the contact
contacts[born_date]:
type: string
format: date-time
description: 'The date of the birthday in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
contacts[gender]:
description: Gender of the contact (MALE or FEMALE)
contacts[language]:
description: 'Language of the contact in ISO-2 format, Example: ES'
contacts[user_id]:
description: Unique identifier of contact in your backend
contacts[facebook_id]:
description: Facebook id of the contact
contacts[facebook_friends]:
type: number
description: Number of the friends in facebook of the contact
contacts[google_id]:
description: Google+ id of the contact
contacts[twitter_id]:
description: Twitter id of the contact
contacts[twitter_followers]:
type: number
description: Number of the followers in twitter of the contact
contacts[tags]:
description: Array containing tags for this contact
contacts[list_subscriptions[list_id]]:
description: Id of audience list
contacts[list_subscriptions[subscribed]]:
type: boolean
description: If true, subscribe from this list
contacts[channel_subscriptions[channel]]:
description: 'Name of channel. Options: [email, sms, push]'
contacts[channel_subscriptions[blacklisted]]:
type: boolean
description: If true, blacklist this channel
contacts[gdpr_accept_terms]:
type: boolean
description: 'Boolean type: If true, the contact accepted your terms'
contacts[gdpr_marketing_consent]:
type: boolean
description: 'Boolean type: If true, the contact accepted marketing consent'
contacts[gdpr_date]:
type: string
format: date-time
description: 'Date for GDPR changes in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
contacts[gdpr_remote_ip]:
description: 'String type: Contact IP when accepted GDPR'
contacts[[custom field]]:
description: You can create a custom field and use in every contact, only add parameter in the json with the name of custom (no label)
required:
- contacts
example:
webhook_url: https://requestb.in/qxvaw0qx
match_contact_user_id: false
validate_emails: false
contacts_webhook_extra_fields:
- name_first
contacts:
- name_first: John
name_last: Doe
email: '[email protected]'
phone_countrycode: '44'
phone_number: '7712345678'
- name_first: John
name_last: Doe
email: '[email protected]'
phone_countrycode: '44'
phone_number: '7712345678'
responses:
'201':
description: Successful response
content:
application/json:
example:
bulk:
_id: 550aac3da096734ce5000001
number_of_contacts: 2
match_contact_user_id: false
validate_emails: false
contacts_webhook_extra_fields:
- name_first
webhook_url: https://requestb.in/qxvaw0qx
status: queue
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
/v2/account/{account_id}/contact/bulk/{bulk_id}:
get:
operationId: getBulkContact
summary: Get Bulk — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/get_bulk
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: bulk_id
in: path
required: true
schema:
type: string
description: Bulk id
responses:
'200':
description: Successful response
content:
application/json:
example:
bulk:
_id: 550aac3da096734ce5000001
number_of_contacts: 2
match_contact_user_id: false
validate_emails: false
contacts_webhook_extra_fields:
- name_first
webhook_url: https://requestb.in/qxvaw0qx
status: queue
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
/v2/account/{account_id}/contact/{contact_id}:
get:
operationId: showContact
summary: Show — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/show
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: contact_id
in: path
required: true
schema:
type: string
description: Id of the contact to be showed
responses:
'200':
description: Successful response
content:
application/json:
example:
id: 550aac3da096734ce5000001
name_first: John
name_last: Doe
phone_countrycode: '44'
phone_number: '7712345678'
email: '[email protected]'
tags:
- tag1
- tag2
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
put:
operationId: updateContact
summary: Update — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/update
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: contact_id
in: path
required: true
schema:
type: string
description: Id of the contact to be updated
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
device_id:
description: Contact associated device_id
name_first:
description: Name of the contact
name_last:
description: Last name of the contact
email:
description: Email fo the contact
phone_countrycode:
description: Country code of the contact phone
phone_number:
description: Phone number without country code of the contact
phone:
description: Full phone number with country code of the contact
city:
description: City of the contact
country:
description: Country of the contact
region:
description: Region of the contact
zip:
description: Zip code of the contact
full_address:
description: Address of the contact
born_date:
type: string
format: date-time
description: 'The date of the birthday in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
gender:
description: Gender of the contact (MALE or FEMALE)
language:
description: 'Language of the contact in ISO-2 format, Example: ES'
user_id:
description: Unique identifier of contact in your backend
facebook_id:
description: Facebook id of the contact
facebook_friends:
type: number
description: Number of the friends in facebook of the contact
google_id:
description: Google+ id of the contact
twitter_id:
description: Twitter id of the contact
twitter_followers:
type: number
description: Number of the followers in twitter of the contact
tags:
description: Array containing tags for this contact
last_latitude:
type: number
description: 'Last GPS latitude, Number, example: 27.994401'
last_longitude:
type: number
description: 'Last GPS longitude, Number, example: -81.726896'
'[custom field]':
description: You can create a custom field and use in every contact, only add parameter in the json with the name of custom ( no label)
list_subscriptions[list_id]:
description: Id of audience list
list_subscriptions[subscribed]:
type: boolean
description: If true, subscribe in this list
channel_subscriptions[channel]:
description: 'Name of channel. Options: [email, sms, push]'
channel_subscriptions[blacklisted]:
type: boolean
description: If true, blacklist this channel
gdpr_marketing_consent:
type: boolean
description: 'Boolean type: If true, the contact accepted marketing consent'
gdpr_accept_terms:
type: boolean
description: 'Boolean type: If true, the contact accepted your terms'
gdpr_date:
type: string
format: date-time
description: 'Date for GDPR changes in ISO_8601 format, Example: 1990-01-01T00:00:00Z'
gdpr_remote_ip:
description: 'String type: Contact IP when accepted GDPR'
example:
name_first: John
name_last: Doe
email: '[email protected]'
phone_countrycode: '44'
phone_number: '7712345678'
tags:
- tag1
- tag2
responses:
'200':
description: Successful response
content:
application/json:
example:
id: 550aac3da096734ce5000001
name_first: John
name_last: Doe
phone_countrycode: '44'
phone_number: '7712345678'
email: '[email protected]'
tags:
- tag1
- tag2
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
delete:
operationId: deleteContact
summary: Delete — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/delete
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: contact_id
in: path
required: true
schema:
type: string
description: Id of the contact to be deleted
responses:
'200':
description: Successful response
content:
application/json:
example:
id: 550aac3da096734ce5000001
name_first: John
name_last: Doe
phone_countrycode: '44'
phone_number: '7712345678'
email: '[email protected]'
tags:
- tag1
- tag2
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
/v2/account/{account_id}/contact/{contact_id}/email_validation:
get:
operationId: emailValidationContact
summary: Email validation — Contact
tags:
- Contact
externalDocs:
description: Cendyn CRM API reference
url: https://developers.cendyncrm.com/api/docs/contact/email_validation
parameters:
- name: account_id
in: path
required: true
schema:
type: string
description: Your account unique identifier to access API.
- name: contact_id
in: path
required: true
schema:
type: string
description: Id of the contact for the email validation
responses:
'200':
description: Successful response
content:
application/json:
example:
email_valid: true
last_email_verified: '2020-06-16T08:25:03.230+00:00'
'401':
description: 'Unauthorized — missing or invalid `Authorization: Token token=...` header.'
components:
securitySchemes:
accountToken:
type: apiKey
in: header
name: Authorization
description: 'Account token authentication. Send `Authorization: Token token={account.secret}`. Some operations require the account master secret (`Token token={account.master_secret}`).'
externalDocs:
description: Cendyn CRM Developers Central
url: https://developers.cendyncrm.com/api