> This page is for API, version 2026-01-01 (Stable) (default).
> For other versions, use one of these documentation indexes:
> - 2026-01-01 (Stable) (default): https://developer.deel.com/api/stable/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.deel.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.deel.com/_mcp/server.

# Retrieve ATS application

GET https://api.letsdeel.com/rest/ats/applications/{application_id}

Retrieves one ATS application by application_id, including its full interview-stage timeline — when it entered and left each stage and who moved it — not just its current status. Use it to check where a candidate stands or to reconstruct how an application progressed.

 **Token scopes**: `ats:read`, `worker:read`

Reference: https://developer.deel.com/api/reference/endpoints/ats-applications/retrieve-ats-application-v-2026-01-01

## Authentication

- `Authorization` header (bearer token, required) — ## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
- `Authorization` header (bearer token, required) — Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

## Servers

- `https://api.letsdeel.com/rest` (Production, default)
- `https://api-staging.letsdeel.com/rest` (Demo)

## Request

### Path parameters

- `application_id` (string, required) — Application ID

## Response

### 200

Successfully retrieved application

- `data` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaData, required) — Complete application details

## Errors

### 400 Bad Request Error

Operation failed.

- `errors` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaErrorsItems, required) — List of error objects

### 401 Unauthorized Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 403 Forbidden Error

Forbidden. ATS is not enabled for this organization or insufficient permissions.

- `errors` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaErrorsItems, required) — List of error objects

### 404 Not Found Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 500 Internal Server Error

Operation failed.

- `errors` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaErrorsItems, required) — List of error objects

## Types

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaData

Complete application details

- `id` (string, required) — Unique identifier for the application
- `job` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJob, required) — Job details
- `notes` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataNotesItems, required) — Notes on application
- `hired_at` (string, required, nullable) — Timestamp when the application reached the hired stage; null otherwise
- `candidate` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidate, required) — Candidate details
- `job_board` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobBoard, required, nullable) — Job board where application originated
- `created_at` (string, required) — Timestamp when the application was created
- `created_by` (string, required, nullable) — Unique identifier for the HRIS organization user who created the application
- `numeric_id` (integer, required) — Numeric identifier for the application
- `updated_at` (string, required) — Timestamp when the application was last updated
- `job_posting` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPosting, required, nullable) — Job posting details
- `referred_by` (string, required, nullable) — Unique identifier for the HRIS organization user who referred the candidate
- `source_slug` (string, required, nullable) — Source slug
- `archivation_reason` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataArchivationReason, required, nullable) — Archivation reason details; null unless archived
- `job_employment_type` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobEmploymentType, required, nullable) — Employment type associated with the application
- `archivation_reason_id` (string, required, nullable) — Reason the application was archived; null unless archived
- `job_posting_publication` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPostingPublication, required, nullable) — Job posting publication details
- `referral_form_submission` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataReferralFormSubmission, required) — Referral form submission metadata
- `moved_to_current_stage_at` (string, required) — Timestamp when the application moved to the current stage
- `job_posting_publication_state` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPostingPublicationState, required, nullable) — Current state of job posting publication
- `application_job_criterias_matchings` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationJobCriteriasMatchingsItems, required) — Job criteria matchings
- `all_application_interview_plan_stages` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItems, required) — All interview plan stages
- `application_automation_rule_executions` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationAutomationRuleExecutionsItems, required) — Automation rule executions
- `current_application_interview_plan_stage` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCurrentApplicationInterviewPlanStage, required, nullable) — Current interview plan stage for the application
- `submitter_ip_address` (string, optional, nullable) — IP address of the applicant who submitted the application
- `submitter_user_agent` (string, optional, nullable) — User agent of the applicant who submitted the application
- `application_form_submission` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmission, optional, nullable) — Application form submission data with mapped answers

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaErrorsItems

- `code` (string, required) — Machine-readable error code
- `message` (string, required) — Human-readable error message
- `field` (string, optional) — Request field related to the error, if applicable

### ApiErrorRequest

- `method` (string, optional) — The HTTP method of the failed request
- `url` (string, optional) — The relative URL of the failed request
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `source` (string, optional) — The source handler which produced the returned error
- `code` (double, optional) — The code of the source handler which produced the returned error

### ApiError

- `message` (string, optional) — A description of the returned error
- `path` (string, optional) — The JSON path where input validation failed

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJob

Job details

- `id` (string, required) — Unique identifier for the job
- `title` (string, required) — Title of the job

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataNotesItems

Note associated with the application

- `id` (string, required) — Unique identifier for the note
- `created_at` (string, required) — Timestamp when the note was created
- `created_by` (string, required) — Unique identifier for the user who created the note
- `updated_at` (string, required) — Timestamp when the note was last updated
- `richtext_content` (string, required) — Rich text content of the note

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidate

Candidate details

- `id` (string, required) — Candidate unique identifier
- `email` (string, required) — Candidate email address
- `last_name` (string, required) — Candidate last name
- `first_name` (string, required) — Candidate first name
- `attachments` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateAttachmentsItems, required) — Array of attachments associated with the candidate (e.g., resume, cover letter)
- `phone_number` (string, required, nullable) — Candidate phone number
- `candidate_tags` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateCandidateTagsItems, required) — Tags associated with the candidate
- `import_session_id` (string, required, nullable) — Import session identifier if bulk imported
- `profile_picture_url` (string, required, nullable) — Candidate profile picture URL
- `city` (string, optional, nullable) — Candidate city
- `country_code` (string, optional, nullable) — Candidate country code (ISO 3166-1 alpha-2)

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobBoard

Job board where application originated

- `id` (string, required) — Job board unique identifier
- `type` (enum, required) — Type of job board
  - Allowed values: `INTERNAL_CAREER_PAGE`, `EXTERNAL_CAREER_PAGE`, `LINKEDIN`

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPosting

Job posting details

- `id` (string, required) — Unique identifier for the job posting
- `title` (string, required) — Title of the job posting

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataArchivationReason

Archivation reason details; null unless archived

- `id` (string, required) — Archivation reason identifier
- `label` (string, required) — Archivation reason label

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobEmploymentType

Employment type associated with the application

- `id` (string, required) — Identifier of the job employment type record
- `employment_type` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobEmploymentTypeEmploymentType, required) — Employment type metadata

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPostingPublication

Job posting publication details

- `id` (string, required) — Job posting publication unique identifier

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataReferralFormSubmission

Referral form submission metadata

- `id` (string, required, nullable) — Identifier of the referral form submission
- `form_builder_stringified` (string, required, nullable) — Stringified JSON data for the referral form submission

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobPostingPublicationState

Current state of job posting publication

- `id` (string, required) — Job posting publication state identifier
- `state_slug` (enum, required) — State of job posting publication
  - Allowed values: `PUBLISHED_BASIC`, `PUBLISHED_PREMIUM`, `UNPUBLISHED`, `EXPIRED`, `IN_PROGRESS`, `FAILED`

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationJobCriteriasMatchingsItems

- `id` (string, required) — Job criteria matching identifier
- `is_matched` (enum, required) — Match status
  - Allowed values: `MATCHED`, `NOT_MATCHED`, `UNDECIDED`
- `description` (string, required) — Match description
- `job_criteria` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationJobCriteriasMatchingsItemsJobCriteria, required)

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItems

- `id` (string, required) — Unique identifier for the application interview plan stage
- `offers` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsOffersItems, required) — Array of offers associated with this stage
- `exited_at` (string, required, nullable) — Timestamp when the application left this stage; null while the application is still in it
- `entered_at` (string, required) — Timestamp when the application entered this stage
- `is_current` (boolean, required) — Whether this is the stage the application is currently in
- `updated_at` (string, required, nullable) — Timestamp when the stage was last updated
- `interview_plan_stage` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsInterviewPlanStage, required, nullable)
- `moved_by_hris_organization_user_id` (string, required, nullable) — HRIS organization user who moved the application into this stage; null for automated moves

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationAutomationRuleExecutionsItems

Application automation rule execution

- `id` (string, required) — Unique identifier for the automation rule execution
- `action_type_enum` (enum, required) — Type of action to execute
  - Allowed values: `ADD_CANDIDATE_TAG`, `TRANSITION_APPLICATION`
- `evaluation_result` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationAutomationRuleExecutionsItemsEvaluationResultItems, required) — Array of evaluation results
- `application_automation_rule_id` (string, required) — Automation rule identifier

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCurrentApplicationInterviewPlanStage

Current interview plan stage for the application

- `id` (string, required) — Identifier of the application interview plan stage record
- `interview_plan_stage` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCurrentApplicationInterviewPlanStageInterviewPlanStage, required, nullable)

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmission

Application form submission data with mapped answers

- `id` (string, required) — Identifier of the application form submission
- `answers` (list of AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmissionAnswersItems, required) — Array of question answers with parsed data

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateAttachmentsItems

- `id` (string, required) — Unique identifier for the attachment
- `ai_summary` (string, required, nullable) — AI-generated summary of the attachment content

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateCandidateTagsItems

Candidate tag

- `id` (string, required) — Unique identifier for the candidate tag
- `tag` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateCandidateTagsItemsTag, required) — Tag details

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataJobEmploymentTypeEmploymentType

Employment type metadata

- `id` (string, required) — Identifier of the employment type
- `name` (string, required) — Human readable employment type

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationJobCriteriasMatchingsItemsJobCriteria

- `id` (string, required) — Job criteria identifier
- `title` (string, required) — Job criteria title
- `description` (string, required) — Job criteria description

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsOffersItems

Offer details

- `id` (string, required) — Unique identifier for the offer
- `job_title` (string, required) — Job title for the offer
- `created_at` (string, required) — Timestamp when the offer was created
- `start_date` (string, required) — Start date for the position
- `updated_at` (string, required) — Timestamp when the offer was last updated
- `country_code` (string, required) — Country code (ISO 3166-1 alpha-2)
- `attachment_id` (string, required, nullable) — Unique identifier for the offer attachment
- `approval_rule_id` (string, required, nullable) — Unique identifier for the approval rule
- `worker_type_enum` (enum, required) — Type of worker for the offer
  - Allowed values: `CONTRACTOR`, `DIRECT_EMPLOYEE`, `EOR_EMPLOYEE`, `GLOBAL_PAYROLL_EMPLOYEE`, `PEO_EMPLOYEE`, `UNKNOWN`
- `offer_status_enum` (enum, required) — Status of the offer
  - Allowed values: `CREATED`, `WAITING_FOR_APPROVAL`, `APPROVED`, `NOT_APPROVED`, `SENT`, `EXPIRED`, `ACCEPTED`, `REJECTED`
- `approval_request_id` (string, required, nullable) — Unique identifier for the approval request
- `compensation_amount` (double, required) — Compensation amount
- `rejection_reason_id` (string, required, nullable) — Unique identifier for the rejection reason (if rejected)
- `compensation_currency` (string, required) — Currency code for compensation (ISO 4217)
- `compensation_period_slug` (enum, required, nullable) — Compensation period
  - Allowed values: `ANNUALLY`, `MONTHLY`, `SEMIMONTHLY`, `BIWEEKLY`, `WEEKLY`, `DAILY`, `HOURLY`
- `application_interview_plan_stage_id` (string, required) — Unique identifier for the application interview plan stage
- `email` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsOffersItemsEmail, optional, nullable) — Email message associated with the offer

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsInterviewPlanStage

- `id` (string, required) — Interview plan stage unique identifier
- `name` (string, required) — Interview plan stage name
- `position_number` (integer, required) — Position of the stage in the interview plan
- `default_type_slug` (string, required, nullable) — Default type slug
- `category_type_slug` (string, required) — Category type slug

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationAutomationRuleExecutionsItemsEvaluationResultItems

Evaluation result for automation rule

- `id` (string, required) — Unique identifier for the evaluation result
- `group_id` (integer, required) — Group identifier for the condition
- `operator_enum` (enum, required) — Comparison operator
  - Allowed values: `EQUALS`, `NOT_EQUALS`, `CONTAINS`, `DOES_NOT_CONTAIN`, `IS_EMPTY`, `IS_NOT_EMPTY`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL`
- `comparison_value` (string, required) — Value to compare against
- `is_condition_met` (boolean, required) — Whether the condition is met
- `form_builder_question_data_binding_id` (string, required) — Form builder question data binding identifier

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCurrentApplicationInterviewPlanStageInterviewPlanStage

- `id` (string, required) — Interview plan stage unique identifier
- `name` (string, required) — Interview plan stage name
- `position_number` (integer, required) — Position of the stage in the interview plan
- `default_type_slug` (string, required, nullable) — Default type slug
- `category_type_slug` (string, required) — Category type slug

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmissionAnswersItems

Form submission answer

- `answer` (AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmissionAnswersItemsAnswer, required) — The answer value
- `question_text` (string, required) — Text of the question
- `question_type` (enum, required) — Type of the question (uppercase)
  - Allowed values: `FREETEXT`, `PARAGRAPH`, `SINGLESELECTION`, `MULTISELECTION`, `DOCUMENTUPLOAD`, `PRESETDROPDOWN`, `CUSTOMDROPDOWN`, `NUMBER`, `DATEPICKER`, `ADDRESS`, `PHONENUMBER`, `EMAIL`
- `data_binding_id` (string, required) — Data binding identifier for the question

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataCandidateCandidateTagsItemsTag

Tag details

- `id` (string, required) — Unique identifier for the tag
- `label` (string, required) — Label of the tag

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataAllApplicationInterviewPlanStagesItemsOffersItemsEmail

Email message associated with the offer

- `id` (string, required) — Unique identifier for the email message
- `subject` (string, required) — Email subject line
- `body_html` (string, required) — HTML body of the email
- `from_string` (string, required) — Email sender address
- `recipients_cc` (list of string, required) — Array of CC recipient email addresses
- `recipients_to` (list of string, required) — Array of recipient email addresses
- `recipients_bcc` (list of string, required) — Array of BCC recipient email addresses

### AtsApplicationsApplicationIdGetResponsesContentApplicationJsonSchemaDataApplicationFormSubmissionAnswersItemsAnswer

The answer value

## Examples

**Response**

```json
{
  "data": {
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "job": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "title": "Senior Software Engineer"
    },
    "notes": [
      {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "created_at": "2024-11-01T10:30:00Z",
        "created_by": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "updated_at": "2024-11-15T14:45:00Z",
        "richtext_content": "<p>This candidate has excellent experience in backend development.</p>"
      }
    ],
    "hired_at": "2026-06-01T09:00:00Z",
    "candidate": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "email": "john.doe@example.com",
      "last_name": "Doe",
      "first_name": "John",
      "attachments": [
        {
          "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "ai_summary": "Resume shows 7 years of software engineering experience with expertise in full-stack development. Strong background in React, Node.js, and cloud technologies."
        }
      ],
      "phone_number": "+1234567890",
      "candidate_tags": [
        {
          "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "tag": {
            "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "label": "Experienced"
          }
        }
      ],
      "import_session_id": "import_session_12345",
      "profile_picture_url": "https://example.com/picture.jpg",
      "city": "San Francisco",
      "country_code": "US"
    },
    "job_board": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "type": "INTERNAL_CAREER_PAGE"
    },
    "created_at": "2024-10-15T09:12:00Z",
    "created_by": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "numeric_id": 2561,
    "updated_at": "2024-11-20T11:45:00Z",
    "job_posting": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "title": "Job posting"
    },
    "referred_by": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "source_slug": "INTERNAL_CAREER_PAGE",
    "archivation_reason": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "label": "Not a culture fit"
    },
    "job_employment_type": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "employment_type": {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "name": "Full-time"
      }
    },
    "archivation_reason_id": "9b2d1c1e-7f3a-4c58-9e2b-3f1a2b4c5d6e",
    "job_posting_publication": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    },
    "referral_form_submission": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "form_builder_stringified": "{\"question_1\": \"answer_1\", \"question_2\": \"answer_2\"}"
    },
    "moved_to_current_stage_at": "2024-11-18T12:30:00Z",
    "job_posting_publication_state": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "state_slug": "PUBLISHED_BASIC"
    },
    "application_job_criterias_matchings": [
      {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "is_matched": "MATCHED",
        "description": "The candidate has 5+ years of experience in React and TypeScript",
        "job_criteria": {
          "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "title": "Frontend Development Experience",
          "description": "5+ years of experience with React, TypeScript, and modern frontend frameworks"
        }
      }
    ],
    "all_application_interview_plan_stages": [
      {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "offers": [
          {
            "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "job_title": "Senior Software Engineer",
            "created_at": "2024-11-12T09:00:00Z",
            "start_date": "2025-01-15T00:00:00Z",
            "updated_at": "2024-11-14T11:30:00Z",
            "country_code": "US",
            "attachment_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "approval_rule_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "worker_type_enum": "DIRECT_EMPLOYEE",
            "offer_status_enum": "SENT",
            "approval_request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "compensation_amount": 120000,
            "rejection_reason_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "compensation_currency": "USD",
            "compensation_period_slug": "ANNUALLY",
            "application_interview_plan_stage_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "email": {
              "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
              "subject": "Job Offer - Senior Software Engineer",
              "body_html": "<html><body><p>Dear Candidate,</p><p>We are pleased to offer you the position...</p></body></html>",
              "from_string": "recruiter@company.com",
              "recipients_cc": [
                "hiring-manager@company.com"
              ],
              "recipients_to": [
                "candidate@email.com"
              ],
              "recipients_bcc": []
            }
          }
        ],
        "exited_at": "2024-11-18T12:30:00Z",
        "entered_at": "2024-11-10T16:20:00Z",
        "is_current": false,
        "updated_at": "2024-11-10T16:20:00Z",
        "interview_plan_stage": {
          "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
          "name": "Phone Screen",
          "position_number": 2100,
          "default_type_slug": "phone_screen",
          "category_type_slug": "ACTIVE"
        },
        "moved_by_hris_organization_user_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
      }
    ],
    "application_automation_rule_executions": [
      {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "action_type_enum": "ADD_CANDIDATE_TAG",
        "evaluation_result": [
          {
            "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
            "group_id": 0,
            "operator_enum": "EQUALS",
            "comparison_value": "value",
            "is_condition_met": true,
            "form_builder_question_data_binding_id": "83a642fd-de0a-45f6-8fe0-b9188ed72990"
          }
        ],
        "application_automation_rule_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
      }
    ],
    "current_application_interview_plan_stage": {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "interview_plan_stage": {
        "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "name": "Phone Screen",
        "position_number": 2100,
        "default_type_slug": "phone_screen",
        "category_type_slug": "ACTIVE"
      }
    },
    "submitter_ip_address": "203.0.113.42",
    "submitter_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
    "application_form_submission": {
      "id": "509d5153-5b10-4718-b16f-417e726d39f1",
      "answers": [
        {
          "answer": "John Doe",
          "question_text": "Full Name",
          "question_type": "FREETEXT",
          "data_binding_id": "83a642fd-de0a-45f6-8fe0-b9188ed72990"
        }
      ]
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/ats/applications/1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```