openapi: 3.1.0
info:
title: Accounting subpackage_leads API
version: 1.0.0
servers:
- url: https://api.merge.dev/api
- url: https://api-eu.merge.dev/api
- url: https://api-ap.merge.dev/api
tags:
- name: subpackage_leads
paths:
/crm/v1/leads:
get:
operationId: list
summary: List
description: Returns a list of `Lead` objects.{/* BEGIN_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_leads
parameters:
- name: converted_account_id
in: query
description: If provided, will only return leads with this account.
required: false
schema:
type: string
- name: converted_contact_id
in: query
description: If provided, will only return leads with this contact.
required: false
schema:
type: string
- name: created_after
in: query
description: If provided, will only return objects created after this datetime.
required: false
schema:
type: string
format: date-time
- name: created_before
in: query
description: If provided, will only return objects created before this datetime.
required: false
schema:
type: string
format: date-time
- name: cursor
in: query
description: The pagination cursor value.
required: false
schema:
type: string
- name: email_addresses
in: query
description: If provided, will only return contacts matching the email addresses; multiple email_addresses can be separated by commas.
required: false
schema:
type: string
- name: expand
in: query
description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/LeadsGetParametersExpandSchemaItems'
- name: include_deleted_data
in: query
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
required: false
schema:
type: boolean
- name: include_remote_data
in: query
description: Whether to include the original data Merge fetched from the third-party to produce these models.
required: false
schema:
type: boolean
- name: include_remote_fields
in: query
description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format.
required: false
schema:
type: boolean
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: modified_after
in: query
description: If provided, only objects synced by Merge after this date time will be returned.
required: false
schema:
type: string
format: date-time
- name: modified_before
in: query
description: If provided, only objects synced by Merge before this date time will be returned.
required: false
schema:
type: string
format: date-time
- name: owner_id
in: query
description: If provided, will only return leads with this owner.
required: false
schema:
type: string
- name: page_size
in: query
description: Number of results to return per page. The maximum limit is 100.
required: false
schema:
type: integer
- name: phone_numbers
in: query
description: If provided, will only return contacts matching the phone numbers; multiple phone numbers can be separated by commas.
required: false
schema:
type: string
- name: remote_id
in: query
description: The API provider's ID for the given object.
required: false
schema:
type: string
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedLeadList'
post:
operationId: create
summary: Create
description: Creates a `Lead` object with the given values.{/* BEGIN_CRM_LEAD_CREATE_SUPPORTED_FIELDS */}{/* END_CRM_LEAD_CREATE_SUPPORTED_FIELDS */}
tags:
- subpackage_leads
parameters:
- name: is_debug_mode
in: query
description: Whether to include debug fields (such as log file links) in the response.
required: false
schema:
type: boolean
- name: run_async
in: query
description: Whether or not third-party updates should be run asynchronously.
required: false
schema:
type: boolean
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/LeadResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LeadEndpointRequest'
/crm/v1/leads/{id}:
get:
operationId: retrieve
summary: Retrieve
description: Returns a `Lead` object with the given `id`.{/* BEGIN_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_leads
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: expand
in: query
description: Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/LeadsIdGetParametersExpandSchemaItems'
- name: include_remote_data
in: query
description: Whether to include the original data Merge fetched from the third-party to produce these models.
required: false
schema:
type: boolean
- name: include_remote_fields
in: query
description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format.
required: false
schema:
type: boolean
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
/crm/v1/leads/meta/post:
get:
operationId: meta-post-retrieve
summary: Meta Post Retrieve
description: Returns metadata for `Lead` POSTs.{/* BEGIN_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_leads
parameters:
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MetaResponse'
/crm/v1/leads/remote-field-classes:
get:
operationId: remote-field-classes-list
summary: Remote Field Classes List
description: Returns a list of `RemoteFieldClass` objects.{/* BEGIN_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}{/* END_CRM_LEAD_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_leads
parameters:
- name: cursor
in: query
description: The pagination cursor value.
required: false
schema:
type: string
- name: include_deleted_data
in: query
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
required: false
schema:
type: boolean
- name: include_remote_data
in: query
description: Whether to include the original data Merge fetched from the third-party to produce these models.
required: false
schema:
type: boolean
- name: include_remote_fields
in: query
description: Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format.
required: false
schema:
type: boolean
- name: include_shell_data
in: query
description: Whether to include shell records. Shell records are empty records (they may contain some metadata but all other fields are null).
required: false
schema:
type: boolean
- name: is_common_model_field
in: query
description: If provided, will only return remote field classes with this is_common_model_field value
required: false
schema:
type: boolean
- name: is_custom
in: query
description: If provided, will only return remote fields classes with this is_custom value
required: false
schema:
type: boolean
- name: page_size
in: query
description: Number of results to return per page. The maximum limit is 100.
required: false
schema:
type: integer
- name: Authorization
in: header
description: Token-based authentication with required prefix "Bearer"
required: true
schema:
type: string
- name: X-Account-Token
in: header
description: Token identifying the end user.
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRemoteFieldClassList'
components:
schemas:
Address:
type: object
properties:
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
street_1:
type:
- string
- 'null'
description: Line 1 of the address's street.
street_2:
type:
- string
- 'null'
description: Line 2 of the address's street.
city:
type:
- string
- 'null'
description: The address's city.
state:
type:
- string
- 'null'
description: The address's state.
postal_code:
type:
- string
- 'null'
description: The address's postal code.
country:
oneOf:
- $ref: '#/components/schemas/CountryEnum'
- type: 'null'
description: The address's country. The country code in ISO 3166-1 alpha-2 format.
address_type:
oneOf:
- $ref: '#/components/schemas/AddressTypeEnum'
- type: 'null'
description: The address type.
description: '# The Address Object
### Description
The `Address` object is used to represent an entity''s address.
### Usage Example
TODO'
title: Address
LeadsIdGetParametersExpandSchemaItems:
type: string
enum:
- converted_account
- converted_contact
- owner
title: LeadsIdGetParametersExpandSchemaItems
AddressRequest:
type: object
properties:
street_1:
type:
- string
- 'null'
description: Line 1 of the address's street.
street_2:
type:
- string
- 'null'
description: Line 2 of the address's street.
city:
type:
- string
- 'null'
description: The address's city.
state:
type:
- string
- 'null'
description: The address's state.
postal_code:
type:
- string
- 'null'
description: The address's postal code.
country:
oneOf:
- $ref: '#/components/schemas/CountryEnum'
- type: 'null'
description: The address's country. The country code in ISO 3166-1 alpha-2 format.
address_type:
oneOf:
- $ref: '#/components/schemas/AddressTypeEnum'
- type: 'null'
description: The address type.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The Address Object
### Description
The `Address` object is used to represent an entity''s address.
### Usage Example
TODO'
title: AddressRequest
LeadEndpointRequest:
type: object
properties:
model:
$ref: '#/components/schemas/LeadRequest'
required:
- model
title: LeadEndpointRequest
ErrorValidationProblem:
type: object
properties:
source:
$ref: '#/components/schemas/ValidationProblemSource'
title:
type: string
detail:
type: string
problem_type:
type: string
block_merge_link:
type: boolean
raw_error:
type: string
error_code:
type: integer
required:
- title
- detail
- problem_type
title: ErrorValidationProblem
RemoteFieldRequest:
type: object
properties:
remote_field_class:
type: string
format: uuid
value:
type: object
additionalProperties:
description: Any type
required:
- remote_field_class
title: RemoteFieldRequest
LeadsGetParametersExpandSchemaItems:
type: string
enum:
- converted_account
- converted_contact
- owner
title: LeadsGetParametersExpandSchemaItems
ItemTypeEnum:
type: string
enum:
- string
- number
- date
- datetime
- bool
- list
title: ItemTypeEnum
ItemFormatEnum:
type: string
enum:
- string
- number
- date
- datetime
- bool
- list
title: ItemFormatEnum
EmailAddress:
type: object
properties:
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
email_address:
type:
- string
- 'null'
description: The email address.
email_address_type:
type:
- string
- 'null'
description: The email address's type.
description: '# The EmailAddress Object
### Description
The `EmailAddress` object is used to represent an entity''s email address.
### Usage Example
Fetch from the `GET Contact` endpoint and view their email addresses.'
title: EmailAddress
WarningValidationProblem:
type: object
properties:
source:
$ref: '#/components/schemas/ValidationProblemSource'
title:
type: string
detail:
type: string
problem_type:
type: string
block_merge_link:
type: boolean
raw_error:
type: string
error_code:
type: integer
required:
- title
- detail
- problem_type
title: WarningValidationProblem
CountryEnum:
type: string
enum:
- AF
- AX
- AL
- DZ
- AS
- AD
- AO
- AI
- AQ
- AG
- AR
- AM
- AW
- AU
- AT
- AZ
- BS
- BH
- BD
- BB
- BY
- BE
- BZ
- BJ
- BM
- BT
- BO
- BQ
- BA
- BW
- BV
- BR
- IO
- BN
- BG
- BF
- BI
- CV
- KH
- CM
- CA
- KY
- CF
- TD
- CL
- CN
- CX
- CC
- CO
- KM
- CG
- CD
- CK
- CR
- CI
- HR
- CU
- CW
- CY
- CZ
- DK
- DJ
- DM
- DO
- EC
- EG
- SV
- GQ
- ER
- EE
- SZ
- ET
- FK
- FO
- FJ
- FI
- FR
- GF
- PF
- TF
- GA
- GM
- GE
- DE
- GH
- GI
- GR
- GL
- GD
- GP
- GU
- GT
- GG
- GN
- GW
- GY
- HT
- HM
- VA
- HN
- HK
- HU
- IS
- IN
- ID
- IR
- IQ
- IE
- IM
- IL
- IT
- JM
- JP
- JE
- JO
- KZ
- KE
- KI
- KW
- KG
- LA
- LV
- LB
- LS
- LR
- LY
- LI
- LT
- LU
- MO
- MG
- MW
- MY
- MV
- ML
- MT
- MH
- MQ
- MR
- MU
- YT
- MX
- FM
- MD
- MC
- MN
- ME
- MS
- MA
- MZ
- MM
- NA
- NR
- NP
- NL
- NC
- NZ
- NI
- NE
- NG
- NU
- NF
- KP
- MK
- MP
- 'NO'
- OM
- PK
- PW
- PS
- PA
- PG
- PY
- PE
- PH
- PN
- PL
- PT
- PR
- QA
- RE
- RO
- RU
- RW
- BL
- SH
- KN
- LC
- MF
- PM
- VC
- WS
- SM
- ST
- SA
- SN
- RS
- SC
- SL
- SG
- SX
- SK
- SI
- SB
- SO
- ZA
- GS
- KR
- SS
- ES
- LK
- SD
- SR
- SJ
- SE
- CH
- SY
- TW
- TJ
- TZ
- TH
- TL
- TG
- TK
- TO
- TT
- TN
- TR
- TM
- TC
- TV
- UG
- UA
- AE
- GB
- UM
- US
- UY
- UZ
- VU
- VE
- VN
- VG
- VI
- WF
- EH
- YE
- ZM
- ZW
description: The country code in ISO 3166-1 alpha-2 format.
title: CountryEnum
AddressTypeEnum:
type: string
enum:
- BILLING
- SHIPPING
title: AddressTypeEnum
PhoneNumberRequest:
type: object
properties:
phone_number:
type:
- string
- 'null'
description: The phone number.
phone_number_type:
type:
- string
- 'null'
description: The phone number's type.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The PhoneNumber Object
### Description
The `PhoneNumber` object is used to represent an entity''s phone number.
### Usage Example
Fetch from the `GET Contact` endpoint and view their phone numbers.'
title: PhoneNumberRequest
PhoneNumber:
type: object
properties:
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
phone_number:
type:
- string
- 'null'
description: The phone number.
phone_number_type:
type:
- string
- 'null'
description: The phone number's type.
description: '# The PhoneNumber Object
### Description
The `PhoneNumber` object is used to represent an entity''s phone number.
### Usage Example
Fetch from the `GET Contact` endpoint and view their phone numbers.'
title: PhoneNumber
PaginatedLeadList:
type: object
properties:
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/Lead'
title: PaginatedLeadList
DebugModeLog:
type: object
properties:
log_id:
type: string
dashboard_view:
type: string
log_summary:
$ref: '#/components/schemas/DebugModelLogSummary'
required:
- log_id
- dashboard_view
- log_summary
title: DebugModeLog
LeadFieldMappings:
type: object
properties:
organization_defined_targets:
type: object
additionalProperties:
description: Any type
linked_account_defined_targets:
type: object
additionalProperties:
description: Any type
title: LeadFieldMappings
MetaResponse:
type: object
properties:
request_schema:
type: object
additionalProperties:
description: Any type
status:
$ref: '#/components/schemas/LinkedAccountStatus'
has_conditional_params:
type: boolean
has_required_linked_account_params:
type: boolean
remote_fields:
type: array
items:
type: string
format: uuid
description: Remote field values to populate
required:
- request_schema
- has_conditional_params
- has_required_linked_account_params
title: MetaResponse
PaginatedRemoteFieldClassList:
type: object
properties:
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/RemoteFieldClass'
title: PaginatedRemoteFieldClassList
ItemSchema:
type: object
properties:
item_type:
$ref: '#/components/schemas/ItemTypeEnum'
item_format:
$ref: '#/components/schemas/ItemFormatEnum'
item_choices:
type: array
items:
type: string
title: ItemSchema
RemoteData:
type: object
properties:
path:
type: string
description: The third-party API path that is being called.
data:
description: The data returned from the third-party for this object in its original, unnormalized format.
required:
- path
description: '# The RemoteData Object
### Description
The `RemoteData` object is used to represent the full data pulled from the third-party API for an object.
### Usage Example
TODO'
title: RemoteData
ValidationProblemSource:
type: object
properties:
pointer:
type: string
required:
- pointer
title: ValidationProblemSource
LeadRequest:
type: object
properties:
owner:
type:
- string
- 'null'
format: uuid
description: The lead's owner.
lead_source:
type:
- string
- 'null'
description: The lead's source.
title:
type:
- string
- 'null'
description: The lead's title.
company:
type:
- string
- 'null'
description: The lead's company.
first_name:
type:
- string
- 'null'
description: The lead's first name.
last_name:
type:
- string
- 'null'
description: The lead's last name.
addresses:
type: array
items:
$ref: '#/components/schemas/AddressRequest'
email_addresses:
type: array
items:
$ref: '#/components/schemas/EmailAddressRequest'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumberRequest'
converted_date:
type:
- string
- 'null'
format: date-time
description: When the lead was converted.
converted_contact:
type:
- string
- 'null'
format: uuid
description: The contact of the converted lead.
converted_account:
type:
- string
- 'null'
format: uuid
description: The account of the converted lead.
lead_url:
type:
- string
- 'null'
format: uri
description: The lead's URL in the remote system.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
remote_fields:
type: array
items:
$ref: '#/components/schemas/RemoteFieldRequest'
description: '# The Lead Object
### Description
The `Lead` object is used to represent an individual who is a potential customer.
### Usage Example
TODO'
title: LeadRequest
RemoteFieldClass:
type: object
properties:
id:
type: string
display_name:
type: string
remote_key_name:
type: string
description:
type: string
is_custom:
type: boolean
is_common_model_field:
type: boolean
is_required:
type: boolean
field_type:
$ref: '#/components/schemas/FieldTypeEnum'
field_format:
$ref: '#/components/schemas/FieldFormatEnum'
field_choices:
type: array
items:
type: string
item_schema:
$ref: '#/components/schemas/ItemSchema'
title: RemoteFieldClass
RemoteField:
type: object
properties:
remote_field_class:
$ref: '#/components/schemas/RemoteFieldClass'
value:
type: object
additionalProperties:
description: Any type
required:
- remote_field_class
title: RemoteField
LeadResponse:
type: object
properties:
model:
$ref: '#/components/schemas/Lead'
warnings:
type: array
items:
$ref: '#/components/schemas/WarningValidationProblem'
errors:
type: array
items:
$ref: '#/components/schemas/ErrorValidationProblem'
logs:
type: array
items:
$ref: '#/components/schemas/DebugModeLog'
required:
- model
- warnings
- errors
title: LeadResponse
FieldFormatEnum:
type: string
enum:
- string
- number
- date
- datetime
- bool
- list
title: FieldFormatEnum
DebugModelLogSummary:
type: object
properties:
url:
type: string
method:
type: string
status_code:
type: integer
required:
- url
- method
- status_code
title: DebugModelLogSummary
LinkedAccountStatus:
type: object
properties:
linked_account_status:
type: string
can_make_request:
type: boolean
required:
- linked_account_status
- can_make_request
title: LinkedAccountStatus
LeadStatusEnum:
type: string
enum:
- OPEN
- CLOSED
- UNQUALIFIED
- QUALIFIED
title: LeadStatusEnum
Lead:
type: object
properties:
id:
type: string
format: uuid
remote_id:
type:
- string
- 'null'
description: The third-party API ID of the matching object.
created_at:
type: string
format: date-time
description: The datetime that this object was created by Merge.
modified_at:
type: string
format: date-time
description: The datetime that this object was modified by Merge.
owner:
type:
- string
- 'null'
format: uuid
description: The lead's owner.
lead_source:
type:
- string
- 'null'
description: The lead's source.
title:
type:
- string
- 'null'
description: The lead's title.
company:
type:
- string
- 'null'
description: The lead's company.
first_name:
type:
- string
- 'null'
description: The lead's first name.
last_name:
type:
- string
- 'null'
description: The lead's last name.
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
email_addresses:
type: array
items:
$ref: '#/components/schemas/EmailAddress'
phone_numbers:
type: array
items:
$ref: '#/components/schemas/PhoneNumber'
remote_updated_at:
type:
- string
- 'null'
format: date-time
description: When the third party's lead was updated.
remote_created_at:
type:
- string
- 'null'
format: date-time
description: When the third party's lead was created.
converted_date:
type:
- string
- 'null'
format: date-time
description: When the lead was converted.
converted_contact:
type:
- string
- 'null'
format: uuid
description: The contact of the converted lead.
converted_account:
type:
- string
- 'null'
format: uuid
description: The account of the converted lead.
status:
oneOf:
- $ref: '#/components/schemas/LeadStatusEnum'
- type: 'null'
description: The lead's status.
lead_url:
type:
- string
- 'null'
format: uri
description: The lead's URL in the remote system.
remote_was_deleted:
type: boolean
description: Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/).
field_mappings:
oneOf:
- $ref: '#/components/schemas/LeadFieldMappings'
- type: 'null'
remote_data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RemoteData'
remote_fields:
type: array
items:
$ref: '#/components/schemas/RemoteField'
description: '# The Lead Object
### Description
The `Lead` object is used to represent an individual who is a potential customer.
### Usage Example
TODO'
title: Lead
FieldTypeEnum:
type: string
enum:
- string
- number
- date
- datetime
- bool
- list
title: FieldTypeEnum
EmailAddressRequest:
type: object
properties:
email_address:
type:
- string
- 'null'
description: The email address.
email_address_type:
type:
- string
- 'null'
description: The email address's type.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The EmailAddress Object
### Description
The `EmailAddress` object is used to represent an entity''s email address.
### Usage Example
Fetch from the `GET Contact` endpoint and view their email addresses.'
title: EmailAddressRequest
securitySchemes:
tokenAuth:
type: http
scheme: bearer
description: Token-based authentication with required prefix "Bearer"