openapi: 3.0.3
info:
version: 0.25.7
title: Unified Engagement API
contact:
name: Supaglue
email: docs@supaglue.com
url: https://supaglue.com
description: '#### Introduction
Welcome to the Unified API (Engagement) documentation. You can use this API to
write to multiple third-party providers within the Engagement category.
[View common schema for Engagement](https://docs.supaglue.com/platform/common-schemas/engagement)
#### Base API URL
```
https://api.supaglue.io/engagement/v2
```
'
servers:
- url: https://api.supaglue.io/engagement/v2
description: Supaglue API
paths:
/accounts:
post:
operationId: createAccount
summary: Create account
tags:
- Accounts
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_account'
required:
- record
example:
record:
id: 1234
name: My Company
domain: mycompany.com
created_at: '2023-02-27T00:00:00Z'
responses:
'201':
description: Account created
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
get:
operationId: listAccounts
summary: List accounts
tags:
- Accounts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Accounts
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/account'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/accounts/_search:
post:
operationId: searchAccounts
summary: Search accounts
description: 'Search accounts by name and/or domain. If both are specified,
it will perform an AND operation.
Support:
| Provider | Search By |
| --------- | ----------------------- |
| Apollo | name only |
| Salesloft | name, domain |
| Outreach | name, domain |
Note: only `read_from_cache=false` is supported at the moment.
'
tags:
- Accounts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/read_from_cache'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filter:
type: object
description: The criteria to upsert on. If both name and domain
are specified, it would perform an AND operation. If more than
one account is found that matches, then an error will be thrown.
properties:
name:
type: string
description: The name of the account to upsert on. Supported
for Outreach, Salesloft, and Apollo.
domain:
type: string
description: The domain of the account to upsert on. Only supported
for Outreach and Salesloft.
required:
- filter
responses:
'200':
description: Paginated accounts
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/account'
required:
- pagination
- records
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/accounts/{account_id}:
get:
operationId: getAccount
summary: Get account
description: 'Support:
| Provider | Supported |
| ---------- | --------- |
| Salesloft | Yes |
| Outreach | Yes |
| Apollo | No |
'
tags:
- Accounts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: Account
content:
application/json:
schema:
$ref: '#/components/schemas/account'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
patch:
operationId: updateAccount
summary: Update account
tags:
- Accounts
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_account'
required:
- record
examples:
Example:
value:
record:
id: 1234
name: My Company
domain: mycompany.com
created_at: '2023-02-27T00:00:00Z'
responses:
'200':
description: Account updated
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: account_id
in: path
required: true
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/accounts/_upsert:
post:
operationId: upsertAccount
summary: Upsert account
description: 'Upsert an account. If the account matching the given criteria
does not exist, it will be created. If the account does exist, it will be
updated.
Upsert by name is supported for Outreach, Salesloft, and Apollo. Upsert by
domain is supported for Outreach and Salesloft. If both are specified, it
will perform an AND operation.
'
tags:
- Accounts
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_account'
upsert_on:
type: object
description: The criteria to upsert on. If both name and domain
are specified, it would perform an AND operation. If more than
one account is found that matches, then an error will be thrown.
properties:
name:
type: string
description: The name of the account to upsert on. Supported
for Outreach, Salesloft, and Apollo.
domain:
type: string
description: The domain of the account to upsert on. Only supported
for Outreach and Salesloft.
required:
- record
- upsert_on
responses:
'201':
description: Account upserted
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/contacts:
post:
operationId: createContact
summary: Create contact
description: 'Some providers do not support `primary` phone number type, in
which case we will default to `mobile`. If both `primary` and `mobile` phone
numbers are specified and only a single mobile number is possible, then `mobile`
will be used and `primary` will be dropped.
'
tags:
- Contacts
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_contact'
required:
- record
example:
record:
id: 1234
address:
city: San Francisco
country: USA
street_1: 525 Brannan St
street_2: null
postalCode: '94107'
state: CA
email_addresses:
- email_address: hello@supaglue.com
email_address_type: workline2
first_name: George
last_name: Xing
phone_numbers:
- phone_number: '+14151234567'
phone_number_type: mobile
created_at: '2023-02-27T00:00:00Z'
responses:
'201':
description: Contact created
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
get:
operationId: listContacts
summary: List contacts
tags:
- Contacts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Contacts
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/contact'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/contacts/_search:
post:
operationId: searchContacts
summary: Search contacts
description: 'Search contacts by email. Note: only `read_from_cache=false` is
supported at the moment.
:::danger
For apollo, each unique email incurs a separate API call towards the ratelimit.
:::
'
tags:
- Contacts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/remote_provider_page_size'
- $ref: '#/components/parameters/cursor'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filter:
type: object
properties:
emails:
type: array
items:
type: string
example: hello@example.com
description: The emails to search for. This will be imeplemented
as an OR search.
required:
- emails
required:
- filter
responses:
'200':
description: Paginated Contacts
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/contact'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/contacts/{contact_id}:
get:
operationId: getContact
summary: Get contact
tags:
- Contacts
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: Contact
content:
application/json:
schema:
$ref: '#/components/schemas/contact'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
patch:
operationId: updateContact
summary: Update contact
tags:
- Contacts
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_contact'
required:
- record
examples:
Example:
value:
record:
id: 1234
address:
city: San Francisco
country: USA
street_1: 525 Brannan St
street_2: null
postalCode: '94107'
state: CA
email_addresses:
- email_address: hello@supaglue.com
email_address_type: workline2
first_name: George
last_name: Xing
phone_numbers:
- phone_number: '+14151234567'
phone_number_type: mobile
created_at: '2023-02-27T00:00:00Z'
responses:
'200':
description: Contact updated
content:
application/json:
schema:
type: object
properties:
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: contact_id
in: path
required: true
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/users:
get:
operationId: listUsers
summary: List users
tags:
- Users
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Users
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/user'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/users/{user_id}:
get:
operationId: getUser
summary: Get user
tags:
- Users
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: User
content:
application/json:
schema:
$ref: '#/components/schemas/user'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: user_id
in: path
required: true
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/mailboxes:
get:
operationId: listMailboxes
summary: List mailboxes
tags:
- Mailboxes
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Mailboxes
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/mailbox'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/mailboxes/{mailbox_id}:
get:
operationId: getMailbox
summary: Get mailbox
tags:
- Mailboxes
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: Mailbox
content:
application/json:
schema:
$ref: '#/components/schemas/mailbox'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: mailbox_id
in: path
required: true
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/sequences:
post:
operationId: createSequence
summary: Create sequence
description: Note this uses an undocumented private api endpoint for Apollo
and should be considered to be in alpha state
tags:
- Sequences
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_sequence'
required:
- record
responses:
'201':
description: Sequence created
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
get:
operationId: listSequences
summary: List sequences
tags:
- Sequences
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Sequences
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/sequence'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/sequences/{sequence_id}:
get:
operationId: getSequence
summary: Get sequence
tags:
- Sequences
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: Sequence
content:
application/json:
schema:
$ref: '#/components/schemas/sequence'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: sequence_id
in: path
required: true
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/sequences/{sequence_id}/sequence_steps:
post:
operationId: createSequenceStep
summary: Create sequence step
tags:
- Sequences
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_sequence_step'
required:
- record
responses:
'201':
description: Sequence step created
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: sequence_id
in: path
required: true
description: The ID of the sequence.
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/sequences/{sequence_id}/sequence_steps/{sequence_step_id}:
patch:
operationId: updateSequenceStep
summary: Update Sequence Step
description: Works for `apollo` and `outreach`. Not supported in `salesloft`
tags:
- Sequences
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/update_sequence_step'
required:
- record
responses:
'200':
description: Sequence step updated
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
warnings:
$ref: '#/components/schemas/warnings'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: sequence_id
in: path
required: true
description: The ID of the sequence.
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
- name: sequence_step_id
in: path
required: true
description: The ID of the sequence step.
schema:
type: string
example: 0258cbc6-6020-430a-848e-aafacbadf4ae
/sequence_states:
post:
operationId: createSequenceState
summary: Create sequence state
description: 'Add a contact to a sequence. If the contact is already in the
sequence, it will return the id of the existing sequence state.
'
tags:
- Sequence States
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/create_sequence_state'
required:
- record
example:
record:
id: 355843a5-c536-4e82-b497-05160bfb7d78
state: active
mailbox_id: a7e860b5-cb8b-400b-812d-921fa526140c
sequencestate_id: 6bdcebc2-f886-4de3-88ed-0b9eb420f7b1
sequence_id: 45e07817-fd59-4ec8-a727-066d2db27c9b
created_at: '2023-02-27T00:00:00Z'
updated_at: '2023-02-27T00:00:00Z'
responses:
'201':
description: Sequence state created
content:
application/json:
schema:
type: object
properties:
record:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
get:
operationId: listSequenceStates
summary: List sequence states
tags:
- Sequence States
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/modified_after'
- $ref: '#/components/parameters/page_size'
- $ref: '#/components/parameters/cursor'
responses:
'200':
description: Paginated Sequence States
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/sequence_state'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/sequence_states/_search:
post:
operationId: searchSequenceStates
summary: Search sequence states
description: 'Search sequence states by contact_id and/or sequence_id. Note:
only `read_from_cache=false` is supported at the moment.
Support:
| Provider | Search By |
| --------- | ----------------------- |
| Apollo | contact_id only |
| Salesloft | contact_id, sequence_id |
| Outreach | contact_id, sequence_id |
'
tags:
- Sequence States
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
- $ref: '#/components/parameters/read_from_cache'
- $ref: '#/components/parameters/remote_provider_page_size'
- $ref: '#/components/parameters/cursor'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filter:
type: object
description: If both contact_id and sequence_id are provided, the
search will be performed as an AND search.
properties:
contact_id:
type: string
description: The ID of the contact to filter on.
sequence_id:
type: string
description: The ID of the sequence to filter on.
required:
- filter
responses:
'200':
description: Paginated Sequence States
content:
application/json:
schema:
type: object
properties:
pagination:
$ref: '#/components/schemas/pagination'
records:
type: array
items:
$ref: '#/components/schemas/sequence_state'
required:
- pagination
- records
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/sequence_states/_batch:
post:
operationId: batchCreateSequenceState
summary: Batch create sequence states
description: 'Add multiple contacts to a sequence atomically. You must pass
in the same sequenceId, userId and mailboxId for all the contact records.
Support:
| Provider | Supported |
| --------- | --------- |
| Apollo | Yes |
| Outreach | No |
| Salesloft | No |
'
tags:
- Sequence States
security:
- x-api-key: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
records:
type: array
description: Will use the batch endpoints when possible (e.g. Apollo)
items:
$ref: '#/components/schemas/create_sequence_state'
required:
- records
responses:
'201':
description: Sequence states created
content:
application/json:
schema:
type: object
properties:
records:
type: array
description: Created records, in order passed in
items:
$ref: '#/components/schemas/created_record'
warnings:
$ref: '#/components/schemas/warnings'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'409':
$ref: '#/components/responses/conflict'
'422':
$ref: '#/components/responses/unprocessableEntity'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
/sequence_states/{sequence_state_id}:
get:
operationId: getSequenceState
summary: Get sequence state
tags:
- Sequence States
security:
- x-api-key: []
parameters:
- $ref: '#/components/parameters/include_raw_data'
responses:
'200':
description: Sequence State
content:
application/json:
schema:
$ref: '#/components/schemas/sequence_state'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/unauthorized'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/notFound'
'499':
$ref: '#/components/responses/remoteProviderError'
'500':
$ref: '#/components/responses/internalServerError'
'501':
$ref: '#/components/responses/notImplemented'
parameters:
- $ref: '#/components/parameters/x-customer-id'
- $ref: '#/components/parameters/x-provider-name'
- name: sequence_state_id
in: path
required: true
schema:
type: string
example: ffb62704-addd-454e-bb86-ed0799703dc6
tags:
- name: Accounts
description: The `Account` Common Object represents a "company" or "account" in
Engagements.
- name: Contacts
description: The `Contact` Common Object represents a "contact" in Engagements.
- name: Sequences
description: The `Sequence` Common Object represents a "sequence" in Engagements.
- name: Sequence States
description: The `Sequence State` Common Object represents the state of a contact
in a sequence, commonly known as a "sequence membership".
- name: Users
description: The `User` Common Object represents a "user" in Engagements.
- name: Mailboxes
description: The `Mailbox` Common Object is used to represent email mailbox, used
within the application for sending and syncing emails.
components:
securitySchemes:
x-api-key:
type: apiKey
name: x-api-key
in: header
description: API key to allow developers to access the API
schemas:
account:
type: object
properties:
id:
type: string
example: 54312
owner_id:
type: string
nullable: true
example: 23e640fe-6105-4a11-a636-3aa6b6c6e762
name:
type: string
nullable: true
example: My Company
domain:
type: string
nullable: true
example: mycompany.com
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
is_deleted:
type: boolean
example: false
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
raw_data:
type: object
additionalProperties: true
required:
- id
- owner_id
- name
- domain
- created_at
- updated_at
- is_deleted
- last_modified_at
create_account:
type: object
properties:
name:
type: string
nullable: true
example: My Company
domain:
type: string
nullable: true
example: mycompany.com
owner_id:
type: string
nullable: true
example: 9f3e97fd-4d5d-4efc-959d-bbebfac079f5
account_id:
type: string
nullable: true
example: ae4be028-9078-4850-a0bf-d2112b7c4d11
custom_fields:
$ref: '#/components/schemas/custom_fields'
contact:
type: object
properties:
id:
type: string
example: 54312
owner_id:
type: string
nullable: true
example: 23e640fe-6105-4a11-a636-3aa6b6c6e762
account_id:
type: string
nullable: true
example: 45edea5a-0b9a-44ff-bd45-4452014eb4fa
first_name:
type: string
nullable: true
example: George
last_name:
type: string
nullable: true
example: Xing
job_title:
type: string
nullable: true
example: CEO
address:
$ref: '#/components/schemas/address'
email_addresses:
$ref: '#/components/schemas/email_addresses'
phone_numbers:
$ref: '#/components/schemas/phone_numbers'
open_count:
type: number
click_count:
type: number
reply_count:
type: number
bounced_count:
type: number
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
is_deleted:
type: boolean
example: false
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
raw_data:
type: object
additionalProperties: true
required:
- id
- owner_id
- first_name
- last_name
- job_title
- address
- email_addresses
- phone_numbers
- open_count
- click_count
- reply_count
- bounced_count
- created_at
- updated_at
- is_deleted
- last_modified_at
create_contact:
type: object
properties:
first_name:
type: string
nullable: true
example: George
last_name:
type: string
nullable: true
example: Xing
job_title:
type: string
nullable: true
example: CEO
address:
$ref: '#/components/schemas/address'
email_addresses:
$ref: '#/components/schemas/email_addresses'
phone_numbers:
$ref: '#/components/schemas/phone_numbers'
owner_id:
type: string
nullable: true
example: 9f3e97fd-4d5d-4efc-959d-bbebfac079f5
account_id:
type: string
nullable: true
example: ae4be028-9078-4850-a0bf-d2112b7c4d11
custom_fields:
$ref: '#/components/schemas/custom_fields'
sequence_state:
type: object
properties:
id:
type: string
example: 54312
state:
type: string
nullable: true
example: active
contact_id:
type: string
nullable: true
example: c590dc63-8e43-48a4-8154-1fbb00ac936b
mailbox_id:
nullable: true
type: string
example: 39fd1fe0-094b-4a61-b47f-3e3ac033203d
user_id:
nullable: true
type: string
example: ab0530ef-61dd-4a99-b26b-6b5a61c7c62e
sequence_id:
nullable: true
type: string
example: b854e510-1c40-4ef6-ade4-8eb35f49d331
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
is_deleted:
type: boolean
example: false
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
required:
- id
- state
- mailbox_id
- user_id
- contact_id
- sequence_id
- created_at
- updated_at
- is_deleted
- last_modified_at
create_sequence_state:
type: object
properties:
contact_id:
type: string
example: c590dc63-8e43-48a4-8154-1fbb00ac936b
mailbox_id:
type: string
example: 39fd1fe0-094b-4a61-b47f-3e3ac033203d
description: The ID of the mailbox to use for the sequence. Required for
Apollo and Outreach. Unused for Salesloft.
sequence_id:
type: string
example: b854e510-1c40-4ef6-ade4-8eb35f49d331
user_id:
type: string
description: The ID of the user who is performing the action. Required for
Salesloft, optional for Apollo, unused for Outreach.
required:
- contact_id
- sequence_id
mailbox:
type: object
properties:
id:
type: string
example: 54312
email:
type: string
nullable: true
example: null
user_id:
nullable: true
type: string
example: 39fd1fe0-094b-4a61-b47f-3e3ac033203d
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
is_deleted:
type: boolean
example: false
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
is_disabled:
type: boolean
nullable: true
description: When disabled, cannot be used to send email.
required:
- id
- email
- user_id
- created_at
- updated_at
- is_deleted
- last_modified_at
user:
type: object
properties:
id:
type: string
example: 54312
first_name:
type: string
nullable: true
example: George
last_name:
type: string
nullable: true
example: Xing
email:
type: string
nullable: true
example: george@supaglue.com
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
is_deleted:
type: boolean
example: false
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
is_locked:
type: boolean
nullable: true
description: When locked, cannot send email or take most actions in the
app. This is null when provider does not have such concept (e.g. apollo)
required:
- id
- first_name
- last_name
- email
- created_at
- updated_at
- is_deleted
- last_modified_at
sequence:
type: object
properties:
owner_id:
type: string
nullable: true
example: 95fe0d29-e8cc-48ac-9afd-e02d8037a597
id:
type: string
example: 54312
is_enabled:
type: boolean
example: true
name:
nullable: true
type: string
tags:
type: array
description: Raw values in Outreach, ids in Apollo, and not supported in
Salesloft
items:
type: string
num_steps:
type: number
metrics:
type: object
additionalProperties: true
created_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
updated_at:
type: string
nullable: true
format: date-time
example: '2022-02-27T00:00:00Z'
last_modified_at:
type: string
format: date-time
example: '2022-02-27T00:00:00Z'
is_archived:
type: boolean
description: When archived, cannot add contact to sequence or send mail.
share_type:
type: string
description: The share type of the sequence. If `team` will share with the
whole team. `private` will only share with the owner.
enum:
- team
- private
steps:
type: array
items:
$ref: '#/components/schemas/sequence_step'
description: Only returned when getting single sequence, not returned when
listing sequences because it is too expensive to do so.
required:
- id
- is_enabled
- name
- tags
- num_steps
- metrics
- created_at
- updated_at
- last_modified_at
sequence_step:
type: object
properties:
id:
type: string
name:
type: string
description: The name given by the user for the step. Used by Salesloft
only.
interval_seconds:
type: number
description: The interval (in seconds) until this step will activate after
the previous step (in case of first step, relative to when prospect first
enters a sequence); only applicable to interval-based sequences. This
is 0 by default
date:
type: string
example: '2023-01-01'
description: The date this step will activate; only applicable to date-based
sequences.
template:
description: The email/message template to be used for this step. Only applicable
for email or message steps.
type: object
properties:
id:
type: string
description: The ID of the template
body:
type: string
description: The body of the email (HTML).
subject:
type: string
description: The subject of the email.
name:
type: string
description: The name of the template. In Outreach, if missing this
will create an `invisible` template that doesn't show up in the templates
list UI.
to:
type: array
description: A list of default person and email address pairs to receive
this template in the "to" field
items:
type: string
cc:
type: array
description: A list of default person and email address pairs to receive
this template in the "cc" field
items:
type: string
bcc:
type: array
description: A list of default person and email address pairs to receive
this template in the "bcc" field
items:
type: string
required:
- body
- subject
is_reply:
type: boolean
description: If true, this step will be sent as a reply to the previous
step.
order:
type: number
description: The step's display order within its sequence. Only applicable
for Outreach when adding steps one at a time after the initial sequence
creation, otherwise when creating steps together with sequence order is
implicit based on the order of step within the step array. Salesloft does
not use the `order` param, and order is instead determined by `interval_seconds`
which translates into the `day` parameter
type:
type: string
enum:
- auto_email
- manual_email
- call
- task
- linkedin_send_message
description: "The type of the sequence state. Note: `linkedin_send_message`\
\ is undocumented in Outreach and subject to change.\n\nSee below for\
\ how these types are mapped:\n\n
\n \n \n \
\ | Provider | \n auto_email | \n manual_email | \n\
\ call | \n task | \n linkedin_send_message | \n\
\
\n \n \n \n | Apollo | \n\
\ auto_email | \n manual_email | \n \
\ call | \n action_item | \n linkedin_send_message | \n\
\
\n \n | Outreach | \n auto_email | \n\
\ manual_email | \n call | \n task | \n\
\ linkedin_send_message | \n
\n \n \
\ | Salesloft | \n Email | \n Email | \n\
\ Phone | \n Other | \n (Not\
\ supported) | \n
\n \n
\n"
task_note:
type: string
description: An optional note to be attached to this step.
required:
- type
create_sequence:
type: object
properties:
name:
type: string
tags:
type: array
description: Raw values in Outreach, ids in Apollo, and not supported in
Salesloft
items:
type: string
type:
type: string
description: The share type of the sequence. Setting to `team` will share
with the whole team. `private` will only share with the owner.
enum:
- team
- private
owner_id:
type: string
steps:
type: array
items:
$ref: '#/components/schemas/create_sequence_step'
custom_fields:
$ref: '#/components/schemas/custom_fields'
required:
- name
- type
create_sequence_step:
type: object
properties:
name:
type: string
description: The name given by the user for the step. Used by Salesloft
only.
interval_seconds:
type: number
description: The interval (in seconds) until this step will activate after
the previous step (in case of first step, relative to when prospect first
enters a sequence); only applicable to interval-based sequences. This
is 0 by default
date:
type: string
example: '2023-01-01'
description: The date this step will activate; only applicable to date-based
sequences.
template:
description: The email/message template to be used for this step. Only applicable
for email or message steps.
oneOf:
- type: object
properties:
id:
type: string
description: The ID of the template to use for this step.
required:
- id
- type: object
properties:
body:
type: string
description: The body of the email (HTML).
subject:
type: string
description: The subject of the email.
name:
type: string
description: The name of the template. In Outreach, if missing this
will create an `invisible` template that doesn't show up in the
templates list UI.
to:
type: array
description: A list of default person and email address pairs to receive
this template in the "to" field
items:
type: string
cc:
type: array
description: A list of default person and email address pairs to receive
this template in the "cc" field
items:
type: string
bcc:
type: array
description: A list of default person and email address pairs to receive
this template in the "bcc" field
items:
type: string
custom_fields:
$ref: '#/components/schemas/custom_fields'
required:
- body
- subject
is_reply:
type: boolean
description: If true, this step will be sent as a reply to the previous
step.
order:
type: number
description: The step's display order within its sequence. Only applicable
for Outreach when adding steps one at a time after the initial sequence
creation, otherwise when creating steps together with sequence order is
implicit based on the order of step within the step array. Salesloft does
not use the `order` param, and order is instead determined by `interval_seconds`
which translates into the `day` parameter
type:
type: string
enum:
- auto_email
- manual_email
- call
- task
- linkedin_send_message
description: "The type of the sequence state. Note: `linkedin_send_message`\
\ is undocumented in Outreach and subject to change.\n\nSee below for\
\ how these types are mapped:\n\n\n \n \n \
\ | Provider | \n auto_email | \n manual_email | \n\
\ call | \n task | \n linkedin_send_message | \n\
\
\n \n \n \n | Apollo | \n\
\ auto_email | \n manual_email | \n \
\ call | \n action_item | \n linkedin_send_message | \n\
\
\n \n | Outreach | \n auto_email | \n\
\ manual_email | \n call | \n task | \n\
\ linkedin_send_message | \n
\n \n \
\ | Salesloft | \n Email | \n Email | \n\
\ Phone | \n Other | \n (Not\
\ supported) | \n
\n \n
\n"
task_note:
type: string
description: An optional note to be attached to this step.
custom_fields:
$ref: '#/components/schemas/custom_fields'
required:
- type
update_sequence_step:
type: object
properties:
template:
description: The email/message template to be used for this step. Only applicable
for email or message steps.
type: object
properties:
body:
type: string
description: The body of the email (HTML).
subject:
type: string
description: The subject of the email.
custom_fields:
$ref: '#/components/schemas/custom_fields'
pagination:
type: object
properties:
next:
type: string
nullable: true
example: eyJpZCI6IjQyNTc5ZjczLTg1MjQtNDU3MC05YjY3LWVjYmQ3MDJjNmIxNCIsInJldmVyc2UiOmZhbHNlfQ==
previous:
type: string
nullable: true
example: eyJpZCI6IjBjZDhmYmZkLWU5NmQtNDEwZC05ZjQxLWIwMjU1YjdmNGI4NyIsInJldmVyc2UiOnRydWV9
total_count:
type: number
example: 100
required:
- next
- previous
address:
type: object
nullable: true
properties:
city:
type: string
nullable: true
example: San Francisco
country:
type: string
nullable: true
example: USA
postal_code:
type: string
nullable: true
example: '94107'
state:
type: string
nullable: true
example: CA
street_1:
type: string
nullable: true
example: 525 Brannan
street_2:
type: string
nullable: true
example: null
required:
- city
- country
- postal_code
- state
- street_1
- street_2
example:
- city: San Francisco
country: US
postal_code: '94107'
state: CA
street_1: 525 Brannan
street_2: null
email_addresses:
type: array
items:
type: object
properties:
email_address:
type: string
example: hello@supaglue.com
email_address_type:
type: string
nullable: true
enum:
- primary
- personal
- work
required:
- email_address
- email_address_type
example:
- email_address: hello@supaglue.com
email_address_type: work
phone_numbers:
type: array
items:
type: object
properties:
phone_number:
type: string
nullable: true
example: '+14151234567'
phone_number_type:
type: string
nullable: true
enum:
- primary
- work
- home
- mobile
- other
required:
- phone_number
- phone_number_type
example:
- phone_number: '+14151234567'
phone_number_type: work
custom_fields:
type: object
additionalProperties: true
description: Custom properties to be inserted that are not covered by the common
object. Object keys must match exactly to the corresponding provider API.
created_record:
type: object
properties:
id:
type: string
required:
- id
errors:
type: array
items:
type: object
properties:
id:
type: string
description: A unique identifier for the instance of the error. Provide
this to support when contacting Supaglue.
example: 9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5
detail:
type: string
description: A detailed description of the error.
example: 'Property values were not valid: [{"isValid":false,"message":"Property
\"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property
\"__about_us\" does not exist"}]'
problem_type:
type: string
description: The Supaglue error code associated with the error.
example: MISSING_REQUIRED_FIELD
deprecated: true
title:
type: string
description: A brief description of the error. The schema and type of
message will vary by Provider.
example: 'Property values were not valid
'
code:
type: string
description: The Supaglue error code associated with the error.
example: MISSING_REQUIRED_FIELD
status:
type: string
description: The HTTP status code associated with the error.
example: '400'
meta:
type: object
description: Additional metadata about the error.
properties:
cause:
type: object
description: The cause of the error. Usually the underlying error
from the remote Provider.
example:
code: 400
body:
status: error
message: 'Property values were not valid: [{"isValid":false,"message":"Property
\"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property
\"__about_us\" does not exist"}]'
correlationId: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
category: VALIDATION_ERROR
headers:
access-control-allow-credentials: 'false'
cf-cache-status: DYNAMIC
cf-ray: 8053d17b9dae9664-SJC
connection: close
content-length: '361'
content-type: application/json;charset=utf-8
date: Mon, 11 Sep 2023 23:51:22 GMT
nel: '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
report-to: '{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc"}],"group":"cf-nel","max_age":604800}'
server: cloudflare
strict-transport-security: max-age=31536000; includeSubDomains;
preload
vary: origin, Accept-Encoding
x-content-type-options: nosniff
x-envoy-upstream-service-time: '91'
x-evy-trace-listener: listener_https
x-evy-trace-route-configuration: listener_https/all
x-evy-trace-route-service-name: envoyset-translator
x-evy-trace-served-by-pod: iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2
x-evy-trace-virtual-host: all
x-hubspot-correlation-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
x-hubspot-ratelimit-interval-milliseconds: '10000'
x-hubspot-ratelimit-max: '100'
x-hubspot-ratelimit-remaining: '99'
x-hubspot-ratelimit-secondly: '10'
x-hubspot-ratelimit-secondly-remaining: '9'
x-request-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
x-trace: 2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000
origin:
type: string
enum:
- remote-provider
- supaglue
description: The origin of the error.
example: remote-provider
application_name:
type: string
description: The name of the application that generated the error.
example: MyCompany Production
required:
- origin
additionalProperties: true
required:
- id
- detail
- problem_type
- title
- code
- status
- meta
example:
- meta:
cause:
code: 400
body:
status: error
message: 'Property values were not valid: [{"isValid":false,"message":"Property
\"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property
\"__about_us\" does not exist"}]'
correlationId: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
category: VALIDATION_ERROR
headers:
access-control-allow-credentials: 'false'
cf-cache-status: DYNAMIC
cf-ray: 8053d17b9dae9664-SJC
connection: close
content-length: '361'
content-type: application/json;charset=utf-8
date: Mon, 11 Sep 2023 23:51:22 GMT
nel: '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
report-to: '{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc"}],"group":"cf-nel","max_age":604800}'
server: cloudflare
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: origin, Accept-Encoding
x-content-type-options: nosniff
x-envoy-upstream-service-time: '91'
x-evy-trace-listener: listener_https
x-evy-trace-route-configuration: listener_https/all
x-evy-trace-route-service-name: envoyset-translator
x-evy-trace-served-by-pod: iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2
x-evy-trace-virtual-host: all
x-hubspot-correlation-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
x-hubspot-ratelimit-interval-milliseconds: '10000'
x-hubspot-ratelimit-max: '100'
x-hubspot-ratelimit-remaining: '99'
x-hubspot-ratelimit-secondly: '10'
x-hubspot-ratelimit-secondly-remaining: '9'
x-request-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
x-trace: 2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000
detail: 'Property values were not valid: [{"isValid":false,"message":"Property
\"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property
\"__about_us\" does not exist"}]'
problem_type: MISSING_REQUIRED_FIELD
title: 'Property values were not valid
'
code: MISSING_REQUIRED_FIELD
status: '400'
id: 9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5
warnings:
type: array
items:
type: object
properties:
detail:
type: string
problem_type:
type: string
title:
type: string
parameters:
include_deleted_data:
name: include_deleted_data
in: query
schema:
type: boolean
example: true
description: Whether to include data that was deleted in providers.
include_raw_data:
name: include_raw_data
in: query
schema:
type: boolean
description: Whether to include raw data fetched from the 3rd party provider.
example: true
created_after:
name: created_after
in: query
schema:
type: string
format: date-time
example: '2023-02-23T00:00:00Z'
description: If provided, will only return objects created after this datetime.
Datetime must be in ISO 8601 format and URI encoded.
created_before:
name: created_before
in: query
schema:
type: string
format: date-time
example: '2023-02-23T00:00:00Z'
description: If provided, will only return objects created before this datetime.
Datetime must be in ISO 8601 format and URI encoded.
modified_after:
name: modified_after
in: query
schema:
type: string
format: date-time
description: If provided, will only return objects modified after this datetime.
Datetime must be in ISO 8601 format and URI encoded.
example: '2023-02-23T00:00:00Z'
modified_before:
name: modified_before
in: query
schema:
type: string
format: date-time
example: '2023-02-23T00:00:00Z'
description: If provided, will only return objects modified before this datetime.
Datetime must be in ISO 8601 format and URI encoded.
cursor:
name: cursor
in: query
schema:
type: string
example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
description: The pagination cursor value
page_size:
name: page_size
in: query
schema:
type: string
example: 123
description: 'Number of results to return per page. (Max: 1000)'
remote_provider_page_size:
name: page_size
in: query
schema:
type: string
example: 100
description: 'Number of results to return per page. (Max: 100)'
read_from_cache:
name: read_from_cache
in: query
schema:
type: boolean
example: true
description: "Whether to read from Supaglue's Managed Destination cache or to\
\ read directly from the provider. \n\n\n**NOTE**: `read_from_cache=true`\
\ requires you to have the object synced to the Supaglue Managed Destination.\n"
x-customer-id:
name: x-customer-id
in: header
schema:
type: string
example: my-customer-1
description: The customer ID that uniquely identifies the customer in your application
required: true
x-provider-name:
name: x-provider-name
in: header
schema:
type: string
example: salesforce
description: The provider name
required: true
responses:
badRequest:
description: Bad request
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
conflict:
description: Conflict
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
forbidden:
description: Forbidden
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
internalServerError:
description: Internal server error
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
notFound:
description: Not found
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
notImplemented:
description: Not implemented
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
remoteProviderError:
description: Remote provider error
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
unauthorized:
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'
unprocessableEntity:
description: Unprocessable entity
content:
application/json:
schema:
type: object
properties:
errors:
$ref: '#/components/schemas/errors'