Deel subpackage_immigration API

The subpackage_immigration API from Deel — 10 operation(s) for subpackage_immigration.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/deel-subpackage-immigration-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deel-subpackage-immigration-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Endpoints subpackage_immigration API
  version: 1.0.0
servers:
- url: https://api.letsdeel.com/rest/v2
- url: https://api-staging.letsdeel.com/rest/v2
tags:
- name: subpackage_immigration
paths:
  /immigration/visa-requirement/business:
    get:
      operationId: get-business-visa-requirement
      summary: Get business visa eligibility and requirements
      description: "This endpoint receives personal information and desired travel information, analyzes and returns the possible business visa options for the given data.\n **Token scopes**: `immigration:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: destination_country
        in: query
        description: The destination country code of the trip in ISO 3166-1 alpha-2 format
        required: true
        schema:
          type: string
      - name: nationality
        in: query
        description: The nationality country code of the person in ISO 3166-1 alpha-2 format
        required: true
        schema:
          type: string
      - name: residence_country
        in: query
        description: The residence country code of the person in ISO 3166-1 alpha-2 format
        required: true
        schema:
          type: string
      - name: trip_start_date
        in: query
        description: The trip start date in ISO 8601 format (YYYY-MM-DD)
        required: true
        schema:
          type: string
          format: date
      - name: trip_end_date
        in: query
        description: The trip end date in ISO 8601 format (YYYY-MM-DD)
        required: true
        schema:
          type: string
          format: date
      - name: trip_reason
        in: query
        description: The reason for the trip
        required: true
        schema:
          $ref: '#/components/schemas/ImmigrationVisaRequirementBusinessGetParametersTripReason'
      - name: second_nationality
        in: query
        description: The second nationality country code of the person in ISO 3166-1 alpha-2 format (optional)
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getBusinessVisaRequirement_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBusinessVisaEligibilityAndRequirementsRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBusinessVisaEligibilityAndRequirementsRequestInternalServerError'
  /immigration/client/cases/{id}:
    get:
      operationId: get-client-case
      summary: Get immigration case details
      description: "Get detailed information for a specific immigration case. Use this to check case status and track process progress. The id path parameter is the case UUID returned from the 'Create Client Case' endpoint. Response is enriched with applicant profile, visa type, case status, estimated completion date, process details, and compliance document details.\n **Token scopes**: `immigration:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: id
        in: path
        description: Immigration case id
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getClientCase_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImmigrationCaseDetails-v2026-01-01RequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImmigrationCaseDetails-v2026-01-01RequestInternalServerError'
  /immigration/workers/cases/{case_id}:
    get:
      operationId: get-worker-case
      summary: 'Get specific immigration case details '
      description: "Get detailed information for a specific immigration case. Use this to check case status and track process progress. The id path parameter is the case UUID returned from the 'Create Client Case' endpoint. Response is enriched with applicant profile, visa type, case status, estimated completion date, process details, and compliance document details.\n **Token scopes**: `worker:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: case_id
        in: path
        description: Filter by case ID
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getWorkerCase_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSpecificImmigrationCaseDetails-v2026-04-02RequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSpecificImmigrationCaseDetails-v2026-04-02RequestInternalServerError'
  /immigration/documents/{id}:
    get:
      operationId: get-document
      summary: Immigration document
      description: "Fetch immigration document details by document id\n **Token scopes**: `immigration:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: id
        in: path
        description: 'Immigration case document id '
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getDocument_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /immigration/visa-types/{country_code}:
    get:
      operationId: get-visa-types
      summary: Immigration visa types
      description: "Fetch immigration supported visa types by country\n **Token scopes**: `immigration:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: country_code
        in: path
        description: Alpha 2 country code
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getVisaTypes_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /immigration/client/cases:
    get:
      operationId: get-client-cases
      summary: List of immigration cases
      description: "Retrieves a paginated list of immigration cases with filters for applicant name, case type, status, and country. Returns case details including type, status, process, timestamps, and optional closure information.\n **Token scopes**: `immigration:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: search
        in: query
        description: Search by applicant name or code
        required: false
        schema:
          type: string
      - name: case_type_ids
        in: query
        description: Filter by case type IDs
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: statuses
        in: query
        description: Filter by case status
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ImmigrationClientCasesGetParametersStatusesSchemaItems'
      - name: countries
        in: query
        description: Filter by country. Uses ISO 3166-1 alpha-2 codes (https://www.iban.com/country-codes).
        required: false
        schema:
          type: array
          items:
            type: string
      - name: cursor
        in: query
        description: Pagination cursor for fetching next set of results
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Max number of results to return
        required: false
        schema:
          type: integer
          default: 20
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getClientCases_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfImmigrationCases-v2026-01-01RequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfImmigrationCases-v2026-01-01RequestInternalServerError'
    post:
      operationId: create-an-immigration-case
      summary: Create an immigration case
      description: "Create an immigration case.\n **Token scopes**: `immigration:write`"
      tags:
      - subpackage_immigration
      parameters:
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Immigration_createAnImmigrationCase_Response_201'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAnImmigrationCaseRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAnImmigrationCaseRequestInternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ImmigrationClientCasesPostRequestBodyContentApplicationJsonSchemaData'
  /immigration/workers/cases:
    get:
      operationId: get-worker-cases
      summary: List of immigration cases for workers
      description: "Retrieves a paginated list of immigration cases with filters for applicant name, case type, status, and country. Returns case details including type, status, process, timestamps, and optional closure information.\n **Token scopes**: `worker:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: search
        in: query
        description: Search by applicant name or code
        required: false
        schema:
          type: string
      - name: case_type_ids
        in: query
        description: Filter by case type IDs
        required: false
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: statuses
        in: query
        description: Filter by case status
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ImmigrationWorkersCasesGetParametersStatusesSchemaItems'
      - name: countries
        in: query
        description: Filter by country. Uses ISO 3166-1 alpha-2 codes (https://www.iban.com/country-codes).
        required: false
        schema:
          type: array
          items:
            type: string
      - name: cursor
        in: query
        description: Pagination cursor for fetching next set of results
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Max number of results to return
        required: false
        schema:
          type: integer
          default: 20
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getWorkerCases_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfImmigrationCasesForWorkers-v2026-04-02RequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfImmigrationCasesForWorkers-v2026-04-02RequestInternalServerError'
  /immigration/workers/{worker_id}/cases/{case_id}/required-document:
    get:
      operationId: get-worker-case-required-document
      summary: Retrieve a required document for a case
      description: "Use this endpoint to retrieve the details of a specific document requirement for a worker's case. This includes the requirement's status and information about any previously rejected documents\n **Token scopes**: `worker:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: worker_id
        in: path
        description: The hris profile oid (public id) of the worker.
        required: true
        schema:
          type: string
      - name: case_id
        in: path
        description: The unique identifier of the case for which the required document is being requested.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getWorkerCaseRequiredDocument_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /immigration/workers/{worker_id}/onboarding-case:
    get:
      operationId: get-worker-onboarding-case
      summary: Retrieve onboarding right-to-work case for a worker
      description: "Returns the right to work case for employee onboarding including the documents if any. In case no right to work case is open, the response will be empty.\n **Token scopes**: `worker:read`"
      tags:
      - subpackage_immigration
      parameters:
      - name: worker_id
        in: path
        description: The hris profile oid (public id) of the worker.
        required: true
        schema:
          type: string
      - name: contract_id
        in: query
        description: Filters the worker's onboarding case to a specific contract. If the worker has multiple contracts and this parameter is omitted, the response may return a case from any associated contract; the response includes contract.id to indicate which contract was used. Provide this parameter for deterministic results.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_getWorkerOnboardingCase_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveOnboardingRightToWorkCaseForAWorkerRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Case not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveOnboardingRightToWorkCaseForAWorkerRequestNotFoundError'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveOnboardingRightToWorkCaseForAWorkerRequestInternalServerError'
  /immigration/workers/{worker_id}/cases/{case_id}/required-document/{document_request_id}:
    post:
      operationId: create-worker-case-required-document
      summary: Upload a required immigration document
      description: "Upload a required immigration document for a specific case. The document will be submitted for review.\n **Token scopes**: `worker:write`"
      tags:
      - subpackage_immigration
      parameters:
      - name: worker_id
        in: path
        description: The hris profile oid (public id) of the worker.
        required: true
        schema:
          type: string
      - name: case_id
        in: path
        description: The unique identifier of the case for which the required document is being requested.
        required: true
        schema:
          type: string
      - name: document_request_id
        in: path
        description: The unique identifier of the document request fo which this document is being uplodaded
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Document uploaded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/immigration_createWorkerCaseRequiredDocument_Response_201'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
      requestBody:
        description: Upload of immigration document
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ImmigrationWorkersWorkerIdCasesCaseIdRequiredDocumentDocumentRequestIdPostRequestBodyContentMultipartFormDataSchemaData'
                  description: Details of immigration document upload
              required:
              - data
components:
  schemas:
    ListOfImmigrationCases-v2026-01-01RequestInternalServerError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ImmigrationClientCasesGetResponsesContentApplicationJsonSchemaErrorsItems'
      title: ListOfImmigrationCases-v2026-01-01RequestInternalServerError
    ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of immigration case.
        status:
          $ref: '#/components/schemas/ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaDataStatus'
          description: Status of the immigration case.
        process:
          $ref: '#/components/schemas/ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaDataProcess'
          description: The current active process
        contract:
          $ref: '#/components/schemas/ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaDataContract'
          description: The contract associated with the returned immigration case
        applicant:
          oneOf:
          - $ref: '#/components/schemas/ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaDataApplicant'
          - type: 'null'
          description: The employee for which this Right to Work case has been created for
        case_type:
          $ref: '#/components/schemas/ImmigrationWorkersCasesCaseIdGetResponsesContentApplicationJsonSchemaDataCaseType'
          description: ' Type of the case. It will always be IMMIGRATION_DOCUMENT_REVIEW for this endpoint.'
        documents:
          ty

# --- truncated at 32 KB (100 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deel/refs/heads/main/openapi/deel-subpackage-immigration-api-openapi.yml