openapi: 3.1.0
info:
title: Accounting subpackage_applications 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_applications
paths:
/ats/v1/applications:
get:
operationId: list
summary: List
description: Returns a list of `Application` objects.{/* BEGIN_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}{/* END_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_applications
parameters:
- name: candidate_id
in: query
description: If provided, will only return applications for this candidate.
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: credited_to_id
in: query
description: If provided, will only return applications credited to this user.
required: false
schema:
type: string
- name: current_stage_id
in: query
description: If provided, will only return applications at this interview stage.
required: false
schema:
type: string
- name: cursor
in: query
description: The pagination cursor value.
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/ApplicationsGetParametersExpandSchemaItems'
- 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_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: job_id
in: query
description: If provided, will only return applications for this job.
required: false
schema:
type: string
- 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: page_size
in: query
description: Number of results to return per page. The maximum limit is 100.
required: false
schema:
type: integer
- name: reject_reason_id
in: query
description: If provided, will only return applications with this reject reason.
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: source
in: query
description: If provided, will only return applications with this source.
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/PaginatedApplicationList'
post:
operationId: create
summary: Create
description: 'Creates an `Application` object with the given values.
For certain integrations, but not all, our API detects duplicate candidates and will associate applications with existing records in the third-party. New candidates are created and automatically linked to the application.
See our [Help Center article](https://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) for detailed support per integration.
{/* BEGIN_ATS_APPLICATION_CREATE_SUPPORTED_FIELDS */}{/* END_ATS_APPLICATION_CREATE_SUPPORTED_FIELDS */}'
tags:
- subpackage_applications
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/ApplicationResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationEndpointRequest'
/ats/v1/applications/{id}:
get:
operationId: retrieve
summary: Retrieve
description: Returns an `Application` object with the given `id`.{/* BEGIN_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}{/* END_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_applications
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/ApplicationsIdGetParametersExpandSchemaItems'
- 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_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/Application'
/ats/v1/applications/{id}/change-stage:
post:
operationId: change-stage-create
summary: Change Stage Create
description: Updates the `current_stage` field of an `Application` object{/* BEGIN_ATS_APPLICATION_CREATE_SUPPORTED_FIELDS */}{/* END_ATS_APPLICATION_CREATE_SUPPORTED_FIELDS */}
tags:
- subpackage_applications
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- 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/ApplicationResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateApplicationStageRequest'
/ats/v1/applications/meta/post:
get:
operationId: meta-post-retrieve
summary: Meta Post Retrieve
description: Returns metadata for `Application` POSTs.{/* BEGIN_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}{/* END_ATS_APPLICATION_FETCH_SUPPORTED_FIELDS */}
tags:
- subpackage_applications
parameters:
- name: application_remote_template_id
in: query
description: The template ID associated with the nested application in the request.
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/MetaResponse'
components:
schemas:
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
PaginatedApplicationList:
type: object
properties:
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/Application'
title: PaginatedApplicationList
ScreeningQuestionAnswer:
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.
question:
type:
- string
- 'null'
format: uuid
description: The screening question associated with the candidate’s answer. To determine the data type of the answer, you can expand on the screening question by adding `screening_question_answers.question` to the `expand` query parameter.
answer:
type:
- string
- 'null'
description: The candidate’s response to the screening question.
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/).
description: '# The ScreeningQuestionAnswer Object
### Description
The `ScreeningQuestionAnswer` object is used to represent candidate responses to a screening question, for a specific application.
### Usage Example
TODO'
title: ScreeningQuestionAnswer
ApplicationFieldMappings:
type: object
properties:
organization_defined_targets:
type: object
additionalProperties:
description: Any type
linked_account_defined_targets:
type: object
additionalProperties:
description: Any type
title: ApplicationFieldMappings
Application:
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.
candidate:
type:
- string
- 'null'
format: uuid
description: The candidate applying.
job:
type:
- string
- 'null'
format: uuid
description: The job being applied for.
applied_at:
type:
- string
- 'null'
format: date-time
description: When the application was submitted.
rejected_at:
type:
- string
- 'null'
format: date-time
description: When the application was rejected.
offers:
type: array
items:
type: string
format: uuid
source:
type:
- string
- 'null'
description: The application's source.
credited_to:
type:
- string
- 'null'
format: uuid
description: The user credited for this application.
screening_question_answers:
type: array
items:
$ref: '#/components/schemas/ScreeningQuestionAnswer'
current_stage:
type:
- string
- 'null'
format: uuid
description: The application's current stage.
reject_reason:
type:
- string
- 'null'
format: uuid
description: The application's reason for rejection.
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/ApplicationFieldMappings'
- type: 'null'
remote_data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RemoteData'
description: '# The Application Object
### Description
The Application Object is used to represent a candidate''s journey through a particular Job''s recruiting process. If a Candidate applies for multiple Jobs, there will be a separate Application for each Job if the third-party integration allows it.
### Usage Example
Fetch from the `LIST Applications` endpoint and filter by `ID` to show all applications.'
title: Application
ApplicationRequest:
type: object
properties:
candidate:
type:
- string
- 'null'
format: uuid
description: The candidate applying.
job:
type:
- string
- 'null'
format: uuid
description: The job being applied for.
applied_at:
type:
- string
- 'null'
format: date-time
description: When the application was submitted.
rejected_at:
type:
- string
- 'null'
format: date-time
description: When the application was rejected.
offers:
type: array
items:
type: string
format: uuid
source:
type:
- string
- 'null'
description: The application's source.
credited_to:
type:
- string
- 'null'
format: uuid
description: The user credited for this application.
screening_question_answers:
type: array
items:
$ref: '#/components/schemas/ScreeningQuestionAnswerRequest'
current_stage:
type:
- string
- 'null'
format: uuid
description: The application's current stage.
reject_reason:
type:
- string
- 'null'
format: uuid
description: The application's reason for rejection.
remote_template_id:
type:
- string
- 'null'
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The Application Object
### Description
The Application Object is used to represent a candidate''s journey through a particular Job''s recruiting process. If a Candidate applies for multiple Jobs, there will be a separate Application for each Job if the third-party integration allows it.
### Usage Example
Fetch from the `LIST Applications` endpoint and filter by `ID` to show all applications.'
title: ApplicationRequest
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
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
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
ApplicationResponse:
type: object
properties:
model:
$ref: '#/components/schemas/Application'
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: ApplicationResponse
ApplicationsIdGetParametersExpandSchemaItems:
type: string
enum:
- candidate
- credited_to
- current_stage
- job
- offers
- reject_reason
- screening_question_answers
- screening_question_answers.question
title: ApplicationsIdGetParametersExpandSchemaItems
ApplicationEndpointRequest:
type: object
properties:
model:
$ref: '#/components/schemas/ApplicationRequest'
remote_user_id:
type: string
required:
- model
- remote_user_id
title: ApplicationEndpointRequest
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
DebugModelLogSummary:
type: object
properties:
url:
type: string
method:
type: string
status_code:
type: integer
required:
- url
- method
- status_code
title: DebugModelLogSummary
UpdateApplicationStageRequest:
type: object
properties:
job_interview_stage:
type:
- string
- 'null'
format: uuid
description: The interview stage to move the application to.
remote_user_id:
type: string
title: UpdateApplicationStageRequest
LinkedAccountStatus:
type: object
properties:
linked_account_status:
type: string
can_make_request:
type: boolean
required:
- linked_account_status
- can_make_request
title: LinkedAccountStatus
ScreeningQuestionAnswerRequest:
type: object
properties:
remote_id:
type:
- string
- 'null'
description: The third-party API ID of the matching object.
question:
type:
- string
- 'null'
format: uuid
description: The screening question associated with the candidate’s answer. To determine the data type of the answer, you can expand on the screening question by adding `screening_question_answers.question` to the `expand` query parameter.
answer:
type:
- string
- 'null'
description: The candidate’s response to the screening question.
integration_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
linked_account_params:
type:
- object
- 'null'
additionalProperties:
description: Any type
description: '# The ScreeningQuestionAnswer Object
### Description
The `ScreeningQuestionAnswer` object is used to represent candidate responses to a screening question, for a specific application.
### Usage Example
TODO'
title: ScreeningQuestionAnswerRequest
ApplicationsGetParametersExpandSchemaItems:
type: string
enum:
- candidate
- credited_to
- current_stage
- job
- offers
- reject_reason
- screening_question_answers
- screening_question_answers.question
title: ApplicationsGetParametersExpandSchemaItems
securitySchemes:
tokenAuth:
type: http
scheme: bearer
description: Token-based authentication with required prefix "Bearer"