# Contacts

Operations related to contacts

## Get all Contacts

> Returns a list of contacts with pagination support.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts":{"get":{"operationId":"PublicApiContactController_getContacts","summary":"Get all Contacts","description":"Returns a list of contacts with pagination support.","parameters":[{"name":"page","required":false,"in":"query","description":"Page number to retrieve.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.","schema":{"type":"number"}},{"name":"email","required":false,"in":"query","description":"Contact email to filter contacts by (partial match).","schema":{"type":"string"}},{"name":"name","required":false,"in":"query","description":"Contact name to filter contacts by (partial match).","schema":{"type":"string"}},{"name":"opportunityId","required":false,"in":"query","description":"Opportunity ID to filter contacts by.","schema":{"type":"string"}},{"name":"companyId","required":false,"in":"query","description":"Company ID to filter contacts by.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetContactsResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetContactsResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicApiContactDto"}}},"required":["statusCode","count","error","data"]},"PublicApiContactDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the contact"},"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"},"createdAt":{"format":"date-time","type":"string","description":"Creation date"},"updatedAt":{"format":"date-time","type":"string","description":"Last update date"},"personId":{"type":"string","description":"ID of the person associated with this contact"}},"required":["id","email","createdAt","updatedAt","personId"]}}}}
```

## Create Contact

> Creates a new contact.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts":{"post":{"operationId":"PublicApiContactController_createContact","summary":"Create Contact","description":"Creates a new contact.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiCreateContactDto":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"}},"required":["email"]},"PublicApiCreateContactResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"$ref":"#/components/schemas/PublicApiContactDto"}},"required":["statusCode","count","error","data"]},"PublicApiContactDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the contact"},"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"},"createdAt":{"format":"date-time","type":"string","description":"Creation date"},"updatedAt":{"format":"date-time","type":"string","description":"Last update date"},"personId":{"type":"string","description":"ID of the person associated with this contact"}},"required":["id","email","createdAt","updatedAt","personId"]}}}}
```

## Get Contact by ID

> Get a contact by ID.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}":{"get":{"operationId":"PublicApiContactController_getContactById","summary":"Get Contact by ID","description":"Get a contact by ID.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to retrieve.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetContactByIdResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetContactByIdResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"$ref":"#/components/schemas/PublicApiContactDto"}},"required":["statusCode","count","error","data"]},"PublicApiContactDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the contact"},"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"},"createdAt":{"format":"date-time","type":"string","description":"Creation date"},"updatedAt":{"format":"date-time","type":"string","description":"Last update date"},"personId":{"type":"string","description":"ID of the person associated with this contact"}},"required":["id","email","createdAt","updatedAt","personId"]}}}}
```

## Update Contact

> Updates an existing contact.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}":{"put":{"operationId":"PublicApiContactController_updateContact","summary":"Update Contact","description":"Updates an existing contact.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to update.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiUpdateContactDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiUpdateContactResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiUpdateContactDto":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"}}},"PublicApiUpdateContactResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"$ref":"#/components/schemas/PublicApiContactDto"}},"required":["statusCode","count","error","data"]},"PublicApiContactDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the contact"},"firstName":{"type":"string","description":"First name of the contact"},"lastName":{"type":"string","description":"Last name of the contact"},"salutation":{"type":"string","description":"Salutation of the contact"},"birthday":{"format":"date-time","type":"string","description":"Birthday of the contact"},"email":{"type":"string","description":"Email address of the contact"},"phone":{"type":"string","description":"Phone number of the contact"},"genderIdentity":{"type":"string","description":"Gender identity of the contact"},"pronouns":{"type":"string","description":"Pronouns of the contact"},"fax":{"type":"string","description":"Fax number of the contact"},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the contact"},"address":{"type":"string","description":"Address of the contact"},"postalCode":{"type":"string","description":"Postal code of the contact"},"city":{"type":"string","description":"City of the contact"},"state":{"type":"string","description":"State of the contact"},"country":{"type":"string","description":"Country of the contact"},"currency":{"type":"string","description":"Currency preference of the contact"},"titlePosition":{"type":"string","description":"Title/Position of the contact"},"language":{"type":"string","description":"Language preference of the contact"},"assistant":{"type":"string","description":"Assistant name of the contact"},"assistantPhone":{"type":"string","description":"Assistant phone number"},"division":{"type":"string","description":"Division of the contact"},"department":{"type":"string","description":"Department of the contact"},"description":{"type":"string","description":"Description of the contact"},"leadSource":{"type":"string","description":"Lead source of the contact"},"leadRecordType":{"type":"string","description":"Lead record type"},"reportsTo":{"type":"string","description":"Reports to contact ID"},"createdAt":{"format":"date-time","type":"string","description":"Creation date"},"updatedAt":{"format":"date-time","type":"string","description":"Last update date"},"personId":{"type":"string","description":"ID of the person associated with this contact"}},"required":["id","email","createdAt","updatedAt","personId"]}}}}
```

## Delete Contact

> Deletes a contact by ID.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}":{"delete":{"operationId":"PublicApiContactController_deleteContact","summary":"Delete Contact","description":"Deletes a contact by ID.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to delete.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiDeleteContactResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiDeleteContactResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"boolean"}},"required":["statusCode","count","error","data"]}}}}
```

## Get Contact Integrations

> Returns a list of integrations for a given contact ID.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/integrations":{"get":{"operationId":"PublicApiContactController_getContactIntegrations","summary":"Get Contact Integrations","description":"Returns a list of integrations for a given contact ID.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to get integrations from.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetContactIntegrationsResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetContactIntegrationsResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"$ref":"#/components/schemas/PublicApiContactIntegrationsResponseDto"}},"required":["statusCode","count","error","data"]},"PublicApiContactIntegrationsResponseDto":{"type":"object","properties":{"contactId":{"type":"string","description":"Contact ID"},"integrations":{"description":"List of contact integrations","type":"array","items":{"$ref":"#/components/schemas/PublicApiContactIntegrationDto"}}},"required":["contactId","integrations"]},"PublicApiContactIntegrationDto":{"type":"object","properties":{"integrationType":{"type":"string","description":"Integration type"},"integrationName":{"type":"string","description":"Integration name"},"integrationId":{"type":"string","description":"ID of the record in the integration"}},"required":["integrationType","integrationName","integrationId"]}}}}
```

## Get Contact Companies

> Returns a list of companies associated with a contact.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/companies":{"get":{"operationId":"PublicApiContactController_getContactCompanies","summary":"Get Contact Companies","description":"Returns a list of companies associated with a contact.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to get companies from.","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number to retrieve.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetContactCompaniesResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetContactCompaniesResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicApiContactCompanyDto"}}},"required":["statusCode","count","error","data"]},"PublicApiContactCompanyDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Company ID"},"companyName":{"type":"string","description":"Company name"},"companyDomain":{"type":"string","description":"Company domain"}},"required":["companyId","companyName"]}}}}
```

## Create Contact Company Relationship

> Creates a relationship between a contact and a company.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/companies":{"post":{"operationId":"PublicApiContactController_createContactCompany","summary":"Create Contact Company Relationship","description":"Creates a relationship between a contact and a company.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactCompanyDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactCompanyResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiCreateContactCompanyDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Company ID"}},"required":["companyId"]},"PublicApiCreateContactCompanyResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"boolean"}},"required":["statusCode","count","error","data"]}}}}
```

## Get Contact Opportunities

> Returns a list of opportunities associated with a contact.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/opportunities":{"get":{"operationId":"PublicApiContactController_getContactOpportunities","summary":"Get Contact Opportunities","description":"Returns a list of opportunities associated with a contact.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to get opportunities from.","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number to retrieve.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetContactOpportunitiesResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetContactOpportunitiesResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicApiContactOpportunityDto"}}},"required":["statusCode","count","error","data"]},"PublicApiContactOpportunityDto":{"type":"object","properties":{"opportunityId":{"type":"string","description":"Opportunity ID"},"opportunityName":{"type":"string","description":"Opportunity name"},"opportunityAmount":{"type":"number","description":"Opportunity amount"},"opportunityStatus":{"type":"string","description":"Opportunity status"}},"required":["opportunityId","opportunityName"]}}}}
```

## Create Contact Opportunity Relationship

> Creates a relationship between a contact and an opportunity.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/opportunities":{"post":{"operationId":"PublicApiContactController_createContactOpportunity","summary":"Create Contact Opportunity Relationship","description":"Creates a relationship between a contact and an opportunity.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactOpportunityDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiCreateContactOpportunityResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiCreateContactOpportunityDto":{"type":"object","properties":{"opportunityId":{"type":"string","description":"Opportunity ID"}},"required":["opportunityId"]},"PublicApiCreateContactOpportunityResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"boolean"}},"required":["statusCode","count","error","data"]}}}}
```

## Get Contact Meetings

> Returns meetings linked to the contact (via meeting-contact relations).

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/meetings":{"get":{"operationId":"PublicApiContactController_getContactMeetings","summary":"Get Contact Meetings","description":"Returns meetings linked to the contact (via meeting-contact relations).","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID to list meetings for.","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number to retrieve.","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiGetMeetingsResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiGetMeetingsResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicApiMeetingDto"}}},"required":["statusCode","count","error","data"]},"PublicApiMeetingDto":{"type":"object","properties":{"meetingId":{"type":"string","description":"Unique identifier for the meeting"},"status":{"type":"string","enum":["scheduled","processing","completed"],"description":"Current status of the meeting"},"name":{"type":"string","description":"Name or title of the meeting"},"startDateTime":{"format":"date-time","type":"string","description":"Date and time when the meeting is scheduled to start"},"endDateTime":{"format":"date-time","type":"string","description":"Date and time when the meeting ended "},"duration":{"type":"number","description":"Duration of the meeting in seconds"},"description":{"type":"string","description":"Detailed description of the meeting"},"mediaType":{"type":"string","enum":["videocall","presential","phonecall"],"description":"Media type of the meeting"},"language":{"type":"string","description":"Language of the meeting in ISO 639-1 format"},"thumbnailUrl":{"type":"string","description":"URL of the meeting thumbnail image"},"meetingType":{"description":"Meeting type associated with this meeting ","allOf":[{"$ref":"#/components/schemas/PublicApiMeetingTypeDto"}]},"aiScore":{"type":"number","description":"AI score or rating of the meeting "},"url":{"type":"string","description":"URL of the meeting"},"calendarEventId":{"type":"string","description":"Unique identifier of the calendar event, if the meeting is associated with a calendar event"}},"required":["meetingId","status","name","startDateTime","url"]},"PublicApiMeetingTypeDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the meeting type"},"name":{"type":"string","description":"Descriptive name of the meeting type"}},"required":["id","name"]}}}}
```

## Delete Contact Company Relationship

> Deletes a relationship between a contact and a company.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/companies/{companyId}":{"delete":{"operationId":"PublicApiContactController_deleteContactCompany","summary":"Delete Contact Company Relationship","description":"Deletes a relationship between a contact and a company.","parameters":[{"name":"id","required":true,"in":"path","description":"Contact ID.","schema":{"type":"string"}},{"name":"companyId","required":true,"in":"path","description":"Company ID.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiDeleteContactCompanyResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiDeleteContactCompanyResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"boolean"}},"required":["statusCode","count","error","data"]}}}}
```

## Delete Contact Opportunity Relationship

> Deletes a relationship between a contact and an opportunity.

```json
{"openapi":"3.0.0","info":{"title":"Salescaling API","version":"1.0"},"tags":[{"name":"Contacts","description":"Operations related to contacts"}],"servers":[{"url":"https://api.salescaling.com","description":"Base API URL"}],"security":[{},{"bearer":[]}],"paths":{"/api/v1/contacts/{id}/opportunities/{opportunityId}":{"delete":{"operationId":"PublicApiContactController_deleteContactOpportunity","summary":"Delete Contact Opportunity Relationship","description":"Deletes a relationship between a contact and an opportunity.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"opportunityId","required":true,"in":"path","description":"Opportunity ID.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiDeleteContactOpportunityResponseDto"}}}},"401":{"description":"Unauthorized - missing or invalid API key or Bearer token"}},"tags":["Contacts"]}}},"components":{"schemas":{"PublicApiDeleteContactOpportunityResponseDto":{"type":"object","properties":{"statusCode":{"type":"number","default":200},"count":{"type":"number"},"error":{"type":"string","nullable":true},"data":{"type":"boolean"}},"required":["statusCode","count","error","data"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.salescaling.com/api/contacts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
