openapi: 3.1.0 info: title: Deel ATS Adjustments Immigration API description: 'Applicant Tracking System API for managing the full recruiting pipeline — jobs and job postings, candidates, applications, attachments, offers, departments, locations, email templates, hiring members, employment types, application sources, tags, and reasons — with an end-to-end candidate-to-contract flow via Deel Hire. ' version: '2026-05-25' contact: name: Deel Developer Support url: https://developer.deel.com/api/ats-guides/introduction servers: - url: https://api.letsdeel.com/rest/v2 description: Production - url: https://api-sandbox.demo.deel.com/rest/v2 description: Sandbox security: - BearerAuth: [] tags: - name: Immigration description: Visas, work permits, immigration case management paths: /immigration/visa-types: get: operationId: getVisaTypes summary: Immigration Visa Types tags: - Immigration parameters: - name: country in: query schema: type: string responses: '200': description: Visa types content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/VisaType' /immigration/business-visa/requirements: get: operationId: getBusinessVisaRequirement summary: Get Business Visa Eligibility And Requirements tags: - Immigration parameters: - name: nationality in: query required: true schema: type: string - name: destination_country in: query required: true schema: type: string - name: purpose in: query schema: type: string responses: '200': description: Requirements content: application/json: schema: type: object properties: data: type: object properties: visa_required: type: boolean visa_types: type: array items: type: string max_stay_days: type: integer requirements: type: array items: type: string /immigration/cases: get: operationId: getImmigrationCases summary: List Of Immigration Cases tags: - Immigration responses: '200': description: Cases content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ImmigrationCase' /immigration/cases/{case_id}: get: operationId: getImmigrationCase summary: Get Immigration Case Details tags: - Immigration parameters: - name: case_id in: path required: true schema: type: string responses: '200': description: Case detail content: application/json: schema: $ref: '#/components/schemas/ImmigrationCase' /immigration/cases/{case_id}/required-documents/{document_id}: post: operationId: uploadRequiredDocument summary: Upload A Required Immigration Document tags: - Immigration parameters: - name: case_id in: path required: true schema: type: string - name: document_id in: path required: true schema: type: string requestBody: required: true content: multipart/form-data: schema: type: object required: - file properties: file: type: string format: binary notes: type: string responses: '201': description: Document uploaded components: schemas: VisaType: type: object properties: id: type: string country: type: string name: type: string category: type: string enum: - work - business - student - dependent - permanent - other duration_days: type: integer renewable: type: boolean ImmigrationCase: type: object properties: id: type: string person_id: type: string country: type: string visa_type: type: string status: type: string enum: - draft - document_collection - in_review - submitted - approved - rejected - completed created_at: type: string format: date-time target_start_date: type: string format: date required_documents: type: array items: type: object properties: id: type: string name: type: string status: type: string enum: - missing - uploaded - approved - rejected securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: opaque