openapi: 3.0.3
info:
version: 10.10.0
title: CRM API
description: "Welcome to the CRM API.\n\nYou can use this API to access all CRM API endpoints.\n\n## Base URL\n\nThe base URL for all API requests is `https://unify.apideck.com`\n\n## Headers\n\nCustom headers that are expected as part of the request. Note that [RFC7230](https://tools.ietf.org/html/rfc7230) states header names are case insensitive.\n\n| Name | Type | Required | Description |\n| --------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| x-apideck-consumer-id | String | Yes | The id of the customer stored inside Apideck Vault. This can be a user id, account id, device id or whatever entity that can have integration within your app. |\n| x-apideck-service-id | String | No | Describe the service you want to call (e.g., pipedrive). Only needed when a customer has activated multiple integrations for the same Unified API. |\n| x-apideck-raw | Boolean | No | Include raw response. Mostly used for debugging purposes. |\n| x-apideck-app-id | String | Yes | The application id of your Unify application. Available at https://app.apideck.com/unify/api-keys. |\n| Authorization | String | Yes | Bearer API KEY |\n\n## Authorization\n\nYou can interact with the API through the authorization methods below.\n\n\n\n## Pagination\n\nAll API resources have support for bulk retrieval via list APIs. Apideck uses cursor-based pagination via the optional `cursor` and `limit` parameters.\n\nTo fetch the first page of results, call the list API without a `cursor` parameter. Afterwards you can fetch subsequent pages by providing a cursor parameter. You will find the next cursor in the response body in `meta.cursors.next`. If `meta.cursors.next` is `null` you're at the end of the list.\n\nIn the REST API you can also use the `links` from the response for added convenience. Simply call the URL in `links.next` to get the next page of results.\n\n### Query Parameters\n\n| Name | Type | Required | Description |\n| ------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------ |\n| cursor | String | No | Cursor to start from. You can find cursors for next & previous pages in the meta.cursors property of the response. |\n| limit | Number | No | Number of results to return. Minimum 1, Maximum 200, Default 20 |\n\n### Response Body\n\n| Name | Type | Description |\n| --------------------- | ------ | ------------------------------------------------------------------ |\n| meta.cursors.previous | String | Cursor to navigate to the previous page of results through the API |\n| meta.cursors.current | String | Cursor to navigate to the current page of results through the API |\n| meta.cursors.next | String | Cursor to navigate to the next page of results through the API |\n| meta.items_on_page | Number | Number of items returned in the data property of the response |\n| links.previous | String | Link to navigate to the previous page of results through the API |\n| links.current | String | Link to navigate to the current page of results through the API |\n| links.next | String | Link to navigate to the next page of results through the API |\n\n⚠️ `meta.cursors.previous`/`links.previous` is not available for all connectors.\n\n## SDKs and API Clients\n\nWe currently offer a [Node.js](https://developers.apideck.com/sdks/node), [PHP](https://developers.apideck.com/sdks/php), [Python](https://developers.apideck.com/sdks/python) and [.NET](https://developers.apideck.com/sdks/dot-net) SDK.\nNeed another SDK? [Request the SDK of your choice](https://requests.apideck.io/request).\n\n## Debugging\n\nBecause of the nature of the abstraction we do in Apideck Unify we still provide the option to the receive raw requests and responses being handled underlying. By including the raw flag `?raw=true` in your requests you can still receive the full request. Please note that this increases the response size and can introduce extra latency.\n\n## Errors\n\nThe API returns standard HTTP response codes to indicate success or failure of the API requests. For errors, we also return a customized error message inside the JSON response. You can see the returned HTTP status codes below.\n\n| Code | Title | Description |\n| ---- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 200 | OK | The request message has been successfully processed, and it has produced a response. The response message varies, depending on the request method and the requested data. |\n| 201 | Created | The request has been fulfilled and has resulted in one or more new resources being created. |\n| 204 | No Content | The server has successfully fulfilled the request and that there is no additional content to send in the response payload body. |\n| 400 | Bad Request | The receiving server cannot understand the request because of malformed syntax. Do not repeat the request without first modifying it; check the request for errors, fix them and then retry the request. |\n| 401 | Unauthorized | The request has not been applied because it lacks valid authentication credentials for the target resource. |\n| 402 | Payment Required | Subscription data is incomplete or out of date. You'll need to provide payment details to continue. |\n| 403 | Forbidden | You do not have the appropriate user rights to access the request. Do not repeat the request. |\n| 404 | Not Found | The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. |\n| 409 | Conflict | The request could not be completed due to a conflict with the current state of the target resource. |\n| 422 | Unprocessable Entity | The server understands the content type of the request entity, and the syntax of the request entity is correct but was unable to process the contained instructions. |\n| 429 | Too Many Requests | You sent too many requests in a given amount of time (\"rate limit\"). Try again later |\n| 5xx | Server Errors | Something went wrong with the Unify API. These errors are logged on our side. You can contact our team to resolve the issue. |\n\n### Handling errors\n\nThe Unify API and SDKs can produce errors for many reasons, such as a failed requests due to misconfigured integrations, invalid parameters, authentication errors, and network unavailability.\n\n### Error Types\n\n#### RequestValidationError\n\nRequest is not valid for the current endpoint. The response body will include details on the validation error. Check the spelling and types of your attributes, and ensure you are not passing data that is outside of the specification.\n\n#### UnsupportedFiltersError\n\nFilters in the request are valid, but not supported by the connector. Remove the unsupported filter(s) to get a successful response.\n\n#### UnsupportedSortFieldError\n\nSort field (`sort[by]`) in the request is valid, but not supported by the connector. Replace or remove the sort field to get a successful response.\n\n#### InvalidCursorError\n\nPagination cursor in the request is not valid for the current connector. Make sure to use a cursor returned from the API, for the same connector.\n\n#### ConnectorExecutionError\n\nA Unified API request made via one of our downstream connectors returned an unexpected error. The `status_code` returned is proxied through to error response along with their original response via the error detail.\n\n#### UnauthorizedError\n\nWe were unable to authorize the request as made. This can happen for a number of reasons, from missing header params to passing an incorrect authorization token. Verify your Api Key is being set correctly in the authorization header. ie: `Authorization: 'Bearer sk_live_***'`\n\n#### ConnectorCredentialsError\n\nA request using a given connector has not been authorized. Ensure the connector you are trying to use has been configured correctly and been authorized for use.\n\n#### ConnectorDisabledError\n\nA request has been made to a connector that has since been disabled. This may be temporary - You can contact our team to resolve the issue.\n\n#### ConnectorRateLimitError\n\nYou sent too many request to a connector. These rate limits vary from connector to connector. You will need to try again later.\n\n#### RequestLimitError\n\nYou have reached the number of requests included in your Free Tier Subscription. You will not be able to make further requests until you upgrade your subscription. Please reach out to sales@apideck.com to continue making requests.\n\n#### EntityNotFoundError\n\nYou've made a request for a resource or route that does not exist. Verify your path parameters or any identifiers used to fetch this resource.\n\n#### OAuthCredentialsNotFoundError\n\nWhen adding a connector integration that implements OAuth, both a `client_id` and `client_secret` must be provided before any authorizations can be performed. Verify the integration has been configured properly before continuing.\n\n#### IntegrationNotFoundError\n\nThe requested connector integration could not be found associated to your `application_id`. Verify your `application_id` is correct, and that this connector has been added and configured for your application.\n\n#### ConnectionNotFoundError\n\nA valid connection could not be found associated to your `application_id`. Something _may_ have interrupted the authorization flow. You may need to start the connector authorization process again.\n\n#### ConnectionSettingsError\n\nThe connector has required settings that were not supplied. Verify `connection.settings` contains all required settings for the connector to be callable.\n\n#### ConnectorNotFoundError\n\nA request was made for an unknown connector. Verify your `service_id` is spelled correctly, and that this connector is enabled for your provided `unified_api`.\n\n#### OAuthRedirectUriError\n\nA request was made either in a connector authorization flow, or attempting to revoke connector access without a valid `redirect_uri`. This is the url the user should be returned to on completion of process.\n\n#### OAuthInvalidStateError\n\nThe state param is required and is used to ensure the outgoing authorization state has not been altered before the user is redirected back. It also contains required params needed to identify the connector being used. If this has been altered, the authorization will not succeed.\n\n#### OAuthCodeExchangeError\n\nWhen attempting to exchange the authorization code for an `access_token` during an OAuth flow, an error occurred. This may be temporary. You can reattempt authorization or contact our team to resolve the issue.\n\n#### OAuthConnectorError\n\nIt seems something went wrong on the connector side. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### MappingError\n\nThere was an error attempting to retrieve the mapping for a given attribute. We've been notified and are working to fix this issue.\n\n#### ConnectorMappingNotFoundError\n\nIt seems the implementation for this connector is incomplete. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorResponseMappingNotFoundError\n\nWe were unable to retrieve the response mapping for this connector. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorOperationMappingNotFoundError\n\nConnector mapping has not been implemented for the requested operation. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorWorkflowMappingError\n\nThe composite api calls required for this operation have not been mapped entirely. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n#### ConnectorOperationUnsupportedError\n\nYou're attempting a call that is not supported by the connector. It's likely this operation is supported by another connector, but we're unable to implement for this one.\n\n#### PaginationNotSupportedError\n\nPagination is not yet supported for this connector, try removing limit and/or cursor from the query. It's possible this connector is in `beta` or still under development. We've been notified and are working to fix this issue.\n\n## API Design\n\n### API Styles and data formats\n\n#### REST API\n\nThe API is organized around [REST](https://restfulapi.net/), providing simple and predictable URIs to access and modify objects. Requests support standard HTTP methods like GET, PUT, POST, and DELETE and standard status codes. JSON is returned by all API responses, including errors. In all API requests, you must set the content-type HTTP header to application/json. All API requests must be made over HTTPS. Calls made over HTTP will fail.\n\n##### Available HTTP methods\n\nThe Apideck API uses HTTP verbs to understand if you want to read (GET), delete (DELETE) or create (POST) an object. When your web application cannot do a POST or DELETE, we provide the ability to set the method through the query parameter \\_method.\n\n```\nPOST /messages\nGET /messages\nGET /messages/{messageId}\nPATCH /messages/{messageId}\nDELETE /messages/{messageId}\n```\n\nResponse bodies are always UTF-8 encoded JSON objects, unless explicitly documented otherwise. For some endpoints and use cases we divert from REST to provide a better developer experience.\n\n### Schema\n\nAll API requests and response bodies adhere to a common JSON format representing individual items, collections of items, links to related items and additional meta data.\n\n### Meta\n\nMeta data can be represented as a top level member named “meta”. Any information may be provided in the meta data. It’s most common use is to return the total number of records when requesting a collection of resources.\n\n### Request IDs\n\nEach API request has an associated request identifier. You can find this value in the response headers, under Request-Id. You can also find request identifiers in the URLs of individual request logs in your Dashboard. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.\n\n### Fixed field types\n\n#### Dates\n\nThe dates returned by the API are all represented in UTC (ISO8601 format).\n\nThis example\_`2019-11-14T00:55:31.820Z`\_is defined by the\_ISO 8601\_standard. The\_T\_in the middle separates the year-month-day portion from the hour-minute-second portion. The\_Z\_on the end means UTC, that is, an offset-from-UTC of zero hours-minutes-seconds. The\_Z\_is pronounced \"Zulu\" per military/aviation tradition.\n\nThe ISO 8601 standard is more modern. The formats are wisely designed to be easy to parse by machine as well as easy to read by humans across cultures.\n\n#### Prices and Currencies\n\nAll prices returned by the API are represented as integer amounts in a currency’s smallest unit. For example, $5 USD would be returned as 500 (i.e, 500 cents).\n\nFor zero-decimal currencies, amounts will still be provided as an integer but without the need to divide by 100. For example, an amount of ¥5 (JPY) would be returned as 5.\n\nAll currency codes conform to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n## Support\n\nIf you have problems or need help with your case, you can always reach out to our Support.\n\n## Static IP\n\nSome of the APIs you want to use can require a static IP. Apideck's static IP feature allows you to use Apideck with a fixed IP avoiding the need for you to set up your own infrastructure. This feature is currently available to all Apideck customers.\nTo use this feature, the API Vendor will need to whitelist the associated static IP addresses.\nThe provided static IP addresses are fixed to their specified region and shared by all customers who use this feature.\n\n- EU Central 1: **18.197.244.247**, **18.156.9.3**, **3.65.139.215**\n- Other: upcoming\n\n More info about our data security can be found at [https://compliance.apideck.com/](https://compliance.apideck.com/)\n\n"
contact:
email: hello@apideck.com
url: https://developers.apideck.com
x-logo:
url: https://developers.apideck.com/icon.png
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
x-apideck-api: crm
x-apideck-sdk-support: true
externalDocs:
description: Apideck Developer Docs
url: https://developers.apideck.com
servers:
- url: https://unify.apideck.com
description: Production
security:
- apiKey: []
applicationId: []
consumerId: []
tags:
- name: Companies
description: ''
x-apideck-resource-id: companies
x-apideck-model:
$ref: '#/components/schemas/Company'
- name: Opportunities
description: ''
x-apideck-resource-id: opportunities
x-apideck-model:
$ref: '#/components/schemas/Opportunity'
- name: Leads
description: ''
x-apideck-resource-id: leads
x-apideck-model:
$ref: '#/components/schemas/Lead'
- name: Contacts
description: ''
x-apideck-resource-id: contacts
x-apideck-model:
$ref: '#/components/schemas/Contact'
- name: Pipelines
description: ''
x-apideck-resource-id: pipelines
x-apideck-model:
$ref: '#/components/schemas/Pipeline'
- name: Notes
description: ''
x-apideck-resource-id: notes
x-apideck-model:
$ref: '#/components/schemas/Note'
- name: Users
description: ''
x-apideck-resource-id: users
x-apideck-model:
$ref: '#/components/schemas/User'
- name: Activities
description: ''
x-apideck-resource-id: activities
x-apideck-model:
$ref: '#/components/schemas/Activity'
components:
schemas:
ActivitiesFilter:
type: object
x-apideck-schema-id: ActivitiesFilter
example:
updated_since: '2020-09-30T07:43:32.000Z'
properties:
company_id:
type: string
description: Company ID to filter on
example: '1234'
owner_id:
type: string
description: Owner ID to filter on
example: '1234'
contact_id:
type: string
description: Primary contact ID to filter on
example: '1234'
updated_since:
type: string
title: Updated since (timestamp)
format: date-time
example: '2020-09-30T07:43:32.000Z'
type:
type: string
title: Type
description: Type to filter on
format: string
example: Task
additionalProperties: false
ActivitiesSort:
type: object
x-apideck-schema-id: ActivitiesSort
example:
by: created_at
direction: desc
properties:
by:
type: string
x-apideck-enum-id: activities.sort_by
description: The field on which to sort the Activities
enum:
- created_at
- updated_at
example: created_at
direction:
$ref: '#/components/schemas/SortDirection'
additionalProperties: false
Activity:
type: object
x-apideck-schema-id: Activity
additionalProperties: false
required:
- type
x-apideck-weights:
id: critical
downstream_id: edge-case
activity_datetime: high
duration_seconds: medium
user_id: edge-case
account_id: edge-case
contact_id: edge-case
company_id: edge-case
lead_id: edge-case
opportunity_id: edge-case
owner_id: high
campaign_id: edge-case
case_id: edge-case
asset_id: edge-case
contract_id: edge-case
product_id: edge-case
solution_id: edge-case
custom_object_id: edge-case
type: critical
title: critical
description: medium
note: medium
location: medium
location_address: medium
all_day_event: medium
private: low
group_event: edge-case
event_sub_type: medium
group_event_type: edge-case
child: low
archived: low
deleted: low
show_as: edge-case
done: medium
start_datetime: high
end_datetime: high
duration_minutes: edge-case
activity_date: medium
end_date: medium
attendees: edge-case
reminder_set: edge-case
reminder_datetime: edge-case
video_conference_url: edge-case
video_conference_id: edge-case
updated_at: high
properties:
id:
description: The unique identifier of the activity
type: string
readOnly: true
example: '12345'
downstream_id:
type: string
description: The third-party API ID of original entity
example: '12345'
nullable: true
readOnly: true
activity_datetime:
description: The date and time of the activity
type: string
example: '2021-05-01T12:00:00.000Z'
nullable: true
duration_seconds:
description: The duration of the activity in seconds
type: integer
example: 1800
minimum: 0
nullable: true
user_id:
description: The user related to the activity
type: string
example: '12345'
nullable: true
account_id:
description: The account related to the activity
type: string
example: '12345'
nullable: true
contact_id:
description: The contact related to the activity
type: string
example: '12345'
nullable: true
company_id:
description: The company related to the activity
type: string
example: '12345'
nullable: true
opportunity_id:
description: The opportunity related to the activity
type: string
example: '12345'
nullable: true
lead_id:
description: The lead related to the activity
type: string
example: '12345'
nullable: true
owner_id:
description: The owner of the activity
type: string
example: '12345'
nullable: true
campaign_id:
description: The campaign related to the activity
type: string
example: '12345'
nullable: true
case_id:
description: The case related to the activity
type: string
example: '12345'
nullable: true
asset_id:
description: The asset related to the activity
type: string
example: '12345'
nullable: true
contract_id:
description: The contract related to the activity
type: string
example: '12345'
nullable: true
product_id:
description: The product related to the activity
type: string
example: '12345'
nullable: true
solution_id:
description: The solution related to the activity
type: string
example: '12345'
nullable: true
custom_object_id:
description: The custom object related to the activity
type: string
example: '12345'
nullable: true
type:
description: The type of the activity
type: string
x-apideck-enum-id: activities.type
enum:
- call
- meeting
- email
- note
- task
- deadline
- send-letter
- send-quote
- other
example: meeting
nullable: true
title:
description: The title of the activity
type: string
example: Meeting
nullable: true
description:
description: A description of the activity
type: string
example: More info about the meeting
nullable: true
note:
description: An internal note about the activity
title: Note (internal)
type: string
example: An internal note about the meeting
nullable: true
location:
description: The location of the activity
type: string
example: Space
nullable: true
location_address:
$ref: '#/components/schemas/Address'
all_day_event:
description: Whether the Activity is an all day event or not
type: boolean
example: false
nullable: true
private:
description: Whether the Activity is private or not
type: boolean
example: true
nullable: true
group_event:
description: Whether the Activity is a group event or not
type: boolean
example: true
nullable: true
event_sub_type:
description: The sub type of the group event
type: string
example: debrief
nullable: true
group_event_type:
description: The type of the group event
type: string
example: Proposed
nullable: true
child:
description: Whether the activity is a child of another activity or not
type: boolean
example: false
nullable: true
archived:
description: Whether the activity is archived or not
type: boolean
example: false
nullable: true
deleted:
description: Whether the activity is deleted or not
type: boolean
example: false
nullable: true
show_as:
type: string
x-apideck-enum-id: activities.show_as
enum:
- free
- busy
example: busy
nullable: true
done:
title: Done
description: Whether the Activity is done or not
type: boolean
example: false
nullable: true
start_datetime:
description: The start date and time of the activity
type: string
example: '2021-05-01T12:00:00.000Z'
nullable: true
end_datetime:
description: The end date and time of the activity
type: string
example: '2021-05-01T12:30:00.000Z'
nullable: true
duration_minutes:
description: The duration of the activity in minutes
type: integer
example: 30
nullable: true
readOnly: true
activity_date:
description: The date of the activity
type: string
example: '2021-05-01'
nullable: true
end_date:
description: The end date of the activity
type: string
example: '2021-05-01'
nullable: true
recurrent:
description: Whether the activity is recurrent or not
type: boolean
example: false
reminder_datetime:
description: The date and time of the reminder
type: string
example: '2021-05-01T17:00:00.000Z'
nullable: true
reminder_set:
description: Whether the reminder is set or not
type: boolean
example: false
nullable: true
video_conference_url:
description: The URL of the video conference
title: Meeting URL
type: string
example: https://us02web.zoom.us/j/88120759396
nullable: true
video_conference_id:
description: The ID of the video conference
title: Meeting ID
type: string
example: zoom:88120759396
nullable: true
custom_fields:
description: Custom fields of the activity
type: array
items:
$ref: '#/components/schemas/CustomField'
attendees:
type: array
items:
$ref: '#/components/schemas/ActivityAttendee'
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_by:
description: The user who last updated the activity
type: string
example: '12345'
readOnly: true
nullable: true
created_by:
description: The user who created the activity
type: string
example: '12345'
readOnly: true
nullable: true
updated_at:
description: The date and time when the activity was last updated
type: string
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
created_at:
description: The date and time when the activity was created
type: string
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
ActivityAttendee:
type: object
x-apideck-schema-id: ActivityAttendee
x-pii:
- name
- first_name
- middle_name
- last_name
- email_address
x-apideck-weights:
id: critical
name: critical
first_name: high
middle_name: low
last_name: high
prefix: low
suffix: edge-case
email_address: medium
is_organizer: medium
status: medium
user_id: low
properties:
id:
description: Unique identifier for the attendee
type: string
example: '12345'
readOnly: true
nullable: true
name:
description: Full name of the attendee
type: string
example: Elon Musk
minLength: 1
nullable: true
first_name:
description: First name of the attendee
type: string
example: Elon
nullable: true
middle_name:
description: Middle name of the attendee
type: string
example: D.
nullable: true
last_name:
description: Last name of the attendee
type: string
example: Musk
nullable: true
prefix:
description: Prefix of the attendee
type: string
example: Mr.
nullable: true
suffix:
description: Suffix of the attendee
type: string
example: PhD
nullable: true
email_address:
description: Email address of the attendee
type: string
example: elon@musk.com
nullable: true
is_organizer:
description: Whether the attendee is the organizer of the activity
type: boolean
example: true
nullable: true
status:
description: Status of the attendee
type: string
x-apideck-enum-id: activity-attendees.status
enum:
- accepted
- tentative
- declined
example: accepted
nullable: true
user_id:
description: The identifier for a related user
type: string
example: '12345'
readOnly: true
nullable: true
contact_id:
description: The identifier for a related contact
type: string
example: '12345'
readOnly: true
nullable: true
updated_at:
description: The last time the attendee was updated (ISO 8601)
type: string
format: date-time
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
created_at:
description: The time the attendee was created (ISO 8601)
type: string
format: date-time
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
additionalProperties: false
Address:
type: object
x-apideck-schema-id: Address
additionalProperties: false
x-apideck-weights:
id: edge-case
name: edge-case
type: critical
line1: high
line2: low
line3: edge-case
line4: edge-case
street_number: low
city: high
string: low
state: high
postal_code: high
country: high
latitude: low
longitude: low
county: edge-case
contact_name: edge-case
salutation: edge-case
phone_number: edge-case
fax: edge-case
email: edge-case
website: edge-case
row_version: edge-case
properties:
id:
description: Unique identifier for the address.
type: string
example: '123'
nullable: true
type:
type: string
description: The type of address.
x-apideck-enum-id: addresses.type
enum:
- primary
- secondary
- home
- office
- shipping
- billing
- other
example: primary
nullable: true
string:
type: string
description: The address string. Some APIs don't provide structured address data.
example: 25 Spring Street, Blackburn, VIC 3130
nullable: true
name:
description: The name of the address.
type: string
example: HQ US
nullable: true
line1:
type: string
example: Main street
description: 'Line 1 of the address e.g. number, street, suite, apt #, etc.'
nullable: true
line2:
type: string
example: 'apt #'
description: Line 2 of the address
nullable: true
line3:
type: string
example: 'Suite #'
description: Line 3 of the address
nullable: true
line4:
type: string
example: delivery instructions
description: Line 4 of the address
nullable: true
street_number:
type: string
example: '25'
description: Street number
nullable: true
city:
type: string
example: San Francisco
description: Name of city.
nullable: true
state:
type: string
example: CA
description: Name of state
nullable: true
postal_code:
type: string
example: '94104'
description: Zip code or equivalent.
nullable: true
country:
type: string
example: US
description: country code according to ISO 3166-1 alpha-2.
nullable: true
latitude:
description: Latitude of the address
type: string
example: '40.759211'
nullable: true
longitude:
description: Longitude of the address
type: string
example: '-73.984638'
nullable: true
county:
type: string
example: Santa Clara
description: Address field that holds a sublocality, such as a county
nullable: true
contact_name:
description: Name of the contact person at the address
type: string
example: Elon Musk
nullable: true
salutation:
description: Salutation of the contact person at the address
type: string
example: Mr
nullable: true
phone_number:
description: Phone number of the address
type: string
example: 111-111-1111
nullable: true
fax:
description: Fax number of the address
type: string
example: 122-111-1111
nullable: true
email:
description: Email address of the address
type: string
example: elon@musk.com
nullable: true
website:
description: Website of the address
type: string
example: https://elonmusk.com
nullable: true
notes:
description: Additional notes
type: string
title: Notes
example: Address notes or delivery instructions.
nullable: true
row_version:
$ref: '#/components/schemas/RowVersion'
BadRequestResponse:
type: object
x-apideck-schema-id: BadRequest
properties:
status_code:
type: number
description: HTTP status code
example: 400
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Bad Request
type_name:
type: string
description: The type of error returned
example: RequestValidationError
message:
type: string
description: A human-readable message providing more details about the error.
example: Invalid Params
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: Missing property foobar
- type: object
x-speakeasy-detail: true
example:
missing:
- foobar: required
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#requestvalidationerror
BankAccount:
type: object
x-apideck-schema-id: BankAccount
additionalProperties: false
x-apideck-weights:
account_number: critical
account_name: medium
account_type: medium
iban: high
bic: medium
bsb_number: edge-case
branch_identifier: low
bank_code: low
bank_name: medium
currency: medium
properties:
bank_name:
type: string
title: Bank Name
description: The name of the bank
example: Monzo
nullable: true
account_number:
type: string
title: Bank Account Number
description: A bank account number is a number that is tied to your bank account. If you have several bank accounts, such as personal, joint, business (and so on), each account will have a different account number.
example: '123465'
nullable: true
account_name:
type: string
title: Bank Account Name
description: The name which you used in opening your bank account.
example: SPACEX LLC
nullable: true
account_type:
type: string
title: Account Type
x-apideck-enum-id: bank-accounts.account_type
enum:
- bank_account
- credit_card
- other
description: The type of bank account.
example: credit_card
nullable: true
iban:
description: The International Bank Account Number (IBAN).
type: string
example: CH2989144532982975332
nullable: true
bic:
description: The Bank Identifier Code (BIC).
type: string
example: AUDSCHGGXXX
nullable: true
routing_number:
type: string
title: Routing number
description: A routing number is a nine-digit code used to identify a financial institution in the United States.
example: '012345678'
nullable: true
bsb_number:
type: string
title: BSB Number
description: A BSB is a 6 digit numeric code used for identifying the branch of an Australian or New Zealand bank or financial institution.
example: 062-001
nullable: true
branch_identifier:
type: string
title: Branch Identifier
description: A branch identifier is a unique identifier for a branch of a bank or financial institution.
example: '001'
nullable: true
bank_code:
type: string
title: Bank Code
description: A bank code is a code assigned by a central bank, a bank supervisory body or a Bankers Association in a country to all its licensed member banks or financial institutions.
example: BNH
nullable: true
currency:
$ref: '#/components/schemas/Currency'
CompaniesFilter:
type: object
x-apideck-schema-id: CompaniesFilter
example:
name: SpaceX
properties:
name:
type: string
description: Name of the company to filter on
example: SpaceX
additionalProperties: false
CompaniesSort:
type: object
x-apideck-schema-id: CompaniesSort
example:
by: created_at
direction: desc
properties:
by:
type: string
x-apideck-enum-id: companies.sort_by
description: The field on which to sort the Companies
enum:
- created_at
- updated_at
- name
example: created_at
direction:
$ref: '#/components/schemas/SortDirection'
additionalProperties: false
Company:
type: object
x-apideck-schema-id: Company
x-apideck-weights:
id: critical
name: critical
interaction_count: edge-case
owner_id: high
image: low
description: medium
vat_number: high
currency: medium
status: high
fax: low
annual_revenue: low
number_of_employees: low
industry: medium
ownership: low
sales_tax_number: medium
payee_number: edge-case
abn_or_tfn: edge-case
abn_branch: edge-case
acn: edge-case
first_name: edge-case
last_name: edge-case
parent_id: edge-case
bank_accounts: medium
websites: medium
addresses: high
social_links: low
phone_numbers: high
emails: high
row_type: edge-case
custom_fields: medium
tags: low
read_only: low
last_activity_at: low
deleted: medium
salutation: edge-case
birthday: edge-case
updated_by: edge-case
created_by: edge-case
updated_at: high
created_at: medium
required:
- name
additionalProperties: false
properties:
id:
description: Unique identifier for the company
type: string
readOnly: true
example: '12345'
name:
title: Name
description: Name of the company
type: string
example: SpaceX
nullable: true
interaction_count:
description: Number of interactions
type: integer
example: 1
readOnly: true
nullable: true
owner_id:
description: Owner ID
type: string
example: '12345'
nullable: true
image:
description: The Image URL of the company
type: string
example: https://www.spacex.com/static/images/share.jpg
nullable: true
description:
description: A description of the company
type: string
example: Space Exploration Technologies Corp. is an American aerospace manufacturer, space transportation services and communications company headquartered in Hawthorne, California.
nullable: true
vat_number:
description: The VAT number of the company
type: string
example: BE0689615164
nullable: true
currency:
$ref: '#/components/schemas/Currency'
status:
description: The status of the company
type: string
example: Open
nullable: true
fax:
description: The fax number of the company
type: string
example: '+12129876543'
nullable: true
annual_revenue:
description: The annual revenue of the company
type: string
example: +$35m
nullable: true
number_of_employees:
description: Number of employees
type: string
example: 500-1000
nullable: true
industry:
description: The industry represents the type of business the company is in.
type: string
example: Apparel
nullable: true
ownership:
description: The ownership indicates the type of ownership of the company.
type: string
example: Public
nullable: true
sales_tax_number:
title: Sales tax number
description: A sales tax number is a unique number that identifies a company for tax purposes.
type: string
example: 12456EN
nullable: true
payee_number:
title: Payee number
description: A payee number is a unique number that identifies a payee for tax purposes.
type: string
example: 78932EN
nullable: true
abn_or_tfn:
title: ABN or TFN
description: An ABN is necessary for operating a business, while a TFN (Tax File Number) is required for any person working in Australia.
type: string
example: 46 115 614 695
nullable: true
abn_branch:
title: ABN Branch
description: An ABN Branch (also known as a GST Branch) is used if part of your business needs to account for GST separately from its parent entity.
type: string
example: '123'
nullable: true
acn:
title: ACN
description: The Australian Company Number (ACN) is a nine digit number with the last digit being a check digit calculated using a modified modulus 10 calculation. ASIC has adopted a convention of always printing and displaying the ACN in the format XXX XXX XXX; three blocks of three characters, each block separated by a blank.
type: string
example: XXX XXX XXX
nullable: true
first_name:
$ref: '#/components/schemas/FirstName'
last_name:
$ref: '#/components/schemas/LastName'
parent_id:
description: Parent ID
type: string
readOnly: true
nullable: true
example: '22345'
bank_accounts:
type: array
items:
$ref: '#/components/schemas/BankAccount'
websites:
type: array
items:
$ref: '#/components/schemas/Website'
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
social_links:
type: array
items:
$ref: '#/components/schemas/SocialLink'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
emails:
type: array
items:
$ref: '#/components/schemas/Email'
row_type:
x-apideck-weights:
id: critical
name: medium
type: object
title: Company Row Type
properties:
id:
type: string
example: '12345'
nullable: true
name:
type: string
example: Customer Account
nullable: true
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomField'
tags:
$ref: '#/components/schemas/Tags'
read_only:
description: Whether the company is read-only or not
type: boolean
title: Read-only
example: false
nullable: true
last_activity_at:
description: Last activity date
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
deleted:
description: Whether the company is deleted or not
type: boolean
example: false
readOnly: true
salutation:
type: string
description: A formal salutation for the person. For example, 'Mr', 'Mrs'
example: Mr
nullable: true
birthday:
type: string
title: Birth Date
description: The date of birth of the person.
example: '2000-08-12'
format: date
nullable: true
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_by:
description: Updated by user ID
type: string
example: '12345'
readOnly: true
nullable: true
created_by:
description: Created by user ID
type: string
example: '12345'
readOnly: true
nullable: true
updated_at:
description: Last updated date
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
created_at:
description: Creation date
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
Contact:
type: object
x-apideck-schema-id: Contact
x-apideck-weights:
id: critical
name: critical
owner_id: medium
type: medium
company_id: high
company_name: medium
lead_id: medium
first_name: high
middle_name: low
last_name: high
prefix: low
suffix: low
title: medium
department: medium
language: medium
gender: medium
birthday: medium
image: medium
photo_url: medium
lead_source: low
fax: low
description: low
current_balance: edge-case
status: edge-case
active: edge-case
websites: medium
addresses: high
social_links: low
phone_numbers: high
emails: high
email_domain: edge-case
custom_fields: medium
tags: low
first_call_at: edge-case
first_email_at: edge-case
last_activity_at: medium
updated_at: high
created_at: medium
opportunity_ids: low
required:
- name
x-pii:
- name
- first_name
- middle_name
- last_name
- email
properties:
id:
description: Unique identifier for the contact.
type: string
example: '12345'
readOnly: true
name:
description: Full name of the contact.
type: string
example: Elon Musk
nullable: true
owner_id:
description: The owner of the contact.
type: string
example: '54321'
nullable: true
type:
description: The type of the contact.
type: string
example: personal
x-apideck-enum-id: contacts.type
enum:
- customer
- supplier
- employee
- personal
nullable: true
company_id:
description: The company the contact is associated with.
type: string
example: '23456'
nullable: true
company_name:
description: The name of the company the contact is associated with.
type: string
example: '23456'
nullable: true
lead_id:
description: The lead the contact is associated with.
type: string
example: '34567'
nullable: true
first_name:
description: The first name of the contact.
type: string
example: Elon
nullable: true
middle_name:
description: The middle name of the contact.
type: string
example: D.
nullable: true
last_name:
description: The last name of the contact.
type: string
example: Musk
nullable: true
prefix:
description: The prefix of the contact.
type: string
example: Mr.
nullable: true
suffix:
description: The suffix of the contact.
type: string
example: PhD
nullable: true
title:
description: The job title of the contact.
type: string
example: CEO
nullable: true
department:
description: The department of the contact.
type: string
example: Engineering
nullable: true
language:
type: string
example: EN
description: language code according to ISO 639-1. For the United States - EN
nullable: true
gender:
type: string
x-apideck-enum-id: contacts.gender
enum:
- male
- female
- unisex
description: The gender of the contact.
example: female
nullable: true
birthday:
description: The birthday of the contact.
type: string
example: '2000-08-12'
nullable: true
image:
type: string
example: https://unavatar.io/elon-musk
nullable: true
deprecated: true
photo_url:
type: string
title: Photo URL
description: The URL of the photo of a person.
example: https://unavatar.io/elon-musk
nullable: true
lead_source:
description: The lead source of the contact.
type: string
example: Cold Call
nullable: true
fax:
description: The fax number of the contact.
type: string
example: '+12129876543'
nullable: true
description:
description: The description of the contact.
type: string
title: Description
example: Internal champion
nullable: true
current_balance:
description: The current balance of the contact.
type: number
title: Current Balance
example: 10.5
nullable: true
status:
description: The status of the contact.
type: string
example: open
nullable: true
active:
description: The active status of the contact.
type: boolean
example: true
nullable: true
websites:
type: array
items:
$ref: '#/components/schemas/Website'
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
social_links:
type: array
items:
$ref: '#/components/schemas/SocialLink'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
emails:
type: array
items:
$ref: '#/components/schemas/Email'
email_domain:
type: string
example: gmail.com
nullable: true
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomField'
tags:
$ref: '#/components/schemas/Tags'
first_call_at:
description: The first call date of the contact.
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
first_email_at:
description: The first email date of the contact.
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
last_activity_at:
description: The last activity date of the contact.
type: string
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_at:
description: The last update date of the contact.
type: string
format: date-time
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
created_at:
description: The creation date of the contact.
type: string
format: date-time
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
opportunity_ids:
description: The opportunity ids of the contact.
type: array
items:
type: string
example: '12345'
pass_through:
$ref: '#/components/schemas/PassThroughBody'
additionalProperties: false
ContactsFilter:
type: object
x-apideck-schema-id: ContactsFilter
example:
first_name: Elon
last_name: Musk
email: elon@tesla.com
company_id: '12345'
owner_id: '12345'
properties:
name:
type: string
description: Name of the contact to filter on
example: Elon Musk
first_name:
type: string
description: First name of the contact to filter on
example: Elon
last_name:
type: string
description: Last name of the contact to filter on
example: Musk
email:
type: string
description: Email of the contact to filter on
example: elon@tesla.com
phone_number:
type: string
description: Phone number of the contact to filter on
example: 111-111-1111
company_id:
type: string
description: Unique identifier for the associated company of the contact to filter on
example: '12345'
owner_id:
type: string
description: Unique identifier for the owner of the contact to filter on
example: '12345'
additionalProperties: false
ContactsSort:
type: object
x-apideck-schema-id: ContactsSort
example:
by: created_at
direction: desc
properties:
by:
type: string
x-apideck-enum-id: contacts.sort_by
description: The field on which to sort the Contacts
enum:
- created_at
- updated_at
- name
- first_name
- last_name
- email
example: created_at
direction:
$ref: '#/components/schemas/SortDirection'
additionalProperties: false
CreateActivityResponse:
type: object
x-apideck-schema-id: CreateActivityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: activities
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateCompanyResponse:
type: object
x-apideck-schema-id: CreateCompanyResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateContactResponse:
type: object
x-apideck-schema-id: CreateContactResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: contacts
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateLeadResponse:
type: object
x-apideck-schema-id: CreateLeadResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateNoteResponse:
type: object
x-apideck-schema-id: CreateNoteResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: notes
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateOpportunityResponse:
type: object
x-apideck-schema-id: CreateOpportunityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: opportunities
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreatePipelineResponse:
type: object
x-apideck-schema-id: CreatePipelineResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: pipelines
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CreateUserResponse:
type: object
x-apideck-schema-id: CreateUserResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: users
operation:
type: string
description: Operation performed
example: add
data:
$ref: '#/components/schemas/UnifiedId'
CrmEventType:
type: string
x-apideck-enum-id: crm.events
enum:
- '*'
- crm.activity.created
- crm.activity.updated
- crm.activity.deleted
- crm.company.created
- crm.company.updated
- crm.company.deleted
- crm.contact.created
- crm.contact.updated
- crm.contact.deleted
- crm.lead.created
- crm.lead.updated
- crm.lead.deleted
- crm.note.created
- crm.note.updated
- crm.note.deleted
- crm.opportunity.created
- crm.opportunity.updated
- crm.opportunity.deleted
example: crm.company.created
CrmWebhookEvent:
x-sdk-exclude: true
allOf:
- type: object
x-apideck-schema-id: WebhookEvent
properties:
event_id:
type: string
description: Unique reference to this request event
example: 9755c355-56c3-4a2f-a2da-86ff4411fccb
unified_api:
description: Name of Apideck Unified API
x-apideck-enum-id: unified_api
enum:
- accounting
- ats
- calendar
- crm
- csp
- customer-support
- ecommerce
- email
- email-marketing
- expense-management
- file-storage
- form
- hris
- lead
- payroll
- pos
- procurement
- project-management
- script
- sms
- spreadsheet
- team-messaging
- issue-tracking
- time-registration
- transactional-email
- vault
- data-warehouse
example: crm
type: string
service_id:
type: string
description: Service provider identifier
example: close
consumer_id:
type: string
example: test_consumer_id
description: Unique consumer identifier. You can freely choose a consumer ID yourself. Most of the time, this is an ID of your internal data model that represents a user or account in your system (for example account:12345). If the consumer doesn't exist yet, Vault will upsert a consumer based on your ID.
entity_id:
type: string
description: The service provider's ID of the entity that triggered this event
example: 123456ASDF
entity_type:
type: string
description: The type entity that triggered this event
example: Company
entity_url:
type: string
description: The url to retrieve entity detail.
example: https://unify.apideck.com/crm/contacts/123456
execution_attempt:
type: number
description: The current count this request event has been attempted
example: 2
occurred_at:
type: string
description: ISO Datetime for when the original event occurred
example: '2021-10-01T03:14:55.419Z'
- type: object
properties:
event_type:
$ref: '#/components/schemas/CrmEventType'
Currency:
type: string
title: Currency
description: Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
example: USD
x-apideck-enum-id: currencies
x-apideck-enum-coverage-ignore: true
enum:
- UNKNOWN_CURRENCY
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYR
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LTL
- LVL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRO
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- SSP
- STD
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRC
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- USN
- USS
- UYI
- UYU
- UZS
- VEF
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XTS
- XXX
- YER
- ZAR
- ZMK
- ZMW
- BTC
- ETH
x-enum-elements:
- name: UNKNOWN_CURRENCY
description: Unknown currency
- name: AED
description: United Arab Emirates dirham
- name: AFN
description: Afghan afghani
- name: ALL
description: Albanian lek
- name: AMD
description: Armenian dram
- name: ANG
description: Netherlands Antillean guilder
- name: AOA
description: Angolan kwanza
- name: ARS
description: Argentine peso
- name: AUD
description: Australian dollar
- name: AWG
description: Aruban florin
- name: AZN
description: Azerbaijani manat
- name: BAM
description: Bosnia and Herzegovina convertible mark
- name: BBD
description: Barbados dollar
- name: BDT
description: Bangladeshi taka
- name: BGN
description: Bulgarian lev
- name: BHD
description: Bahraini dinar
- name: BIF
description: Burundian franc
- name: BMD
description: Bermudian dollar
- name: BND
description: Brunei dollar
- name: BOB
description: Boliviano
- name: BOV
description: Bolivian Mvdol
- name: BRL
description: Brazilian real
- name: BSD
description: Bahamian dollar
- name: BTN
description: Bhutanese ngultrum
- name: BWP
description: Botswana pula
- name: BYR
description: Belarusian ruble
- name: BZD
description: Belize dollar
- name: CAD
description: Canadian dollar
- name: CDF
description: Congolese franc
- name: CHE
description: WIR Euro
- name: CHF
description: Swiss franc
- name: CHW
description: WIR Franc
- name: CLF
description: Unidad de Fomento
- name: CLP
description: Chilean peso
- name: CNY
description: Chinese yuan
- name: COP
description: Colombian peso
- name: COU
description: Unidad de Valor Real
- name: CRC
description: Costa Rican colon
- name: CUC
description: Cuban convertible peso
- name: CUP
description: Cuban peso
- name: CVE
description: Cape Verdean escudo
- name: CZK
description: Czech koruna
- name: DJF
description: Djiboutian franc
- name: DKK
description: Danish krone
- name: DOP
description: Dominican peso
- name: DZD
description: Algerian dinar
- name: EGP
description: Egyptian pound
- name: ERN
description: Eritrean nakfa
- name: ETB
description: Ethiopian birr
- name: EUR
description: Euro
- name: FJD
description: Fiji dollar
- name: FKP
description: Falkland Islands pound
- name: GBP
description: Pound sterling
- name: GEL
description: Georgian lari
- name: GHS
description: Ghanaian cedi
- name: GIP
description: Gibraltar pound
- name: GMD
description: Gambian dalasi
- name: GNF
description: Guinean franc
- name: GTQ
description: Guatemalan quetzal
- name: GYD
description: Guyanese dollar
- name: HKD
description: Hong Kong dollar
- name: HNL
description: Honduran lempira
- name: HRK
description: Croatian kuna
- name: HTG
description: Haitian gourde
- name: HUF
description: Hungarian forint
- name: IDR
description: Indonesian rupiah
- name: ILS
description: Israeli new shekel
- name: INR
description: Indian rupee
- name: IQD
description: Iraqi dinar
- name: IRR
description: Iranian rial
- name: ISK
description: Icelandic króna
- name: JMD
description: Jamaican dollar
- name: JOD
description: Jordanian dinar
- name: JPY
description: Japanese yen
- name: KES
description: Kenyan shilling
- name: KGS
description: Kyrgyzstani som
- name: KHR
description: Cambodian riel
- name: KMF
description: Comoro franc
- name: KPW
description: North Korean won
- name: KRW
description: South Korean won
- name: KWD
description: Kuwaiti dinar
- name: KYD
description: Cayman Islands dollar
- name: KZT
description: Kazakhstani tenge
- name: LAK
description: Lao kip
- name: LBP
description: Lebanese pound
- name: LKR
description: Sri Lankan rupee
- name: LRD
description: Liberian dollar
- name: LSL
description: Lesotho loti
- name: LTL
description: Lithuanian litas
- name: LVL
description: Latvian lats
- name: LYD
description: Libyan dinar
- name: MAD
description: Moroccan dirham
- name: MDL
description: Moldovan leu
- name: MGA
description: Malagasy ariary
- name: MKD
description: Macedonian denar
- name: MMK
description: Myanmar kyat
- name: MNT
description: Mongolian tögrög
- name: MOP
description: Macanese pataca
- name: MRO
description: Mauritanian ouguiya
- name: MUR
description: Mauritian rupee
- name: MVR
description: Maldivian rufiyaa
- name: MWK
description: Malawian kwacha
- name: MXN
description: Mexican peso
- name: MXV
description: Mexican Unidad de Inversion
- name: MYR
description: Malaysian ringgit
- name: MZN
description: Mozambican metical
- name: NAD
description: Namibian dollar
- name: NGN
description: Nigerian naira
- name: NIO
description: Nicaraguan córdoba
- name: NOK
description: Norwegian krone
- name: NPR
description: Nepalese rupee
- name: NZD
description: New Zealand dollar
- name: OMR
description: Omani rial
- name: PAB
description: Panamanian balboa
- name: PEN
description: Peruvian sol
- name: PGK
description: Papua New Guinean kina
- name: PHP
description: Philippine peso
- name: PKR
description: Pakistani rupee
- name: PLN
description: Polish złoty
- name: PYG
description: Paraguayan guaraní
- name: QAR
description: Qatari riyal
- name: RON
description: Romanian leu
- name: RSD
description: Serbian dinar
- name: RUB
description: Russian ruble
- name: RWF
description: Rwandan franc
- name: SAR
description: Saudi riyal
- name: SBD
description: Solomon Islands dollar
- name: SCR
description: Seychelles rupee
- name: SDG
description: Sudanese pound
- name: SEK
description: Swedish krona
- name: SGD
description: Singapore dollar
- name: SHP
description: Saint Helena pound
- name: SLL
description: Sierra Leonean leone
- name: SOS
description: Somali shilling
- name: SRD
description: Surinamese dollar
- name: SSP
description: South Sudanese pound
- name: STD
description: São Tomé and Príncipe dobra
- name: SVC
description: Salvadoran colón
- name: SYP
description: Syrian pound
- name: SZL
description: Swazi lilangeni
- name: THB
description: Thai baht
- name: TJS
description: Tajikstani somoni
- name: TMT
description: Turkmenistan manat
- name: TND
description: Tunisian dinar
- name: TOP
description: Tongan pa'anga
- name: TRY
description: Turkish lira
- name: TTD
description: Trinidad and Tobago dollar
- name: TWD
description: New Taiwan dollar
- name: TZS
description: Tanzanian shilling
- name: UAH
description: Ukrainian hryvnia
- name: UGX
description: Ugandan shilling
- name: USD
description: United States dollar
- name: USN
description: United States dollar (next day)
- name: USS
description: United States dollar (same day)
- name: UYI
description: Uruguay Peso en Unidedades Indexadas
- name: UYU
description: Uruguyan peso
- name: UZS
description: Uzbekistan som
- name: VEF
description: Venezuelan bolívar soberano
- name: VND
description: Vietnamese đồng
- name: VUV
description: Vanuatu vatu
- name: WST
description: Samoan tala
- name: XAF
description: CFA franc BEAC
- name: XAG
description: Silver
- name: XAU
description: Gold
- name: XBA
description: European Composite Unit
- name: XBB
description: European Monetary Unit
- name: XBC
description: European Unit of Account 9
- name: XBD
description: European Unit of Account 17
- name: XCD
description: East Caribbean dollar
- name: XDR
description: Special drawing rights (International Monetary Fund)
- name: XOF
description: CFA franc BCEAO
- name: XPD
description: Palladium
- name: XPF
description: CFP franc
- name: XPT
description: Platinum
- name: XTS
description: Code reserved for testing
- name: XXX
description: No currency
- name: YER
description: Yemeni rial
- name: ZAR
description: South African rand
- name: ZMK
description: Zambian kwacha
- name: ZMW
description: Zambian kwacha
- name: BTC
description: Bitcoin
- name: ETH
description: Ether
nullable: true
CustomField:
type: object
x-apideck-schema-id: CustomField
required:
- id
additionalProperties: false
x-apideck-weights:
id: critical
value: critical
name: medium
description: edge-case
properties:
id:
title: ID
description: Unique identifier for the custom field.
type: string
example: '2389328923893298'
nullable: true
name:
title: Name
type: string
description: Name of the custom field.
example: employee_level
nullable: true
description:
title: Description
type: string
description: More information about the custom field
example: Employee Level
nullable: true
value:
anyOf:
- type: string
example: Uses Salesforce and Marketo
nullable: true
- type: number
example: 10
nullable: true
- type: boolean
example: true
nullable: true
- type: object
example:
foo: bar
nullable: true
- type: array
items:
type: string
- type: array
items:
type: object
DeleteActivityResponse:
type: object
x-apideck-schema-id: DeleteActivityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: activities
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteCompanyResponse:
type: object
x-apideck-schema-id: DeleteCompanyResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteContactResponse:
type: object
x-apideck-schema-id: DeleteContactResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: contacts
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteLeadResponse:
type: object
x-apideck-schema-id: DeleteLeadResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteNoteResponse:
type: object
x-apideck-schema-id: DeleteNoteResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: notes
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteOpportunityResponse:
type: object
x-apideck-schema-id: DeleteOpportunityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeletePipelineResponse:
type: object
x-apideck-schema-id: DeletePipelineResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
DeleteUserResponse:
type: object
x-apideck-schema-id: DeleteUserResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: users
operation:
type: string
description: Operation performed
example: delete
data:
$ref: '#/components/schemas/UnifiedId'
Email:
type: object
x-apideck-schema-id: Email
required:
- email
additionalProperties: false
x-apideck-weights:
email: critical
type: critical
id: edge-case
properties:
id:
type: string
example: '123'
description: Unique identifier for the email address
nullable: true
email:
type: string
format: email
description: Email address
example: elon@musk.com
minLength: 1
nullable: true
type:
type: string
description: Email type
x-apideck-enum-id: emails.type
enum:
- primary
- secondary
- work
- personal
- billing
- other
example: primary
nullable: true
FirstName:
type: string
title: First name
description: The first name of the person.
example: Elon
nullable: true
GetActivitiesResponse:
type: object
x-apideck-schema-id: GetActivitiesResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: activities
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Activity'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetActivityResponse:
type: object
x-apideck-schema-id: GetActivityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: activities
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Activity'
GetCompaniesResponse:
type: object
x-apideck-schema-id: GetCompaniesResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Company'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetCompanyResponse:
type: object
x-apideck-schema-id: GetCompanyResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Company'
GetContactResponse:
type: object
x-apideck-schema-id: GetContactResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Contact'
GetContactsResponse:
type: object
x-apideck-schema-id: GetContactsResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: contacts
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Contact'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetLeadResponse:
type: object
x-apideck-schema-id: GetLeadResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Lead'
GetLeadsResponse:
type: object
x-apideck-schema-id: GetLeadsResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Lead'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetNoteResponse:
type: object
x-apideck-schema-id: GetNoteResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: notes
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Note'
GetNotesResponse:
type: object
x-apideck-schema-id: GetNotesResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: notes
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Note'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetOpportunitiesResponse:
type: object
x-apideck-schema-id: GetOpportunitiesResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: opportunities
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Opportunity'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetOpportunityResponse:
type: object
x-apideck-schema-id: GetOpportunityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: opportunities
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Opportunity'
GetPipelineResponse:
type: object
x-apideck-schema-id: GetPipelineResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: pipelines
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/Pipeline'
GetPipelinesResponse:
type: object
x-apideck-schema-id: GetPipelinesResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: pipelines
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/Pipeline'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
GetUserResponse:
type: object
x-apideck-schema-id: GetUserResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: one
data:
$ref: '#/components/schemas/User'
GetUsersResponse:
type: object
x-apideck-schema-id: GetUsersResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: users
operation:
type: string
description: Operation performed
example: all
data:
type: array
items:
$ref: '#/components/schemas/User'
meta:
$ref: '#/components/schemas/Meta'
links:
$ref: '#/components/schemas/Links'
LastName:
type: string
title: Last name
description: The last name of the person.
example: Musk
nullable: true
Lead:
type: object
x-apideck-schema-id: Lead
x-apideck-weights:
id: critical
name: critical
company_name: high
owner_id: high
owner_name: low
company_id: high
contact_id: low
lead_source: low
first_name: high
last_name: high
description: low
prefix: low
title: high
language: medium
status: high
monetary_amount: low
currency: low
fax: low
websites: medium
addresses: high
social_links: low
phone_numbers: high
emails: high
custom_fields: medium
tags: low
updated_at: medium
created_at: medium
required:
- name
- company_name
x-pii:
- name
- email
- first_name
- last_name
additionalProperties: false
properties:
id:
description: Unique identifier for the contact.
type: string
example: '12345'
readOnly: true
name:
description: Full name of the lead.
type: string
example: Elon Musk
company_name:
description: The name of the company the lead is associated with.
type: string
example: Spacex
nullable: true
owner_id:
description: The owner of the lead.
type: string
example: '54321'
nullable: true
owner_name:
description: The name of the owner of the lead.
type: string
example: John Doe
nullable: true
company_id:
description: The company the lead is associated with.
type: string
example: '2'
nullable: true
lead_id:
description: The identifier of the lead.
type: string
example: '2'
nullable: true
lead_source:
description: The source of the lead.
type: string
example: Cold Call
nullable: true
first_name:
description: The first name of the lead.
type: string
example: Elon
nullable: true
last_name:
description: The last name of the lead.
type: string
example: Musk
nullable: true
description:
description: The description of the lead.
type: string
example: A thinker
nullable: true
prefix:
description: The prefix of the lead.
type: string
example: Sir
nullable: true
title:
description: The job title of the lead.
type: string
example: CEO
nullable: true
language:
type: string
example: EN
description: language code according to ISO 639-1. For the United States - EN
nullable: true
status:
type: string
example: New
nullable: true
monetary_amount:
description: The monetary amount of the lead.
type: number
example: 75000
nullable: true
currency:
$ref: '#/components/schemas/Currency'
fax:
description: The fax number of the lead.
type: string
example: '+12129876543'
nullable: true
websites:
type: array
items:
$ref: '#/components/schemas/Website'
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
social_links:
type: array
items:
$ref: '#/components/schemas/SocialLink'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
emails:
type: array
items:
$ref: '#/components/schemas/Email'
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomField'
tags:
$ref: '#/components/schemas/Tags'
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_at:
type: string
description: Date updated in ISO 8601 format
example: '2020-09-30T07:43:32.000Z'
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$
readOnly: true
nullable: true
created_at:
type: string
description: Date created in ISO 8601 format
example: '2020-09-30T07:43:32.000Z'
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
LeadsFilter:
type: object
x-apideck-schema-id: LeadsFilter
example:
first_name: Elon
last_name: Musk
email: elon@tesla.com
phone_number: '1234567890'
properties:
name:
type: string
description: Name of the lead to filter on
example: Elon Musk
first_name:
type: string
description: First name of the lead to filter on
example: Elon
last_name:
type: string
description: Last name of the lead to filter on
example: Musk
email:
type: string
description: E-mail of the lead to filter on
example: elon@tesla.com
phone_number:
type: string
description: Phone number of the lead to filter on
example: '1234567890'
additionalProperties: false
LeadsSort:
type: object
x-apideck-schema-id: LeadsSort
example:
by: created_at
direction: desc
properties:
by:
type: string
description: The field on which to sort the Leads
x-apideck-enum-id: leads.sort_by
enum:
- created_at
- updated_at
- name
- first_name
- last_name
- email
example: created_at
direction:
$ref: '#/components/schemas/SortDirection'
additionalProperties: false
Links:
type: object
x-apideck-schema-id: Links
description: Links to navigate to previous or next pages through the API
properties:
previous:
type: string
description: Link to navigate to the previous page through the API
example: https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjE%3D
nullable: true
current:
type: string
description: Link to navigate to the current page through the API
example: https://unify.apideck.com/crm/companies
next:
type: string
description: Link to navigate to the previous page through the API
example: https://unify.apideck.com/crm/companies?cursor=em9oby1jcm06OnBhZ2U6OjM
nullable: true
Meta:
type: object
x-apideck-schema-id: Meta
description: Response metadata
properties:
items_on_page:
type: integer
description: Number of items returned in the data property of the response
example: 50
cursors:
type: object
description: Cursors to navigate to previous or next pages through the API
properties:
previous:
type: string
description: Cursor to navigate to the previous page of results through the API
example: em9oby1jcm06OnBhZ2U6OjE=
nullable: true
current:
type: string
description: Cursor to navigate to the current page of results through the API
example: em9oby1jcm06OnBhZ2U6OjI=
nullable: true
next:
type: string
description: Cursor to navigate to the next page of results through the API
example: em9oby1jcm06OnBhZ2U6OjM=
nullable: true
NotFoundResponse:
type: object
x-apideck-schema-id: NotFound
properties:
status_code:
type: number
description: HTTP status code
example: 404
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Not Found
type_name:
type: string
description: The type of error returned
example: EntityNotFoundError
message:
type: string
description: A human-readable message providing more details about the error.
example: Unknown Widget
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: "Could not find widget with id: '123'"
- type: object
x-speakeasy-detail: true
example:
not_found:
entity: widget
id: '123'
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#entitynotfounderror
NotImplementedResponse:
type: object
x-apideck-schema-id: NotImplemented
properties:
status_code:
type: number
description: HTTP status code
example: 501
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Not Implemented
type_name:
type: string
description: The type of error returned
example: MappingError
message:
type: string
description: A human-readable message providing more details about the error.
example: Unmapped Attribute
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: Failed to retrieve Widget tokenUrl from 'components.securitySchemes.OAuth2.flows'
- type: object
x-speakeasy-detail: true
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#mappingerror
Note:
type: object
x-apideck-schema-id: Note
x-apideck-weights:
id: critical
title: critical
content: critical
owner_id: high
contact_id: medium
company_id: medium
opportunity_id: medium
lead_id: medium
active: low
updated_by: edge-case
created_by: edge-case
updated_at: medium
created_at: medium
additionalProperties: false
properties:
id:
description: The unique identifier of the note
type: string
readOnly: true
example: '12345'
title:
description: The title of the note
type: string
example: Meeting Notes
nullable: true
content:
description: The content of the note.
type: string
example: Office hours are 9AM-6PM
nullable: true
owner_id:
description: The user that owns the note.
type: string
example: '12345'
nullable: true
contact_id:
description: The contact that is related to the note.
type: string
example: '12345'
nullable: true
company_id:
description: The company that is related to the note.
type: string
example: '12345'
nullable: true
opportunity_id:
description: The opportunity that is related to the note.
type: string
example: '12345'
nullable: true
lead_id:
description: The lead that is related to the note.
type: string
example: '12345'
nullable: true
active:
description: Whether the Note is active or not.
type: boolean
example: true
nullable: true
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_by:
description: The user that last updated the note.
type: string
example: '12345'
readOnly: true
nullable: true
created_by:
description: The user that created the note.
type: string
example: '12345'
readOnly: true
nullable: true
updated_at:
description: The timestamp when the note was last updated
type: string
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
created_at:
description: The timestamp when the note was created
type: string
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
OpportunitiesFilter:
type: object
x-apideck-schema-id: OpportunitiesFilter
example:
status: Completed
monetary_amount: 75000
properties:
title:
type: string
description: Title of the opportunity to filter on
example: Tesla deal
status:
type: string
description: Status to filter on
example: Completed
monetary_amount:
type: number
description: Monetary amount to filter on
example: 75000
win_probability:
type: number
description: Win probability to filter on
example: 50
company_id:
type: string
description: Company ID to filter on
example: '1234'
owner_id:
type: string
description: Owner ID to filter on
example: '1234'
primary_contact_id:
type: string
description: Primary contact ID to filter on
example: '1234'
additionalProperties: false
OpportunitiesSort:
type: object
x-apideck-schema-id: OpportunitiesSort
example:
by: created_at
direction: desc
properties:
by:
type: string
x-apideck-enum-id: opportunities.sort_by
description: The field on which to sort the Opportunities
enum:
- created_at
- updated_at
- title
- win_probability
- monetary_amount
- status
example: created_at
direction:
$ref: '#/components/schemas/SortDirection'
additionalProperties: false
Opportunity:
type: object
x-apideck-schema-id: Opportunity
x-apideck-weights:
id: critical
title: critical
primary_contact_id: critical
description: medium
type: high
monetary_amount: high
currency: high
win_probability: high
expected_revenue: medium
close_date: medium
loss_reason_id: edge-case
loss_reason: edge-case
won_reason_id: edge-case
won_reason: edge-case
pipeline_id: edge-case
pipeline_stage_id: edge-case
source_id: medium
lead_id: medium
lead_source: edge-case
contact_id: medium
company_id: high
company_name: medium
owner_id: high
priority: medium
status: high
status_id: edge-case
tags: low
interaction_count: low
custom_fields: medium
stage_last_changed_at: edge-case
last_activity_at: medium
deleted: low
date_stage_changed: edge-case
date_last_contacted: medium
date_lead_created: edge-case
updated_by: edge-case
created_by: edge-case
updated_at: medium
created_at: medium
required:
- title
- primary_contact_id
additionalProperties: false
properties:
id:
type: string
example: '12345'
description: A unique identifier for the opportunity.
readOnly: true
title:
type: string
description: The title or name of the opportunity.
example: New Rocket
minLength: 1
primary_contact_id:
type: string
example: '12345'
description: The unique identifier of the primary contact associated with the opportunity.
nullable: true
description:
type: string
description: A description of the opportunity.
example: Opportunities are created for People and Companies that are interested in buying your products or services. Create Opportunities for People and Companies to move them through one of your Pipelines.
nullable: true
type:
type: string
description: The type of the opportunity
example: Existing Customer - Upgrade
nullable: true
monetary_amount:
type: number
description: The monetary value associated with the opportunity
example: 75000
nullable: true
currency:
$ref: '#/components/schemas/Currency'
win_probability:
type: number
description: The probability of winning the opportunity, expressed as a percentage.
example: 40
nullable: true
expected_revenue:
description: The expected revenue from the opportunity
type: number
example: 75000
nullable: true
readOnly: true
close_date:
type: string
description: The actual closing date for the opportunity. If close_date is null, the opportunity is not closed yet.
example: '2020-10-30'
format: date
nullable: true
loss_reason_id:
type: string
description: The unique identifier of the reason why the opportunity was lost.
example: '12345'
nullable: true
loss_reason:
type: string
description: The reason why the opportunity was lost.
example: No budget
nullable: true
won_reason_id:
type: string
description: The unique identifier of the reason why the opportunity was won.
example: '12345'
nullable: true
won_reason:
type: string
description: The reason why the opportunity was won.
example: Best pitch
nullable: true
pipeline_id:
type: string
description: The unique identifier of the pipeline associated with the opportunity
example: '12345'
nullable: true
pipeline_stage_id:
type: string
description: The unique identifier of the stage in the pipeline associated with the opportunity.
example: '12345'
nullable: true
source_id:
type: string
description: The unique identifier of the source of the opportunity.
example: '12345'
nullable: true
lead_id:
type: string
description: The unique identifier of the lead associated with the opportunity.
example: '12345'
nullable: true
lead_source:
description: The source of the lead associated with the opportunity.
type: string
example: Website
nullable: true
contact_id:
type: string
description: The unique identifier of the contact associated with the opportunity.
example: '12345'
nullable: true
contact_ids:
type: array
description: An array of unique identifiers of all contacts associated with the opportunity.
items:
type: string
example: '12345'
company_id:
type: string
description: The unique identifier of the company associated with the opportunity.
example: '12345'
nullable: true
company_name:
type: string
description: The name of the company associated with the opportunity.
example: Copper
nullable: true
owner_id:
type: string
description: The unique identifier of the user who owns the opportunity.
example: '12345'
nullable: true
priority:
type: string
description: The priority level of the opportunity.
example: None
nullable: true
status:
type: string
description: The current status of the opportunity.
example: Open
nullable: true
status_id:
type: string
description: The unique identifier of the current status of the opportunity.
example: '12345'
nullable: true
tags:
$ref: '#/components/schemas/Tags'
interaction_count:
type: number
example: 0
description: The number of interactions with the opportunity.
readOnly: true
nullable: true
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomField'
stage_last_changed_at:
type: string
example: '2020-09-30T07:43:32.000Z'
description: The date and time when the stage of the opportunity was last changed.
format: date-time
nullable: true
last_activity_at:
type: string
example: '2020-09-30T07:43:32.000Z'
description: The date and time of the last activity associated with the opportunity.
readOnly: true
nullable: true
deleted:
type: boolean
description: Indicates whether the opportunity has been deleted.
example: false
readOnly: true
date_stage_changed:
type: string
description: The date and time when the stage of the opportunity was last changed.
example: '2020-09-30T00:00:00.000Z'
format: date-time
nullable: true
readOnly: true
date_last_contacted:
type: string
description: The date and time when the opportunity was last contacted.
example: '2020-09-30T00:00:00.000Z'
format: date-time
nullable: true
readOnly: true
date_lead_created:
type: string
example: '2020-09-30T00:00:00.000Z'
description: The date and time when the lead associated with the opportunity was created.
format: date-time
nullable: true
readOnly: true
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_by:
type: string
example: '12345'
description: The unique identifier of the user who last updated the opportunity.
nullable: true
readOnly: true
created_by:
type: string
example: '12345'
description: The unique identifier of the user who created the opportunity.
nullable: true
readOnly: true
updated_at:
type: string
example: '2020-09-30T07:43:32.000Z'
format: date-time
description: The date and time when the opportunity was last updated.
readOnly: true
nullable: true
created_at:
type: string
example: '2020-09-30T07:43:32.000Z'
format: date-time
description: The date and time when the opportunity was created.
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
PassThroughBody:
type: array
description: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
items:
type: object
properties:
service_id:
type: string
description: Identifier for the service to which this pass_through should be applied.
operation_id:
type: string
description: Optional identifier for a workflow operation to which this pass_through should be applied. This is useful for Unify calls that are making more than one downstream request.
extend_object:
type: object
additionalProperties: true
description: Simple object allowing any properties for direct extension.
extend_paths:
type: array
description: Array of objects for structured data modifications via paths.
items:
type: object
properties:
path:
type: string
description: JSONPath string specifying where to apply the value.
example: $.nested.property
value:
description: The value to set at the specified path, can be any type.
example:
TaxClassificationRef:
value: EUC-99990201-V1-00020000
required:
- path
- value
additionalProperties: false
required:
- service_id
additionalProperties: false
writeOnly: true
PassThroughQuery:
type: object
additionalProperties: true
properties:
example_downstream_property:
type: string
description: All passthrough query parameters are passed along to the connector as is (?pass_through[search]=leads becomes ?search=leads)
example:
search: San Francisco
PaymentRequiredResponse:
type: object
x-apideck-schema-id: PaymentRequired
properties:
status_code:
type: number
description: HTTP status code
example: 402
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Payment Required
type_name:
type: string
description: The type of error returned
example: RequestLimitError
message:
type: string
description: A human-readable message providing more details about the error.
example: Request Limit Reached
x-speakeasy-error-message: true
detail:
type: string
description: Contains parameter or domain specific information related to the error and why it occurred.
example: You have reached your limit of 2000
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#requestlimiterror
PhoneNumber:
type: object
x-apideck-schema-id: PhoneNumber
required:
- number
additionalProperties: false
x-apideck-weights:
number: critical
type: critical
id: edge-case
country_code: edge-case
area_code: edge-case
extension: edge-case
properties:
id:
type: string
description: Unique identifier of the phone number
example: '12345'
nullable: true
country_code:
title: Country code
description: The country code of the phone number, e.g. +1
type: string
example: '1'
nullable: true
area_code:
title: Area code
description: The area code of the phone number, e.g. 323
type: string
example: '323'
nullable: true
number:
type: string
title: Phone number
description: The phone number
example: 111-111-1111
minLength: 1
extension:
type: string
title: Phone extension
description: The extension of the phone number
example: '105'
nullable: true
type:
type: string
description: The type of phone number
x-apideck-enum-id: phone_numbers.type
enum:
- primary
- secondary
- home
- work
- office
- mobile
- assistant
- fax
- direct-dial-in
- personal
- other
example: primary
nullable: true
Pipeline:
type: object
x-apideck-schema-id: Pipeline
x-apideck-weights:
id: critical
name: critical
currency: low
archived: low
display_order: edge-case
win_probability_enabled: edge-case
stages: high
updated_at: medium
created_at: medium
required:
- name
x-pii: []
properties:
id:
description: The unique identifier of the Pipeline.
type: string
example: default
name:
description: The name of the Pipeline.
type: string
example: Sales Pipeline
minLength: 1
currency:
$ref: '#/components/schemas/Currency'
archived:
description: Whether the Pipeline is archived or not.
type: boolean
example: false
active:
description: Whether the Pipeline is active or not.
type: boolean
example: false
display_order:
description: The order in which the Pipeline is displayed in the UI.
type: integer
example: 1
nullable: true
win_probability_enabled:
description: Whether the Pipeline has win probability enabled or not.
type: boolean
example: true
stages:
description: The Pipeline Stages.
type: array
items:
x-apideck-weights:
id: medium
name: medium
value: medium
win_probability: medium
display_order: medium
type: object
additionalProperties: false
properties:
id:
description: The unique identifier of the Pipeline Stage.
type: string
example: contractsent
readOnly: true
nullable: true
name:
description: The name of the Pipeline Stage.
type: string
example: Contract Sent
nullable: true
value:
description: The value of the Pipeline Stage.
type: string
example: CONTRACT_SENT
nullable: true
win_probability:
type: integer
example: 50
description: The expected probability of winning an Opportunity in this Pipeline Stage. Valid values are [0-100].
nullable: true
display_order:
description: The order in which the Pipeline Stage is displayed in the UI.
type: integer
example: 1
nullable: true
updated_at:
type: string
title: Updated at (timestamp)
description: The date and time when the object was last updated.
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
created_at:
type: string
title: Created at (timestamp)
description: The date and time when the object was created.
format: date-time
example: '2020-09-30T07:43:32.000Z'
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
additionalProperties: false
RowVersion:
type: string
title: Row version
description: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
example: 1-12345
nullable: true
SocialLink:
type: object
x-apideck-schema-id: SocialLink
required:
- url
additionalProperties: false
x-apideck-weights:
id: edge-case
url: critical
type: critical
properties:
id:
description: Unique identifier of the social link
type: string
example: '12345'
nullable: true
url:
description: URL of the social link, e.g. https://www.twitter.com/apideck
type: string
example: https://www.twitter.com/apideck
minLength: 1
type:
description: Type of the social link, e.g. twitter
type: string
example: twitter
nullable: true
SortDirection:
type: string
x-apideck-schema-id: SortDirection
description: The direction in which to sort the results
x-apideck-enum-id: sort_direction
enum:
- asc
- desc
default: asc
Tags:
type: array
x-apideck-schema-id: Tags
items:
type: string
example:
- New
nullable: true
CustomMappings:
type: object
x-apideck-schema-id: CustomMappings
description: When custom mappings are configured on the resource, the result is included here.
nullable: true
readOnly: true
TooManyRequestsResponse:
type: object
x-apideck-schema-id: TooManyRequests
properties:
status_code:
type: number
description: HTTP status code
example: 429
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 6585)
example: Too Many Requests
type_name:
type: string
description: The type of error returned
example: ConnectorRateLimitError
message:
type: string
description: A human-readable message providing more details about the error.
example: Connector Rate Limit Error
x-speakeasy-error-message: true
detail:
type: object
properties:
context:
type: string
error:
type: object
x-speakeasy-detail: true
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#connectorratelimiterror
UnauthorizedResponse:
type: object
x-apideck-schema-id: Unauthorized
properties:
status_code:
type: number
description: HTTP status code
example: 401
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Unauthorized
type_name:
type: string
description: The type of error returned
example: UnauthorizedError
message:
type: string
description: A human-readable message providing more details about the error.
example: Unauthorized Request
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: Missing authentication
- type: object
x-speakeasy-detail: true
example:
statusCode: 401
error: Unauthorized
message: Missing authentication
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#unauthorizederror
UnexpectedErrorResponse:
type: object
x-apideck-schema-id: Error
properties:
status_code:
type: number
description: HTTP status code
example: 400
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Bad Request
type_name:
type: string
description: The type of error returned
example: RequestHeadersValidationError
message:
type: string
description: A human-readable message providing more details about the error.
example: Invalid Params
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: 'Missing Header: x-apideck-consumer-id'
- type: object
x-speakeasy-detail: true
example:
missing:
- x-apideck-consumer-id: required
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#unauthorizederror
UnifiedId:
title: UnifiedId
type: object
x-apideck-schema-id: Id
required:
- id
properties:
id:
title: Id
description: The unique identifier of the resource
type: string
readOnly: true
example: '12345'
UnprocessableResponse:
type: object
x-apideck-schema-id: Unprocessable
properties:
status_code:
type: number
description: HTTP status code
example: 422
error:
type: string
description: Contains an explanation of the status_code as defined in HTTP/1.1 standard (RFC 7231)
example: Unprocessable Entity
type_name:
type: string
description: The type of error returned
example: InvalidStateError
message:
type: string
description: A human-readable message providing more details about the error.
example: Invalid State
x-speakeasy-error-message: true
detail:
anyOf:
- type: string
example: Unprocessable request, please verify your request headers and body.
- type: object
x-speakeasy-detail: true
example:
error: Unprocessable
message: Unprocessable request, please verify your request headers and body.
description: Contains parameter or domain specific information related to the error and why it occurred.
ref:
type: string
description: Link to documentation of error type
example: https://developers.apideck.com/errors#invalidstateerror
UpdateActivityResponse:
type: object
x-apideck-schema-id: UpdateActivityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: activities
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateCompanyResponse:
type: object
x-apideck-schema-id: UpdateCompanyResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateContactResponse:
type: object
x-apideck-schema-id: UpdateContactResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: contacts
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateLeadResponse:
type: object
x-apideck-schema-id: UpdateLeadResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateNoteResponse:
type: object
x-apideck-schema-id: UpdateNoteResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: notes
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateOpportunityResponse:
type: object
x-apideck-schema-id: UpdateOpportunityResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdatePipelineResponse:
type: object
x-apideck-schema-id: UpdatePipelineResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: pipelines
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
UpdateUserResponse:
type: object
x-apideck-schema-id: UpdateUserResponse
required:
- status_code
- status
- service
- resource
- operation
- data
properties:
status_code:
type: integer
description: HTTP Response Status Code
example: 200
status:
type: string
description: HTTP Response Status
example: OK
service:
type: string
description: Apideck ID of service provider
example: zoho-crm
resource:
type: string
description: Unified API resource name
example: companies
operation:
type: string
description: Operation performed
example: update
data:
$ref: '#/components/schemas/UnifiedId'
User:
type: object
x-apideck-schema-id: User
x-apideck-weights:
id: critical
parent_id: edge-case
username: medium
first_name: high
last_name: high
title: high
division: medium
department: medium
company_name: medium
employee_number: medium
description: low
image: medium
language: medium
status: high
password: medium
addresses: high
phone_numbers: high
emails: high
updated_at: medium
created_at: medium
required:
- emails
x-pii:
- username
- first_name
- last_name
- email
properties:
id:
description: The unique identifier for the user
type: string
example: '12345'
readOnly: true
parent_id:
description: The parent user id
type: string
example: '54321'
nullable: true
username:
description: The username of the user
type: string
example: masterofcoin
nullable: true
first_name:
$ref: '#/components/schemas/FirstName'
last_name:
$ref: '#/components/schemas/LastName'
title:
type: string
title: Job title
description: The job title of the person.
example: CEO
nullable: true
division:
type: string
title: Division
description: The division the person is currently in. Usually a collection of departments or teams or regions.
example: Europe
nullable: true
department:
type: string
title: Department
description: The department the person is currently in. [Deprecated](https://developers.apideck.com/changelog) in favor of the dedicated department_id and department_name field.
example: R&D
nullable: true
deprecated: true
company_name:
type: string
title: Company name
description: The name of the company.
example: SpaceX
nullable: true
employee_number:
type: string
title: Employee number
description: An Employee Number, Employee ID or Employee Code, is a unique number that has been assigned to each individual staff member within a company.
example: 123456-AB
nullable: true
description:
type: string
title: Description
description: A description of the object.
example: A description
nullable: true
image:
description: The URL of the user's avatar
type: string
example: https://logo.clearbit.com/spacex.com?s=128
nullable: true
language:
type: string
example: EN
description: language code according to ISO 639-1. For the United States - EN
nullable: true
status:
description: The status of the user
type: string
example: active
nullable: true
password:
description: The password of the user
type: string
example: supersecretpassword
writeOnly: true
nullable: true
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
emails:
type: array
items:
$ref: '#/components/schemas/Email'
custom_mappings:
$ref: '#/components/schemas/CustomMappings'
updated_at:
description: The date and time when the user was last updated.
type: string
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
created_at:
description: The date and time when the user was created.
type: string
example: '2017-08-12T20:43:21.291Z'
readOnly: true
nullable: true
pass_through:
$ref: '#/components/schemas/PassThroughBody'
Website:
type: object
x-apideck-schema-id: Website
required:
- url
additionalProperties: false
x-apideck-weights:
url: critical
type: critical
id: edge-case
properties:
id:
description: Unique identifier for the website
type: string
example: '12345'
nullable: true
url:
description: The website URL
type: string
example: http://example.com
minLength: 1
type:
description: The type of website
type: string
x-apideck-enum-id: websites.type
enum:
- primary
- secondary
- work
- personal
- other
example: primary
nullable: true
parameters:
activitiesFilter:
name: filter
in: query
description: Apply filters
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/ActivitiesFilter'
activitiesSort:
name: sort
in: query
description: Apply sorting
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/ActivitiesSort'
applicationId:
name: x-apideck-app-id
in: header
required: true
description: The ID of your Unify application
schema:
type: string
example: dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX
x-speakeasy-name-override: appId
x-speakeasy-globals-hidden: true
companiesFilter:
name: filter
in: query
description: Apply filters
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/CompaniesFilter'
companiesSort:
name: sort
in: query
description: Apply sorting
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/CompaniesSort'
consumerId:
name: x-apideck-consumer-id
in: header
required: true
description: ID of the consumer which you want to get or push data from
schema:
type: string
example: test-consumer
x-speakeasy-name-override: consumerId
x-speakeasy-globals-hidden: true
contactsFilter:
name: filter
in: query
description: Apply filters
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/ContactsFilter'
contactsSort:
name: sort
in: query
description: Apply sorting
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/ContactsSort'
cursor:
name: cursor
in: query
description: Cursor to start from. You can find cursors for next/previous pages in the meta.cursors property of the response.
schema:
type: string
nullable: true
fields:
name: fields
in: query
description: 'The ''fields'' parameter allows API users to specify the fields they want to include in the API response. If this parameter is not present, the API will return all available fields. If this parameter is present, only the fields specified in the comma-separated string will be included in the response. Nested properties can also be requested by using a dot notation.
Example: `fields=name,email,addresses.city`
In the example above, the response will only include the fields "name", "email" and "addresses.city". If any other fields are available, they will be excluded.'
example: id,updated_at
schema:
type: string
nullable: true
id:
in: path
name: id
schema:
type: string
required: true
description: ID of the record you are acting upon.
leadsFilter:
name: filter
in: query
description: Apply filters
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/LeadsFilter'
leadsSort:
name: sort
in: query
description: Apply sorting
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/LeadsSort'
limit:
name: limit
in: query
description: Number of results to return. Minimum 1, Maximum 200, Default 20
schema:
type: integer
minimum: 1
maximum: 200
default: 20
opportunitiesFilter:
name: filter
in: query
description: Apply filters
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/OpportunitiesFilter'
opportunitiesSort:
name: sort
in: query
description: Apply sorting
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/OpportunitiesSort'
raw:
name: raw
in: query
description: Include raw response. Mostly used for debugging purposes
schema:
type: boolean
default: false
serviceId:
name: x-apideck-service-id
in: header
description: Provide the service id you want to call (e.g., pipedrive). Only needed when a consumer has activated multiple integrations for a Unified API.
schema:
type: string
example: salesforce
x-speakeasy-name-override: serviceId
passThrough:
name: pass_through
in: query
description: 'Optional unmapped key/values that will be passed through to downstream as query parameters. Ie: ?pass_through[search]=leads becomes ?search=leads'
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/PassThroughQuery'
responses:
BadRequestResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
CreateActivityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateActivityResponse'
description: Activity created
CreateCompanyResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCompanyResponse'
description: Company created
CreateContactResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateContactResponse'
description: Contact created
CreateLeadResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLeadResponse'
description: Lead created
CreateNoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateNoteResponse'
description: Note created
CreateOpportunityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOpportunityResponse'
description: Opportunity created
CreatePipelineResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePipelineResponse'
description: Pipeline created
CreateUserResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserResponse'
description: User created
DeleteActivityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteActivityResponse'
description: Activity deleted
DeleteCompanyResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteCompanyResponse'
description: Company deleted
DeleteContactResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteContactResponse'
description: Contact deleted
DeleteLeadResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteLeadResponse'
description: Lead deleted
DeleteNoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteNoteResponse'
description: Note deleted
DeleteOpportunityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteOpportunityResponse'
description: Opportunity deleted
DeletePipelineResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePipelineResponse'
description: Pipeline deleted
DeleteUserResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteUserResponse'
description: User deleted
GetActivitiesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetActivitiesResponse'
description: Activities
GetActivityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetActivityResponse'
description: Activity
links:
company:
operationId: companiesOne
parameters:
id: $response.body#/data/company_id
contact:
operationId: contactsOne
parameters:
id: $response.body#/data/contact_id
opportunity:
operationId: opportunitiesOne
parameters:
id: $response.body#/data/opportunity_id
lead:
operationId: leadsOne
parameters:
id: $response.body#/data/lead_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetCompaniesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCompaniesResponse'
description: Companies
GetCompanyResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCompanyResponse'
description: Company
links:
parentById:
operationId: companiesOne
parameters:
id: $response.body#/data/parent_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetContactResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetContactResponse'
description: Contact
links:
company:
operationId: companiesOne
parameters:
id: $response.body#/data/company_id
lead:
operationId: leadsOne
parameters:
id: $response.body#/data/lead_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetContactsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetContactsResponse'
description: Contacts
GetCrmLeadResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetLeadResponse'
description: Lead
links:
company:
operationId: companiesOne
parameters:
id: $response.body#/data/company_id
contact:
operationId: contactsOne
parameters:
id: $response.body#/data/contact_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetLeadsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetLeadsResponse'
description: Leads
GetNoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetNoteResponse'
description: Note
links:
company:
operationId: companiesOne
parameters:
id: $response.body#/data/company_id
contact:
operationId: contactsOne
parameters:
id: $response.body#/data/contact_id
opportunity:
operationId: opportunitiesOne
parameters:
id: $response.body#/data/opportunity_id
lead:
operationId: leadsOne
parameters:
id: $response.body#/data/lead_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetNotesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetNotesResponse'
description: Notes
GetOpportunitiesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetOpportunitiesResponse'
description: Opportunities
GetOpportunityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetOpportunityResponse'
description: Opportunity
links:
company:
operationId: companiesOne
parameters:
id: $response.body#/data/company_id
primarycontact:
operationId: contactsOne
parameters:
id: $response.body#/data/primary_contact_id
contact:
operationId: contactsOne
parameters:
id: $response.body#/data/contact_id
lead:
operationId: leadsOne
parameters:
id: $response.body#/data/lead_id
pipelineById:
operationId: pipelinesOne
parameters:
id: $response.body#/data/pipeline_id
owner:
operationId: usersOne
parameters:
id: $response.body#/data/owner_id
GetPipelineResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetPipelineResponse'
description: Pipeline
GetPipelinesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetPipelinesResponse'
description: Pipelines
GetUserResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserResponse'
description: User
GetUsersResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/GetUsersResponse'
description: Users
NotFoundResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: The specified resource was not found
NotImplementedResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/NotImplementedResponse'
description: Not Implemented
PaymentRequiredResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequiredResponse'
description: Payment Required
TooManyRequestsResponse:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
UnauthorizedResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
UnexpectedErrorResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UnexpectedErrorResponse'
description: Unexpected error
UnprocessableResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableResponse'
description: Unprocessable
UpdateActivityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateActivityResponse'
description: Activity updated
UpdateCompanyResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCompanyResponse'
description: Company updated
UpdateContactResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateContactResponse'
description: Contact updated
UpdateLeadResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLeadResponse'
description: Lead updated
UpdateNoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateNoteResponse'
description: Note updated
UpdateOpportunityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOpportunityResponse'
description: Opportunity updated
UpdatePipelineResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePipelineResponse'
description: Pipeline updated
UpdateUserResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserResponse'
description: User updated
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
description: |
To access our API, you need to sign up and obtain your unique API key. Each Unify application is assigned a single API key. You can locate your API key in the Configuration Settings section of your Apideck application. Additionally, your application’s application_id is available on the same page.
Authenticate your API requests by including your test or live secret API key in the request header.
- Bearer authorization header: `Authorization: Bearer "YOUR_API_KEY_HERE"`
- Application id header: `x-apideck-app-id: "YOUR_APP_ID_HERE"`
You should use the public keys on the SDKs and the secret keys to authenticate API requests.
**Do not share or include your secret API keys on client side code.** Your API keys carry significant privileges. Please ensure to keep them 100% secure and be sure to not share your secret API keys in areas that are publicly accessible like GitHub.
Learn how to set the Authorization header inside Postman https://learning.postman.com/docs/postman/sending-api-requests/authorization/#api-key
Go to Unify to grab your API KEY https://app.apideck.com/unify/api-keys
applicationId:
type: apiKey
in: header
name: x-apideck-app-id
description: The ID of your Unify application
consumerId:
type: apiKey
in: header
name: x-apideck-consumer-id
description: The ID of the consumer which you want to get or push data from
paths:
/crm/companies:
get:
tags:
- Companies
operationId: companiesAll
summary: List companies
description: List companies
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/companiesFilter'
- $ref: '#/components/parameters/companiesSort'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When using a filter or sorting for companies, Hubspot will only return a maximum of 10.000 companies.
- connector: salesforce
description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect.
responses:
'200':
$ref: '#/components/responses/GetCompaniesResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.companiesAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Companies
operationId: companiesAdd
summary: Create company
description: Create company
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Company'
responses:
'201':
$ref: '#/components/responses/CreateCompanyResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
company: {
name: 'SpaceX',
owner_id: '12345',
image: 'https://www.spacex.com/static/images/share.jpg',
description:
'Space Exploration Technologies Corp. is an American aerospace manufacturer, space transportation services and communications company headquartered in Hawthorne, California.',
vat_number: 'BE0689615164',
currency: 'USD',
status: 'Open',
fax: '+12129876543',
annual_revenue: '+$35m',
number_of_employees: '500-1000',
industry: 'Apparel',
ownership: 'Public',
sales_tax_number: '12456EN',
payee_number: '78932EN',
abn_or_tfn: '46 115 614 695',
abn_branch: '123',
acn: 'XXX XXX XXX',
first_name: 'Elon',
last_name: 'Musk',
bank_accounts: [
{
bank_name: 'Monzo',
account_number: '123465',
account_name: 'SPACEX LLC',
account_type: 'credit_card',
iban: 'CH2989144532982975332',
bic: 'AUDSCHGGXXX',
routing_number: '012345678',
bsb_number: '062-001',
branch_identifier: '001',
bank_code: 'BNH',
currency: 'USD'
}
],
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
row_type: {
id: '12345',
name: 'Customer Account'
},
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
read_only: false,
salutation: 'Mr',
birthday: '2000-08-12',
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.companiesAdd(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/companies/{id}:
get:
tags:
- Companies
operationId: companiesOne
summary: Get company
description: Get company
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetCompanyResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.companiesOne({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
patch:
tags:
- Companies
operationId: companiesUpdate
summary: Update company
description: Update company
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Company'
responses:
'200':
$ref: '#/components/responses/UpdateCompanyResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
id: 'id_example',
company: {
name: 'SpaceX',
owner_id: '12345',
image: 'https://www.spacex.com/static/images/share.jpg',
description:
'Space Exploration Technologies Corp. is an American aerospace manufacturer, space transportation services and communications company headquartered in Hawthorne, California.',
vat_number: 'BE0689615164',
currency: 'USD',
status: 'Open',
fax: '+12129876543',
annual_revenue: '+$35m',
number_of_employees: '500-1000',
industry: 'Apparel',
ownership: 'Public',
sales_tax_number: '12456EN',
payee_number: '78932EN',
abn_or_tfn: '46 115 614 695',
abn_branch: '123',
acn: 'XXX XXX XXX',
first_name: 'Elon',
last_name: 'Musk',
bank_accounts: [
{
bank_name: 'Monzo',
account_number: '123465',
account_name: 'SPACEX LLC',
account_type: 'credit_card',
iban: 'CH2989144532982975332',
bic: 'AUDSCHGGXXX',
routing_number: '012345678',
bsb_number: '062-001',
branch_identifier: '001',
bank_code: 'BNH',
currency: 'USD'
}
],
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
row_type: {
id: '12345',
name: 'Customer Account'
},
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
read_only: false,
salutation: 'Mr',
birthday: '2000-08-12',
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.companiesUpdate(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
delete:
tags:
- Companies
operationId: companiesDelete
summary: Delete company
description: Delete company
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/DeleteCompanyResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.companiesDelete({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/contacts:
get:
tags:
- Contacts
operationId: contactsAll
summary: List contacts
description: List contacts
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/contactsFilter'
- $ref: '#/components/parameters/contactsSort'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When using a filter or sorting for contacts, Hubspot will only return a maximum of 10.000 contacts.
- connector: salesforce
description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect.
- connector: zoho-crm
description: When using the phone_number filter for contacts in Zoho CRM, the filter does not work with numbers containing dashes (e.g., 989-989-989) or their URL-encoded equivalents (e.g., 989%2D989%2D989). It only works with continuous digits (e.g., 9898989898).
- connector: microsoft-outlook
description: To get custom fields, make a get contact call with owner_id. If no owner_id is provided, the list call will return the contacts of the authenticated user.
responses:
'200':
$ref: '#/components/responses/GetContactsResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.contactsAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Contacts
operationId: contactsAdd
summary: Create contact
description: Create contact
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When creating a contact, it is advised to always include an unique email address since Hubspot uses it to prevent duplicate contacts in HubSpot. More info on the [Hubspot developer docs](https://developers.hubspot.com/docs/api/crm/contacts).
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'201':
$ref: '#/components/responses/CreateContactResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
contact: {
name: 'Elon Musk',
owner_id: '54321',
type: 'personal',
company_id: '23456',
company_name: '23456',
lead_id: '34567',
first_name: 'Elon',
middle_name: 'D.',
last_name: 'Musk',
prefix: 'Mr.',
suffix: 'PhD',
title: 'CEO',
department: 'Engineering',
language: 'EN',
gender: 'female',
birthday: '2000-08-12',
image: 'https://unavatar.io/elon-musk',
photo_url: 'https://unavatar.io/elon-musk',
lead_source: 'Cold Call',
fax: '+12129876543',
description: 'Internal champion',
current_balance: 10.5,
status: 'open',
active: true,
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
email_domain: 'gmail.com',
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
opportunity_ids: ['12345'],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.contactsAdd(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/contacts/{id}:
get:
tags:
- Contacts
operationId: contactsOne
summary: Get contact
description: Get contact
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/contactsFilter'
security:
- apiKey: []
x-apideck-gotchas:
- connector: microsoft-outlook
description: If no owner_id is provided, the get call will return the contacts of the authenticated user only.
responses:
'200':
$ref: '#/components/responses/GetContactResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.contactsOne({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
patch:
tags:
- Contacts
operationId: contactsUpdate
summary: Update contact
description: Update contact
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'200':
$ref: '#/components/responses/UpdateContactResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
id: 'id_example',
contact: {
name: 'Elon Musk',
owner_id: '54321',
type: 'personal',
company_id: '23456',
company_name: '23456',
lead_id: '34567',
first_name: 'Elon',
middle_name: 'D.',
last_name: 'Musk',
prefix: 'Mr.',
suffix: 'PhD',
title: 'CEO',
department: 'Engineering',
language: 'EN',
gender: 'female',
birthday: '2000-08-12',
image: 'https://unavatar.io/elon-musk',
photo_url: 'https://unavatar.io/elon-musk',
lead_source: 'Cold Call',
fax: '+12129876543',
description: 'Internal champion',
current_balance: 10.5,
status: 'open',
active: true,
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
email_domain: 'gmail.com',
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
opportunity_ids: ['12345'],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.contactsUpdate(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
delete:
tags:
- Contacts
operationId: contactsDelete
summary: Delete contact
description: Delete contact
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
x-apideck-gotchas:
- connector: microsoft-outlook
description: To delete another user's contact use proxy api.
responses:
'200':
$ref: '#/components/responses/DeleteContactResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.contactsDelete({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/opportunities:
get:
tags:
- Opportunities
operationId: opportunitiesAll
summary: List opportunities
description: List opportunities
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/opportunitiesFilter'
- $ref: '#/components/parameters/opportunitiesSort'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When using a filter or sorting for opportunities, Hubspot will only return a maximum of 10.000 opportunities and omit the company_id, primary_contact_id, company_id, contact_ids, lead_id and contact_id.
- connector: salesforce
description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest/api_rest/headers_queryoptions.htm) and will have no effect.
- connector: pipedrive
description: Pipedrive supports filtering by either title or company_id, but not both simultaneously.
responses:
'200':
$ref: '#/components/responses/GetOpportunitiesResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.opportunitiesAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Opportunities
operationId: opportunitiesAdd
summary: Create opportunity
description: Create opportunity
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Opportunity'
responses:
'201':
$ref: '#/components/responses/CreateOpportunityResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
opportunity: {
title: 'New Rocket',
primary_contact_id: '12345',
description:
'Opportunities are created for People and Companies that are interested in buying your products or services. Create Opportunities for People and Companies to move them through one of your Pipelines.',
type: 'Existing Customer - Upgrade',
monetary_amount: 75000,
currency: 'USD',
win_probability: 40,
close_date: '2020-10-30',
loss_reason_id: '12345',
loss_reason: 'No budget',
won_reason_id: '12345',
won_reason: 'Best pitch',
pipeline_id: '12345',
pipeline_stage_id: '12345',
source_id: '12345',
lead_id: '12345',
lead_source: 'Website',
contact_id: '12345',
contact_ids: ['12345'],
company_id: '12345',
company_name: 'Copper',
owner_id: '12345',
priority: 'None',
status: 'Open',
status_id: '12345',
tags: ['New'],
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
stage_last_changed_at: '2020-09-30T07:43:32.000Z',
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.opportunitiesAdd(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/opportunities/{id}:
get:
tags:
- Opportunities
operationId: opportunitiesOne
summary: Get opportunity
description: Get opportunity
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetOpportunityResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.opportunitiesOne({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
patch:
tags:
- Opportunities
operationId: opportunitiesUpdate
summary: Update opportunity
description: Update opportunity
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Opportunity'
responses:
'200':
$ref: '#/components/responses/UpdateOpportunityResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
id: 'id_example',
opportunity: {
title: 'New Rocket',
primary_contact_id: '12345',
description:
'Opportunities are created for People and Companies that are interested in buying your products or services. Create Opportunities for People and Companies to move them through one of your Pipelines.',
type: 'Existing Customer - Upgrade',
monetary_amount: 75000,
currency: 'USD',
win_probability: 40,
close_date: '2020-10-30',
loss_reason_id: '12345',
loss_reason: 'No budget',
won_reason_id: '12345',
won_reason: 'Best pitch',
pipeline_id: '12345',
pipeline_stage_id: '12345',
source_id: '12345',
lead_id: '12345',
lead_source: 'Website',
contact_id: '12345',
contact_ids: ['12345'],
company_id: '12345',
company_name: 'Copper',
owner_id: '12345',
priority: 'None',
status: 'Open',
status_id: '12345',
tags: ['New'],
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
stage_last_changed_at: '2020-09-30T07:43:32.000Z',
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.opportunitiesUpdate(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
delete:
tags:
- Opportunities
operationId: opportunitiesDelete
summary: Delete opportunity
description: Delete opportunity
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/DeleteOpportunityResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.opportunitiesDelete({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/leads:
get:
tags:
- Leads
operationId: leadsAll
summary: List leads
description: List leads
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/leadsFilter'
- $ref: '#/components/parameters/leadsSort'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When using a filter or sorting for leads, Hubspot will only return a maximum of 10.000 leads.
- connector: salesforce
description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect.
- connector: zoho-crm
description: When using the phone_number filter for leads in Zoho CRM, the filter does not work with numbers containing dashes or plus (e.g., +989-989-989) or their URL-encoded equivalents (e.g., %2B989%2D989%2D989). It only works with continuous digits (e.g., 9898989898).
responses:
'200':
$ref: '#/components/responses/GetLeadsResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.leadsAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Leads
operationId: leadsAdd
summary: Create lead
description: Create lead
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
x-apideck-gotchas:
- connector: hubspot
description: When creating a lead, it is advised to always include an unique email address since Hubspot uses it to prevent duplicate contacts in HubSpot. More info on the [Hubspot developer docs](https://developers.hubspot.com/docs/api/crm/contacts).
- connector: pipedrive
description: When creating a lead, it is required to include an existing `company_id`. More info on the [Pipedrive developer docs](https://pipedrive.readme.io/docs/adding-a-lead).
- connector: freshsales
description: 'When creating a lead, it is required to include a `"company_name": "placeholder"` in the request body.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
responses:
'201':
$ref: '#/components/responses/CreateLeadResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
lead: {
name: 'Elon Musk',
company_name: 'Spacex',
owner_id: '54321',
owner_name: 'John Doe',
company_id: '2',
lead_id: '2',
lead_source: 'Cold Call',
first_name: 'Elon',
last_name: 'Musk',
description: 'A thinker',
prefix: 'Sir',
title: 'CEO',
language: 'EN',
status: 'New',
monetary_amount: 75000,
currency: 'USD',
fax: '+12129876543',
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.leadsAdd(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/leads/{id}:
get:
tags:
- Leads
operationId: leadsOne
summary: Get lead
description: Get lead
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetCrmLeadResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.leadsOne({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
patch:
tags:
- Leads
operationId: leadsUpdate
summary: Update lead
description: Update lead
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
responses:
'200':
$ref: '#/components/responses/UpdateLeadResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
id: 'id_example',
lead: {
name: 'Elon Musk',
company_name: 'Spacex',
owner_id: '54321',
owner_name: 'John Doe',
company_id: '2',
lead_id: '2',
lead_source: 'Cold Call',
first_name: 'Elon',
last_name: 'Musk',
description: 'A thinker',
prefix: 'Sir',
title: 'CEO',
language: 'EN',
status: 'New',
monetary_amount: 75000,
currency: 'USD',
fax: '+12129876543',
websites: [
{
id: '12345',
url: 'http://example.com',
type: 'primary'
}
],
addresses: [
{
id: '123',
type: 'primary',
string: '25 Spring Street, Blackburn, VIC 3130',
name: 'HQ US',
line1: 'Main street',
line2: 'apt #',
line3: 'Suite #',
line4: 'delivery instructions',
street_number: '25',
city: 'San Francisco',
state: 'CA',
postal_code: '94104',
country: 'US',
latitude: '40.759211',
longitude: '-73.984638',
county: 'Santa Clara',
contact_name: 'Elon Musk',
salutation: 'Mr',
phone_number: '111-111-1111',
fax: '122-111-1111',
email: 'elon@musk.com',
website: 'https://elonmusk.com',
notes: 'Address notes or delivery instructions.',
row_version: '1-12345'
}
],
social_links: [
{
id: '12345',
url: 'https://www.twitter.com/apideck',
type: 'twitter'
}
],
phone_numbers: [
{
id: '12345',
country_code: '1',
area_code: '323',
number: '111-111-1111',
extension: '105',
type: 'primary'
}
],
emails: [
{
id: '123',
email: 'elon@musk.com',
type: 'primary'
}
],
custom_fields: [
{
id: '2389328923893298',
name: 'employee_level',
description: 'Employee Level',
value: 'Uses Salesforce and Marketo'
}
],
tags: ['New'],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.leadsUpdate(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
delete:
tags:
- Leads
operationId: leadsDelete
summary: Delete lead
description: Delete lead
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/DeleteLeadResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.leadsDelete({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/pipelines:
get:
tags:
- Pipelines
operationId: pipelinesAll
summary: List pipelines
description: List pipelines
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetPipelinesResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.pipelinesAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Pipelines
operationId: pipelinesAdd
summary: Create pipeline
description: Create pipeline
x-apideck-upcoming: true
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Pipeline'
responses:
'201':
$ref: '#/components/responses/CreatePipelineResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
pipeline: {
id: 'default',
name: 'Sales Pipeline',
currency: 'USD',
archived: false,
active: false,
display_order: 1,
win_probability_enabled: true,
stages: [
{
name: 'Contract Sent',
value: 'CONTRACT_SENT',
win_probability: 50,
display_order: 1
}
],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.pipelinesAdd(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/pipelines/{id}:
get:
tags:
- Pipelines
operationId: pipelinesOne
summary: Get pipeline
description: Get pipeline
x-apideck-upcoming: true
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetPipelineResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.pipelinesOne({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
patch:
tags:
- Pipelines
operationId: pipelinesUpdate
summary: Update pipeline
description: Update pipeline
x-apideck-upcoming: true
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Pipeline'
responses:
'200':
$ref: '#/components/responses/UpdatePipelineResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
const params = {
id: 'id_example',
pipeline: {
id: 'default',
name: 'Sales Pipeline',
currency: 'USD',
archived: false,
active: false,
display_order: 1,
win_probability_enabled: true,
stages: [
{
name: 'Contract Sent',
value: 'CONTRACT_SENT',
win_probability: 50,
display_order: 1
}
],
pass_through: [
{
service_id: 'string',
operation_id: 'string',
extend_object: {},
extend_paths: [
{
path: '$.nested.property',
value: [Object]
}
]
}
]
}
}
try {
const { data } = await apideck.crm.pipelinesUpdate(params)
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
delete:
tags:
- Pipelines
operationId: pipelinesDelete
summary: Delete pipeline
description: Delete pipeline
x-apideck-upcoming: true
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/raw'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/DeletePipelineResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.pipelinesDelete({
id: 'id_example'
})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
/crm/notes:
get:
tags:
- Notes
operationId: notesAll
summary: List notes
description: List notes
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/passThrough'
- $ref: '#/components/parameters/fields'
security:
- apiKey: []
responses:
'200':
$ref: '#/components/responses/GetNotesResponse'
'400':
$ref: '#/components/responses/BadRequestResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'402':
$ref: '#/components/responses/PaymentRequiredResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'422':
$ref: '#/components/responses/UnprocessableResponse'
default:
$ref: '#/components/responses/UnexpectedErrorResponse'
x-apideck-gotchas:
- connector: salesforce
description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect.
x-apideck-api: crm
x-codeSamples:
- lang: TypeScript
label: Node
source: |
import { Apideck } from '@apideck/node'
const apideck = new Apideck({
apiKey: 'REPLACE_WITH_API_KEY',
appId: 'REPLACE_WITH_APP_ID',
consumerId: 'REPLACE_WITH_CONSUMER_ID'
})
try {
const { data } = await apideck.crm.notesAll({})
console.log('API called successfully', data)
} catch (error) {
console.error(error)
}
post:
tags:
- Notes
operationId: notesAdd
summary: Create note
description: Create note
parameters:
- $ref: '#/components/parameters/raw'
- $ref: '#/components/parameters/consumerId'
- $ref: '#/components/parameters/applicationId'
- $ref: '#/components/parameters/serviceId'
security:
- apiKey: []
x-apideck-gotchas:
- connector: salesforce
description: When creating a note in Salesforce, you can only associate it with one resource (such as a lead, company or opportunity) at a time. You cannot combine multiple resources or associate the note with more than one resource in a single API call.
- connector: close
description: When creating a note in Close, the content of the note should be sent in html surrounded by the
tags. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Note' responses: '201': $ref: '#/components/responses/CreateNoteResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { note: { title: 'Meeting Notes', content: 'Office hours are 9AM-6PM', owner_id: '12345', contact_id: '12345', company_id: '12345', opportunity_id: '12345', lead_id: '12345', active: true, pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.notesAdd(params) console.log('API called successfully', data) } catch (error) { console.error(error) } /crm/notes/{id}: get: tags: - Notes operationId: notesOne summary: Get note description: Get note parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/fields' security: - apiKey: [] responses: '200': $ref: '#/components/responses/GetNoteResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.notesOne({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } patch: tags: - Notes operationId: notesUpdate summary: Update note description: Update note parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] x-apideck-gotchas: - connector: close description: When updating a note in Close, the content of the note should be sent in html surrounded by the
tags and at least other inner element. If these tags are not sent, unify will surround the note with andtags. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Note' responses: '200': $ref: '#/components/responses/UpdateNoteResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { id: 'id_example', note: { title: 'Meeting Notes', content: 'Office hours are 9AM-6PM', owner_id: '12345', contact_id: '12345', company_id: '12345', opportunity_id: '12345', lead_id: '12345', active: true, pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.notesUpdate(params) console.log('API called successfully', data) } catch (error) { console.error(error) } delete: tags: - Notes operationId: notesDelete summary: Delete note description: Delete note parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] responses: '200': $ref: '#/components/responses/DeleteNoteResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.notesDelete({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } /crm/users: get: tags: - Users operationId: usersAll summary: List users description: List users parameters: - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/passThrough' - $ref: '#/components/parameters/fields' security: - apiKey: [] x-apideck-gotchas: - connector: hubspot description: HubSpot owners are mapped to CRM users in Apideck. HubSpot owners and HubSpot users (people who can log into HubSpot) aren't necessarily the same, as you may have owners created through an integration. - connector: salesforce description: Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce's minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect. responses: '200': $ref: '#/components/responses/GetUsersResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.usersAll({}) console.log('API called successfully', data) } catch (error) { console.error(error) } post: tags: - Users operationId: usersAdd summary: Create user description: Create user parameters: - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' security: - apiKey: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '201': $ref: '#/components/responses/CreateUserResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { user: { parent_id: '54321', username: 'masterofcoin', first_name: 'Elon', last_name: 'Musk', title: 'CEO', division: 'Europe', department: 'R&D', company_name: 'SpaceX', employee_number: '123456-AB', description: 'A description', image: 'https://logo.clearbit.com/spacex.com?s=128', language: 'EN', status: 'active', password: 'supersecretpassword', addresses: [ { id: '123', type: 'primary', string: '25 Spring Street, Blackburn, VIC 3130', name: 'HQ US', line1: 'Main street', line2: 'apt #', line3: 'Suite #', line4: 'delivery instructions', street_number: '25', city: 'San Francisco', state: 'CA', postal_code: '94104', country: 'US', latitude: '40.759211', longitude: '-73.984638', county: 'Santa Clara', contact_name: 'Elon Musk', salutation: 'Mr', phone_number: '111-111-1111', fax: '122-111-1111', email: 'elon@musk.com', website: 'https://elonmusk.com', notes: 'Address notes or delivery instructions.', row_version: '1-12345' } ], phone_numbers: [ { id: '12345', country_code: '1', area_code: '323', number: '111-111-1111', extension: '105', type: 'primary' } ], emails: [ { id: '123', email: 'elon@musk.com', type: 'primary' } ], pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.usersAdd(params) console.log('API called successfully', data) } catch (error) { console.error(error) } /crm/users/{id}: get: tags: - Users operationId: usersOne summary: Get user description: Get user parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/fields' security: - apiKey: [] responses: '200': $ref: '#/components/responses/GetUserResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.usersOne({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } patch: tags: - Users operationId: usersUpdate summary: Update user description: Update user parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '200': $ref: '#/components/responses/UpdateUserResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { id: 'id_example', user: { parent_id: '54321', username: 'masterofcoin', first_name: 'Elon', last_name: 'Musk', title: 'CEO', division: 'Europe', department: 'R&D', company_name: 'SpaceX', employee_number: '123456-AB', description: 'A description', image: 'https://logo.clearbit.com/spacex.com?s=128', language: 'EN', status: 'active', password: 'supersecretpassword', addresses: [ { id: '123', type: 'primary', string: '25 Spring Street, Blackburn, VIC 3130', name: 'HQ US', line1: 'Main street', line2: 'apt #', line3: 'Suite #', line4: 'delivery instructions', street_number: '25', city: 'San Francisco', state: 'CA', postal_code: '94104', country: 'US', latitude: '40.759211', longitude: '-73.984638', county: 'Santa Clara', contact_name: 'Elon Musk', salutation: 'Mr', phone_number: '111-111-1111', fax: '122-111-1111', email: 'elon@musk.com', website: 'https://elonmusk.com', notes: 'Address notes or delivery instructions.', row_version: '1-12345' } ], phone_numbers: [ { id: '12345', country_code: '1', area_code: '323', number: '111-111-1111', extension: '105', type: 'primary' } ], emails: [ { id: '123', email: 'elon@musk.com', type: 'primary' } ], pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.usersUpdate(params) console.log('API called successfully', data) } catch (error) { console.error(error) } delete: tags: - Users operationId: usersDelete summary: Delete user description: Delete user parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] responses: '200': $ref: '#/components/responses/DeleteUserResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.usersDelete({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } /crm/activities: get: tags: - Activities operationId: activitiesAll summary: List activities description: List activities parameters: - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/activitiesFilter' - $ref: '#/components/parameters/activitiesSort' - $ref: '#/components/parameters/passThrough' - $ref: '#/components/parameters/fields' security: - apiKey: [] x-apideck-gotchas: - connector: hubspot description: Hubspot will only return activities from the last 30 days when using the `filter[updated_since]` parameter, with a maximum of 10.000 records. More info [here](https://legacydocs.hubspot.com/docs/methods/engagements/get-recent-engagements). - connector: salesforce description: 'Salesforce imposes a maximum offset limit of 2000. Exceeding this offset will result in an error from Salesforce. For result sets larger than 2000 items, it is necessary to set the pagination limit to 200, as this will enforce the use of batchSize for pagination. Note that setting a limit lower than 200 will not reduce the batchSize due to Salesforce''s minimum batch size policy of 200, as detailed in their documentation [here](https://developer.salesforce.com/docs/atlas.en-us.250.0.api_rest.meta/api_rest/headers_queryoptions.htm) and will have no effect. In Salesforce, to get list of tasks, calls or emails, please use filter "type": "task" to ensure proper handling.' responses: '200': $ref: '#/components/responses/GetActivitiesResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.activitiesAll({}) console.log('API called successfully', data) } catch (error) { console.error(error) } post: tags: - Activities operationId: activitiesAdd summary: Create activity description: Create activity parameters: - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' security: - apiKey: [] x-apideck-gotchas: - connector: salesforce description: 'In Salesforce, when creating tasks, calls, or emails, please specify "type": "task" with correct `event_sub_type` value in the request body to ensure proper handling.' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Activity' responses: '201': $ref: '#/components/responses/CreateActivityResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { activity: { activity_datetime: '2021-05-01T12:00:00.000Z', duration_seconds: 1800, user_id: '12345', account_id: '12345', contact_id: '12345', company_id: '12345', opportunity_id: '12345', lead_id: '12345', owner_id: '12345', campaign_id: '12345', case_id: '12345', asset_id: '12345', contract_id: '12345', product_id: '12345', solution_id: '12345', custom_object_id: '12345', type: 'meeting', title: 'Meeting', description: 'More info about the meeting', note: 'An internal note about the meeting', location: 'Space', location_address: { id: '123', type: 'primary', string: '25 Spring Street, Blackburn, VIC 3130', name: 'HQ US', line1: 'Main street', line2: 'apt #', line3: 'Suite #', line4: 'delivery instructions', street_number: '25', city: 'San Francisco', state: 'CA', postal_code: '94104', country: 'US', latitude: '40.759211', longitude: '-73.984638', county: 'Santa Clara', contact_name: 'Elon Musk', salutation: 'Mr', phone_number: '111-111-1111', fax: '122-111-1111', email: 'elon@musk.com', website: 'https://elonmusk.com', notes: 'Address notes or delivery instructions.', row_version: '1-12345' }, all_day_event: false, private: true, group_event: true, event_sub_type: 'debrief', group_event_type: 'Proposed', child: false, archived: false, deleted: false, show_as: 'busy', done: false, start_datetime: '2021-05-01T12:00:00.000Z', end_datetime: '2021-05-01T12:30:00.000Z', activity_date: '2021-05-01', end_date: '2021-05-01', recurrent: false, reminder_datetime: '2021-05-01T17:00:00.000Z', reminder_set: false, video_conference_url: 'https://us02web.zoom.us/j/88120759396', video_conference_id: 'zoom:88120759396', custom_fields: [ { id: '2389328923893298', name: 'employee_level', description: 'Employee Level', value: 'Uses Salesforce and Marketo' } ], attendees: [ { name: 'Elon Musk', first_name: 'Elon', middle_name: 'D.', last_name: 'Musk', prefix: 'Mr.', suffix: 'PhD', email_address: 'elon@musk.com', is_organizer: true, status: 'accepted' } ], pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.activitiesAdd(params) console.log('API called successfully', data) } catch (error) { console.error(error) } /crm/activities/{id}: get: tags: - Activities operationId: activitiesOne summary: Get activity description: Get activity parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' - $ref: '#/components/parameters/fields' security: - apiKey: [] responses: '200': $ref: '#/components/responses/GetActivityResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.activitiesOne({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } patch: tags: - Activities operationId: activitiesUpdate summary: Update activity description: Update activity parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] x-apideck-gotchas: - connector: salesforce description: 'In Salesforce, when updating tasks, calls, or emails, please specify "type": "task" in the request body to ensure proper handling.' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Activity' responses: '200': $ref: '#/components/responses/UpdateActivityResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) const params = { id: 'id_example', activity: { activity_datetime: '2021-05-01T12:00:00.000Z', duration_seconds: 1800, user_id: '12345', account_id: '12345', contact_id: '12345', company_id: '12345', opportunity_id: '12345', lead_id: '12345', owner_id: '12345', campaign_id: '12345', case_id: '12345', asset_id: '12345', contract_id: '12345', product_id: '12345', solution_id: '12345', custom_object_id: '12345', type: 'meeting', title: 'Meeting', description: 'More info about the meeting', note: 'An internal note about the meeting', location: 'Space', location_address: { id: '123', type: 'primary', string: '25 Spring Street, Blackburn, VIC 3130', name: 'HQ US', line1: 'Main street', line2: 'apt #', line3: 'Suite #', line4: 'delivery instructions', street_number: '25', city: 'San Francisco', state: 'CA', postal_code: '94104', country: 'US', latitude: '40.759211', longitude: '-73.984638', county: 'Santa Clara', contact_name: 'Elon Musk', salutation: 'Mr', phone_number: '111-111-1111', fax: '122-111-1111', email: 'elon@musk.com', website: 'https://elonmusk.com', notes: 'Address notes or delivery instructions.', row_version: '1-12345' }, all_day_event: false, private: true, group_event: true, event_sub_type: 'debrief', group_event_type: 'Proposed', child: false, archived: false, deleted: false, show_as: 'busy', done: false, start_datetime: '2021-05-01T12:00:00.000Z', end_datetime: '2021-05-01T12:30:00.000Z', activity_date: '2021-05-01', end_date: '2021-05-01', recurrent: false, reminder_datetime: '2021-05-01T17:00:00.000Z', reminder_set: false, video_conference_url: 'https://us02web.zoom.us/j/88120759396', video_conference_id: 'zoom:88120759396', custom_fields: [ { id: '2389328923893298', name: 'employee_level', description: 'Employee Level', value: 'Uses Salesforce and Marketo' } ], attendees: [ { name: 'Elon Musk', first_name: 'Elon', middle_name: 'D.', last_name: 'Musk', prefix: 'Mr.', suffix: 'PhD', email_address: 'elon@musk.com', is_organizer: true, status: 'accepted' } ], pass_through: [ { service_id: 'string', operation_id: 'string', extend_object: {}, extend_paths: [ { path: '$.nested.property', value: [Object] } ] } ] } } try { const { data } = await apideck.crm.activitiesUpdate(params) console.log('API called successfully', data) } catch (error) { console.error(error) } delete: tags: - Activities operationId: activitiesDelete summary: Delete activity description: Delete activity parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/consumerId' - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/raw' security: - apiKey: [] x-apideck-gotchas: - connector: salesforce description: This endpoint is mapped to Salesforce Events; tasks are not included. As a workaround we recommended using the Proxy API. responses: '200': $ref: '#/components/responses/DeleteActivityResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '402': $ref: '#/components/responses/PaymentRequiredResponse' '404': $ref: '#/components/responses/NotFoundResponse' '422': $ref: '#/components/responses/UnprocessableResponse' default: $ref: '#/components/responses/UnexpectedErrorResponse' x-apideck-api: crm x-codeSamples: - lang: TypeScript label: Node source: | import { Apideck } from '@apideck/node' const apideck = new Apideck({ apiKey: 'REPLACE_WITH_API_KEY', appId: 'REPLACE_WITH_APP_ID', consumerId: 'REPLACE_WITH_CONSUMER_ID' }) try { const { data } = await apideck.crm.activitiesDelete({ id: 'id_example' }) console.log('API called successfully', data) } catch (error) { console.error(error) } x-webhooks: x-sdk-exclude: true ActivityCreated: post: summary: Activity Created description: Event broadcast when an activity has been created. operationId: activityCreated x-apideck-event-type: crm.activity.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.activity.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/activities/123456ASDF entity_type: activity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] ActivityUpdated: post: summary: Activity Updated description: Event broadcast when an activity has been updated. operationId: activityUpdated x-apideck-event-type: crm.activity.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.activity.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/activities/123456ASDF entity_type: activity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] ActivityDeleted: post: summary: Activity Deleted description: Event broadcast when an activity has been deleted. operationId: activityDeleted x-apideck-event-type: crm.activity.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.activity.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/activities/123456ASDF entity_type: activity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] CompanyCreated: post: summary: Company Created description: Event broadcast when a company has been created. operationId: companyCreated x-apideck-event-type: crm.company.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.company.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/companies/123456ASDF entity_type: company occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] CompanyUpdated: post: summary: Company Updated description: Event broadcast when a company has been updated. operationId: companyUpdated x-apideck-event-type: crm.company.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.company.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/companies/123456ASDF entity_type: company occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] CompanyDeleted: post: summary: Company Deleted description: Event broadcast when a company has been deleted. operationId: companyDeleted x-apideck-event-type: crm.company.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.company.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/companies/123456ASDF entity_type: company occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] ContactCreated: post: summary: Contact Created description: Event broadcast when a contact has been created. operationId: contactCreated x-apideck-event-type: crm.contact.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.contact.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/contacts/123456ASDF entity_type: contact occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] ContactUpdated: post: summary: Contact Updated description: Event broadcast when a contact has been updated. operationId: contactUpdated x-apideck-event-type: crm.contact.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.contact.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/contacts/123456ASDF entity_type: contact occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] ContactDeleted: post: summary: Contact Deleted description: Event broadcast when a contact has been deleted. operationId: contactDeleted x-apideck-event-type: crm.contact.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.contact.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/contacts/123456ASDF entity_type: contact occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] LeadCreated: post: summary: Lead Created description: Event broadcast when a lead has been created. operationId: leadCreated x-apideck-event-type: crm.lead.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.lead.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/leads/123456ASDF entity_type: lead occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] LeadUpdated: post: summary: Lead Updated description: Event broadcast when a lead has been updated. operationId: leadUpdated x-apideck-event-type: crm.lead.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.lead.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/leads/123456ASDF entity_type: lead occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] LeadDeleted: post: summary: Lead Deleted description: Event broadcast when a lead has been deleted. operationId: leadDeleted x-apideck-event-type: crm.lead.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.lead.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/leads/123456ASDF entity_type: lead occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] NoteCreated: post: summary: Note Created description: Event broadcast when a note has been created. operationId: noteCreated x-apideck-event-type: crm.note.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.note.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/notes/123456ASDF entity_type: note occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] NoteUpdated: post: summary: Note Updated description: Event broadcast when a note has been updated. operationId: noteUpdated x-apideck-event-type: crm.note.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.note.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/notes/123456ASDF entity_type: note occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] NoteDeleted: post: summary: Note Deleted description: Event broadcast when a note has been deleted. operationId: noteDeleted x-apideck-event-type: crm.note.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.note.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/notes/123456ASDF entity_type: note occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] OpportunityCreated: post: summary: Opportunity Created description: Event broadcast when an opportunity has been created. operationId: opportunityCreated x-apideck-event-type: crm.opportunity.created parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.opportunity.created unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/opportunities/123456ASDF entity_type: opportunity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] OpportunityUpdated: post: summary: Opportunity Updated description: Event broadcast when an opportunity has been updated. operationId: opportunityUpdated x-apideck-event-type: crm.opportunity.updated parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.opportunity.updated unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/opportunities/123456ASDF entity_type: opportunity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: [] OpportunityDeleted: post: summary: Opportunity Deleted description: Event broadcast when an opportunity has been deleted. operationId: opportunityDeleted x-apideck-event-type: crm.opportunity.deleted parameters: - name: x-apideck-event-type in: header required: true description: The type of event that was triggered schema: $ref: '#/components/schemas/CrmEventType' - name: x-apideck-idempotency-key in: header required: true description: An idempotency key is a unique value generated to recognize subsequent retries/duplicates of the same request. schema: type: string format: uuid example: d290f1ee-6c54-4b01-90e6-d701748f0851 tags: - Webhook Events requestBody: content: application/json: schema: type: object properties: payload: $ref: '#/components/schemas/CrmWebhookEvent' example: payload: event_type: crm.opportunity.deleted unified_api: crm service_id: hubspot consumer_id: test_user_id event_id: d290f1ee-6c54-4b01-90e6-d701748f0851 entity_id: 123456ASDF entity_url: https://unify.apideck.com/crm/opportunities/123456ASDF entity_type: opportunity occurred_at: '2020-01-01T00:00:00.000Z' responses: '200': description: Return a 200 status to indicate that the data was received successfully. security: []