Kombo Unified ATS API API
Unified endpoints to access all the ATS concepts you might need.
Unified endpoints to access all the ATS concepts you might need.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/kombo-unified-ats-api-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Kombo Unified ATS API
version: 1.0.0
description: Unified endpoints to access all the ATS concepts you might need.
servers:
- url: https://api.kombo.dev/v1
description: Kombo EU API
- url: https://api.us.kombo.dev/v1
description: Kombo US API
security:
- ApiKey: []
tags:
- name: Unified ATS API
description: Unified endpoints to access all the ATS concepts you might need.
paths:
/ats/applications:
get:
operationId: GetAtsApplications
summary: Get applications
description: 'Retrieve all applications.
Visit our in-depth guides to learn more about:
- 💡 [Being aware of which applications are tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked)
- 🚦 [Hiring signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals)
- 📈 [Application stage changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes)
- ❓ [ATS-specific limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations)
Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`'
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: cursor
in: query
required: false
description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterCursor'
- name: page_size
in: query
required: false
description: The number of results to return per page. Maximum is 250.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterPageSize'
- name: updated_after
in: query
required: false
description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged.
If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
| Path | Added/Removed | Linked Record |
| --- | --- | --- |
| `candidate` | n/a | ✓ Yes |
| `candidate` → `tags` | ✗ No | ✗ No |
| `current_stage` | n/a | ✓ Yes |
| `job` | ✗ No | ✗ No |
| `interviews` | ✓ Yes | ✓ Yes |
| `offers` | ✓ Yes | ✓ Yes |
_**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._'
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterUpdatedAfter'
- name: include_deleted
in: query
required: false
description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterIncludeDeleted'
- name: ignore_unsupported_filters
in: query
required: false
description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterIgnoreUnsupportedFilters'
- name: ids
in: query
required: false
description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterIds'
- name: remote_ids
in: query
required: false
description: Filter by a comma-separated list of remote IDs.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterRemoteIds'
- name: outcome
in: query
required: false
description: '**(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter applications by outcome. This allows you to get applications that are for example `PENDING`, `HIRED`, or `DECLINED`.'
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterOutcome'
- name: outcomes
in: query
required: false
description: "Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` \n* `PENDING`: The application is still being processed. \n* `HIRED`: The candidate was hired. \n* `DECLINED`: The candidate was declined. \n \n\nLeave this blank to get results matching all values."
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterOutcomes'
- name: job_ids
in: query
required: false
description: Filter by a comma-separated list of job IDs. We will only return applications that are related to _any_ of the jobs.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterJobIds'
- name: job_remote_ids
in: query
required: false
description: Filter by a comma-separated list of job remote IDs. We will only return applications that are related to _any_ of the jobs.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterJobRemoteIds'
- name: current_stage_ids
in: query
required: false
description: Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in _any_ of the stages.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterCurrentStageIds'
- name: remote_created_after
in: query
required: false
description: Filter applications by the day they were created in the remote system. This allows you to get applications that were created on or after a certain day.
schema:
$ref: '#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter'
responses:
'200':
description: GET /ats/applications Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/GetAtsApplicationsPositiveResponse'
examples:
example1:
value:
status: success
data:
next: eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=
results:
- id: H77fDF8uvEzGNPRubiz5DvQ7
remote_id: '32'
outcome: HIRED
rejection_reason_name: null
rejected_at: null
current_stage_id: 5J7L4b48wBfffYwek9Az9pkM
job_id: H5daSm8e85Dmvmne3wLeCPhX
candidate_id: 26vafvWSRmbhNcxJYqjCzuJg
screening_question_answers:
- answer:
choice: TypeScript
question:
remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4
title: Which is your primary programming language
type: SINGLE_SELECT
custom_fields: {}
integration_fields: []
remote_url: https://app.greenhouse.io/applications/32
changed_at: '2022-08-07T14:01:29.196Z'
remote_deleted_at: null
remote_created_at: '2022-08-07T14:01:29.196Z'
remote_updated_at: '2022-08-07T14:01:29.196Z'
remote_data: null
candidate:
id: 26vafvWSRmbhNcxJYqjCzuJg
remote_id: '32'
first_name: John
last_name: Doe
email_addresses:
- email_address: john.doe@example.com
type: PRIVATE
phone_numbers:
- phone_number: +1-541-754-3010
type: HOME
social_media:
- link: https://www.youtube.com/watch?v=dQw4w9WgXcQ
type: YOUTUBE
username: null
source: Employee Referral
remote_url: https://app.greenhouse.io/people/32
tags:
- id: 26vafvWSRmbhNcxJYqjCzuJg
remote_id: '32'
name: High Potential
current_stage:
id: 5J7L4b48wBfffYwek9Az9pkM
remote_id: '32'
name: Initial Screening
index: 2
job:
id: H5daSm8e85Dmvmne3wLeCPhX
remote_id: '32'
name: Backend Engineer
interviews:
- id: 26vafvWSRmbhNcxJYqjCzuJg
remote_id: '32'
title: Interview with John Doe
starting_at: '2023-06-26T14:30:00.000Z'
ending_at: '2023-06-26T15:30:00.000Z'
location:
city: Berlin
country: DE
raw: Berlin, Germany
state: Berlin
street_1: Lohmühlenstraße 65
street_2: null
zip_code: '12435'
canceled: false
offers:
- id: 76bab8LKuFtqpZ89mofCPMHX
remote_id: '6'
status: ACCEPTED
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/stage:
put:
operationId: PutAtsApplicationsApplicationIdStage
summary: Move application to stage
description: "Moves an application to a specified stage. Use job-specific stages from GET /jobs, not the deprecated /application-stages endpoint.\n\n<Note>\n This endpoint requires the permission **Set application stage** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n \"stage_id\": \"3PJ8PZhZZa1eEdd2DtPNtVup\",\n \"remote_fields\": {}\n}\n```"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The Kombo ID of the application you want to move to a different stage.
schema:
$ref: '#/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId'
examples:
example1:
value: GRKdd9dibYKKCrmGRSMJf3wu
requestBody:
description: PUT /ats/applications/:application_id/stage Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody'
examples:
example1:
value:
stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup
responses:
'200':
description: PUT /ats/applications/:application_id/stage Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PutAtsApplicationsApplicationIdStagePositiveResponse'
examples:
example1:
value:
status: success
data: {}
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/result-links:
post:
operationId: PostAtsApplicationsApplicationIdResultLinks
summary: Add result link to application
description: "Add a result link to an application.\n\nThis can, for example, be used to link a candidate back to a test result/assessment in your application. As not all ATS tools have a \"result link\" feature, we sometimes repurpose other fields to expose it.\n\n<Note>\n This endpoint requires the permission **Add result links** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n \"application_id\": \"8Xi6iZrwusZqJmDGXs49GBmJ\",\n \"label\": \"Assessment Result\",\n \"url\": \"https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG\",\n \"details\": {\n \"custom_field_name_prefix\": \"Acme:\",\n \"attributes\": [\n {\n \"key\": \"Score\",\n \"value\": \"100%\"\n },\n {\n \"key\": \"Time\",\n \"value\": \"2:30h\"\n }\n ]\n },\n \"remote_fields\": {}\n}\n```"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The Kombo ID of the application you want to create the link for.
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId'
examples:
example1:
value: 8Xi6iZrwusZqJmDGXs49GBmJ
requestBody:
description: POST /ats/applications/:application_id/result-links Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody'
examples:
example1:
value:
label: Assessment Result
url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG
details:
custom_field_name_prefix: 'Acme:'
attributes:
- key: Score
value: 100%
- key: Time
value: 2:30h
responses:
'200':
description: POST /ats/applications/:application_id/result-links Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdResultLinksPositiveResponse'
examples:
example1:
value:
status: success
data: {}
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/notes:
post:
operationId: PostAtsApplicationsApplicationIdNotes
summary: Add note to application
description: "Add a note to an application.\n\nAdd extra information to an application. This can be any extra text information you want to add to an application.\n\n<Note>\n This endpoint requires the permission **Add notes** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n \"content\": \"A new message from the candidate is available in YourChat!\",\n \"content_type\": \"PLAIN_TEXT\",\n \"remote_fields\": {}\n}\n```"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The Kombo ID of the application you want to create the note for.
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId'
examples:
example1:
value: 8Xi6iZrwusZqJmDGXs49GBmJ
requestBody:
description: POST /ats/applications/:application_id/notes Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody'
examples:
example1:
value:
content: A new message from the candidate is available in YourChat!
content_type: PLAIN_TEXT
responses:
'200':
description: POST /ats/applications/:application_id/notes Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdNotesPositiveResponse'
examples:
example1:
value:
status: success
data: {}
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/attachments:
get:
operationId: GetAtsApplicationsApplicationIdAttachments
summary: Get application attachments
description: "Get attachments from a candidate or application.\n\nGet attachments from an application. If the ATS stores the attachments on the candidate, it will get the attachments from the corresponding candidate instead.\n\n<Note>\n This endpoint requires the permission **Read document attachments** to be enabled in [your scope config](/scopes).\n</Note>"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The Kombo ID of the application you want to obtain attachments for.
schema:
$ref: '#/components/schemas/GetAtsApplicationsApplicationIdAttachmentsParameterApplicationId'
examples:
example1:
value: 8Xi6iZrwusZqJmDGXs49GBmJ
responses:
'200':
description: GET /ats/applications/:application_id/attachments Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/GetAtsApplicationsApplicationIdAttachmentsPositiveResponse'
examples:
example1:
value:
status: success
data:
results:
- type: CV
id: EYJjhMQT3LtVKXnTbnRT8s6U
remote_id: GUzE666zfyjeoCJX6A8n7wh6
data_url: https://resources.kombo.dev/7yZfKGzWigXxxRTygqAfHvyE
file_name: Frank Doe CV.pdf
content_type: application/x-pdf
remote_created_at: null
remote_updated_at: null
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
post:
operationId: PostAtsApplicationsApplicationIdAttachments
summary: Add attachment to application
description: "Uploads an attachment file for the specified applicant.\n\n<Warning>\n If adding an attachment to an application is not supported by the integration, the attachment will be [added to the candidate](/ats/v1/post-candidates-candidate-id-attachments) instead. \n</Warning>\n\n<Note>\n This endpoint requires the permission **Add attachments** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n \"application_id\": \"GRKdd9dibYKKCrmGRSMJf3wu\",\n \"attachment\": {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n },\n \"remote_fields\": {}\n}\n```"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: POST /ats/applications/:application_id/attachments Parameter
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId'
examples:
example1:
value: GRKdd9dibYKKCrmGRSMJf3wu
requestBody:
description: POST /ats/applications/:application_id/attachments Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody'
examples:
example1:
value:
attachment:
name: Frank Doe CV.txt
data: SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=
type: CV
content_type: text/plain
responses:
'200':
description: POST /ats/applications/:application_id/attachments Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdAttachmentsPositiveResponse'
examples:
example1:
value:
status: success
data: {}
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/reject:
post:
operationId: PostAtsApplicationsApplicationIdReject
summary: Reject application
description: "Rejects an application with a provided reason.\n\nRejects an application with a provided reason. Optionally, you can provide a free text note. You can get the list of rejection reasons with our [Get rejection reasons endpoint](/ats/v1/get-rejection-reasons).\n\n<Note>\n This endpoint requires the permission **Reject applications** to be enabled in [your scope config](/scopes).\n</Note>\n\n### Example Request Body\n\n```json\n{\n \"rejection_reason_id\": \"3PJ8PZhZZa1eEdd2DtPNtVup\",\n \"note\": \"Candidate was a great culture fit but didn't bring the hard skills we need.\",\n \"remote_fields\": {}\n}\n```"
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The Kombo ID of the application you want to reject.
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdRejectParameterApplicationId'
examples:
example1:
value: GRKdd9dibYKKCrmGRSMJf3wu
requestBody:
description: POST /ats/applications/:application_id/reject Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdRejectRequestBody'
examples:
example1:
value:
rejection_reason_id: 3PJ8PZhZZa1eEdd2DtPNtVup
note: Candidate was a great culture fit but didn't bring the hard skills we need.
responses:
'200':
description: POST /ats/applications/:application_id/reject Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdRejectPositiveResponse'
examples:
example1:
value:
status: success
data: {}
warnings:
- message: This is an example warning!
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/applications/{application_id}/interviews:
post:
operationId: PostAtsApplicationsApplicationIdInterviews
summary: Create interview
description: 'Create interview
<Warning>**Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out.</Warning>
'
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The ID of the application
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdInterviewsParameterApplicationId'
requestBody:
description: POST /ats/applications/:application_id/interviews Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdInterviewsRequestBody'
responses:
'200':
description: POST /ats/applications/:application_id/interviews Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PostAtsApplicationsApplicationIdInterviewsPositiveResponse'
default:
$ref: '#/components/responses/ErrorResponseATS'
patch:
operationId: PatchAtsApplicationsApplicationIdInterviews
summary: Update interview
description: 'Update interview
<Warning>**Closed Beta Feature:** This endpoint is currently in closed beta. We''re testing it with selected customers before its public release. If you''re interested in learning more or getting early access, please reach out.</Warning>
'
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: application_id
in: path
required: true
description: The ID of the application
schema:
$ref: '#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsParameterApplicationId'
requestBody:
description: PATCH /ats/applications/:application_id/interviews Request body
content:
application/json:
schema:
$ref: '#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsRequestBody'
responses:
'200':
description: PATCH /ats/applications/:application_id/interviews Positive response
content:
application/json:
schema:
$ref: '#/components/schemas/PatchAtsApplicationsApplicationIdInterviewsPositiveResponse'
default:
$ref: '#/components/responses/ErrorResponseATS'
/ats/candidates:
get:
operationId: GetAtsCandidates
summary: Get candidates
description: 'Retrieve all candidates.
Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`'
tags:
- Unified ATS API
parameters:
- in: header
name: X-Integration-Id
schema:
type: string
description: ID of the integration you want to interact with.
example: join:HWUTwvyx2wLoSUHphiWVrp28
required: true
- name: cursor
in: query
required: false
description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
schema:
$ref: '#/components/schemas/GetAtsCandidatesParameterCursor'
- name: page_size
in: query
required: false
description: The number of results to return per page. Maximum is 250.
schema:
$ref: '#/components/schemas/GetAtsCandidatesParameterPageSize'
- name: updated_after
in: query
required: false
description: 'Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record''s own `changed_at` field remains unchanged.
If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
| Path | Added/Removed | Linked Record |
| --- | --- | --- |
| `applications` | ✓ Yes | ✓ Yes |
| `applications` → `current_stage` | ✗ No | ✗ No |
| `applications` → `job` | ✗ No | ✗ No |
| `tags` | ✓ Yes | ✗ No |
_**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._'
schema:
$ref: '#/components/schemas/GetAtsCandidatesParameterUpdatedAfter'
- name: include_deleted
in: query
required: false
description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
schema:
$ref: '#/components/schemas/GetAtsCandidatesParameterIncludeDeleted'
- name: ignore_unsupported_filters
in: query
required: false
description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
schema:
$ref: '#/components/schemas/GetAtsCandidatesParameterIgnoreUnsupportedFilters'
- name: ids
in: query
required: false
description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
schema:
$ref: '#/com
# --- truncated at 32 KB (530 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kombo/refs/heads/main/openapi/kombo-unified-ats-api-api-openapi.yml