---
title: "contacts2contacts"
description: "REST API endpoints for contacts2contacts."
canonical_url: "https://www.zeyos.com/api/contacts-2-contacts"
markdown_url: "https://www.zeyos.com/ai/guide/api/contacts-2-contacts.md"
section: "api-reference"
authority: "reference"
language: "en"
source_repository: "https://cloud.zeyos.com/__doc/openapi/api.json"
source_sha256: "f5850c6fa6f99a1b518fc8ddc4e566070b53b5506cde57a3299948d38fc6363c"
---

# ZeyOS Standard REST API (v1)

## Tag: contacts2contacts
Contacts-to-contacts

## Spec
- /__doc/openapi/api.json

## Servers
- https://cloud.zeyos.com/{INSTANCE}/api/v1 — ZeyOS Cloud

## Authentication
- oauth (oauth2) — OAuth 2.0 Authorization ([RFC 6749](https://tools.ietf.org/html/rfc6749)); use the **[ZeyOS OAuth 2.0 API](https://developers.zeyos.com/oauth2) `POST /oauth2/v1/token`** to obtain a valid bearer token
- token (http) — HTTP Bearer Authentication ([RFC 6750](https://tools.ietf.org/html/rfc6750))
- session (apiKey) — Session Cookie Authentication ([RFC 6265](https://tools.ietf.org/html/rfc6265))

## Endpoints
| Method | Path | Summary |
| ------ | ---- | ------- |
| POST | /contacts2contacts | List contacts-to-contacts |
| PUT | /contacts2contacts | Create new contact-to-contact |
| DELETE | /contacts2contacts/{ID} | Delete contact-to-contact |
| GET | /contacts2contacts/{ID} | Get contact-to-contact |
| HEAD | /contacts2contacts/{ID} | Check if contact-to-contact exists |
| PATCH | /contacts2contacts/{ID} | Update existing contact-to-contact |

### POST /contacts2contacts
- Summary: List contacts-to-contacts
- OperationId: listContactsToContacts
- Description: List selected data from all contacts-to-contacts that match the specified filter and search criteria in a specific sort order. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- (none)

Request body:
- #/components/requestBodies/list

Responses:
- 200 — OK
  - application/json — array
- 401: #/components/responses/401
- 403: #/components/responses/403
- 500: #/components/responses/500

### PUT /contacts2contacts
- Summary: Create new contact-to-contact
- OperationId: createContactToContact
- Description: Create a new contact-to-contact and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- (none)

Request body:
- #/components/requestBodies/contacts2contacts

Responses:
- 201 — Successful Creation (Created)
  - application/json — #/components/schemas/contacts2contacts
- 401: #/components/responses/401
- 403: #/components/responses/403
- 409 — ID Present (Conflict)
- 410 — Gone
- 500: #/components/responses/500

### DELETE /contacts2contacts/{ID}
- Summary: Delete contact-to-contact
- OperationId: deleteContactToContact
- Description: Permanently delete an existing contact-to-contact by **`ID`**. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- #/components/parameters/ID
- #/components/parameters/If-Match
- #/components/parameters/If-Unmodified-Since

Request body:
- (none)

Responses:
- 204 — Successful Deletion (No Content)
- 401: #/components/responses/401
- 403: #/components/responses/403
- 404 — Not Found
- 409 — Not Deletable (Conflict)
- 412 — Non-matching ETag (Precondition Failed)
- 500: #/components/responses/500

### GET /contacts2contacts/{ID}
- Summary: Get contact-to-contact
- OperationId: getContactToContact
- Description: Return the data of an existing contact-to-contact by **`ID`**. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- #/components/parameters/ID
- #/components/parameters/expand
- #/components/parameters/If-Modified-Since
- #/components/parameters/If-None-Match

Request body:
- (none)

Responses:
- 200 — OK
  - application/json — #/components/schemas/contacts2contacts
- 304 — Not Modified
- 401: #/components/responses/401
- 403: #/components/responses/403
- 404 — Not Found
- 500: #/components/responses/500

### HEAD /contacts2contacts/{ID}
- Summary: Check if contact-to-contact exists
- OperationId: existsContactToContact
- Description: Check if a contact-to-contact with **`ID`** exists, but do not return its data. Requires `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- #/components/parameters/ID
- #/components/parameters/If-Modified-Since
- #/components/parameters/If-None-Match

Request body:
- (none)

Responses:
- 204: #/components/responses/204-exists
- 304 — Not Modified
- 401: #/components/responses/401
- 404 — Not Found
- 500: #/components/responses/500

### PATCH /contacts2contacts/{ID}
- Summary: Update existing contact-to-contact
- OperationId: updateContactToContact
- Description: Update an existing contact-to-contact by **`ID`** and return its persistent data. Requires writable `contacts` permission. Has dependencies on `contact1` and `contact2`.

Parameters:
- #/components/parameters/ID
- #/components/parameters/If-Match
- #/components/parameters/If-Unmodified-Since

Request body:
- #/components/requestBodies/contacts2contacts

Responses:
- 200 — Successful Update (OK)
  - application/json — #/components/schemas/contacts2contacts
- 401: #/components/responses/401
- 403: #/components/responses/403
- 404 — Not Found
- 409 — Non-matching ID (Conflict)
- 410 — Gone
- 412 — Non-matching ETag (Precondition Failed)
- 500: #/components/responses/500
