v3

OpenAPI 3.1.02026-07-311255771.3 MB
Unified ATS API

Get applications

Retrieve all applications.

Visit our in-depth guides to learn more about:

  • 💡 Being aware of which applications are tracked
  • 🚦 Hiring signals
  • 📈 Application stage changes
  • 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)

get/ats/applications

Query parameters

cursorstring

An optional cursor string used for pagination. This can be retrieved from the next property of the previous page response.

An optional cursor string used for pagination. This can be retrieved from the next property of the previous page response.

page_sizeinteger

The number of results to return per page. Maximum is 250.

The number of results to return per page. Maximum is 250.

updated_afterstring date-time

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.

For this endpoint, updated_after matches when the returned record changed, or when related data changed as described below.

PathAdded/RemovedLinked Record
candidaten/a✓ Yes
candidatetags✗ No✗ No
current_stagen/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.

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.

For this endpoint, updated_after matches when the returned record changed, or when related data changed as described below.

PathAdded/RemovedLinked Record
candidaten/a✓ Yes
candidatetags✗ No✗ No
current_stagen/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.

include_deleted'true' | 'false'

By default, deleted entries are not returned. Use the include_deleted query param to include deleted entries too.

By default, deleted entries are not returned. Use the include_deleted query param to include deleted entries too.

ignore_unsupported_filters'true' | 'false'

When set to true, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.

When set to true, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.

idsstring

Filter by a comma-separated list of IDs such as 222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3.

Filter by a comma-separated list of IDs such as 222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3.

remote_idsstring

Filter by a comma-separated list of remote IDs.

Filter by a comma-separated list of remote IDs.

outcome'PENDING' | 'HIRED' | 'DECLINED'

(⚠️ Deprecated - Use the outcomes filter instead.) Filter applications by outcome. This allows you to get applications that are for example PENDING, HIRED, or DECLINED.

(⚠️ Deprecated - Use the outcomes filter instead.) Filter applications by outcome. This allows you to get applications that are for example PENDING, HIRED, or DECLINED.

outcomesstring

Filter by a comma-separated list of PENDING, HIRED, DECLINED

  • PENDING: The application is still being processed.
  • HIRED: The candidate was hired.
  • DECLINED: The candidate was declined.

Leave this blank to get results matching all values.

Filter by a comma-separated list of PENDING, HIRED, DECLINED

  • PENDING: The application is still being processed.
  • HIRED: The candidate was hired.
  • DECLINED: The candidate was declined.

Leave this blank to get results matching all values.

job_idsstring

Filter by a comma-separated list of job IDs. We will only return applications that are related to any of the jobs.

Filter by a comma-separated list of job IDs. We will only return applications that are related to any of the jobs.

job_remote_idsstring

Filter by a comma-separated list of job remote IDs. We will only return applications that are related to any of the jobs.

Filter by a comma-separated list of job remote IDs. We will only return applications that are related to any of the jobs.

current_stage_idsstring

Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in any of the stages.

Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in any of the stages.

remote_created_afterstring date-time

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.

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.

Headers

X-Integration-Idstring required

ID of the integration you want to interact with.

Response

GET /ats/applications Positive response

status'success' required

Example response

{
  "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",
          "status": "ACTIVE",
          "custom_fields": {},
          "integration_fields": [],
          "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"
          }
        ]
      }
    ]
  }
}