@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api ATS API
@base https://unify.apideck.com
@version 10.24.12
@auth ApiKey Authorization in header
@common_fields {x-apideck-consumer-id: str, x-apideck-app-id: str, raw: bool=false, x-apideck-service-id: str}
@endpoints 15
@toc ats(15)

@endpoint GET /ats/jobs
@optional {cursor: str, limit: int=20, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /ats/jobs
@optional {id: str, slug: str, title: str, sequence: int, visibility: str(draft/public/internal), status: str(draft/internal/published/completed/placed/on-hold/private/accepting_candidates/open/closed/archived), code: str, language: str, employment_terms: str(full-time/part-time/internship/contractor/employee/freelance/temp/seasonal/volunteer/other), experience: str, location: str, remote: bool, requisition_id: str, department: map{id: str, parent_id: str, name: str, code: str, description: str, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map]}, branch: map{id: str, name: str}, recruiters: [str], hiring_managers: [str], followers: [str], description: str, description_html: str, blocks: [any], closing: str, closing_html: str, closing_date: str(date), salary: map{min: int, max: int, currency: str, interval: str}, url: str, job_portal_url: str, record_url: str, links: [map{type: str, url: str}], confidential: bool, available_to_employees: bool, tags: [str], addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], deleted: bool, owner_id: str, published_at: str(date-time), custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time)}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /ats/jobs/{id}
@required {id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, slug: str?, title: str?, sequence: int, visibility: str, status: str, code: str, language: str?, employment_terms: str?, experience: str, location: str?, remote: bool?, requisition_id: str, department: map{id: str, parent_id: str?, name: str?, code: str?, description: str?, custom_mappings: map?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, branch: map{id: str, name: str}, recruiters: [str]?, hiring_managers: [str], followers: [str]?, description: str?, description_html: str?, blocks: [any], closing: str?, closing_html: str?, closing_date: str(date)?, salary: map{min: int, max: int, currency: str?, interval: str?}, url: str?, job_portal_url: str?, record_url: str?, links: [map], confidential: bool, available_to_employees: bool, tags: [str]?, addresses: [map], custom_fields: [map], deleted: bool?, owner_id: str?, published_at: str(date-time)?, custom_mappings: map?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /ats/jobs/{id}
@required {id: str}
@optional {id: str, slug: str, title: str, sequence: int, visibility: str(draft/public/internal), status: str(draft/internal/published/completed/placed/on-hold/private/accepting_candidates/open/closed/archived), code: str, language: str, employment_terms: str(full-time/part-time/internship/contractor/employee/freelance/temp/seasonal/volunteer/other), experience: str, location: str, remote: bool, requisition_id: str, department: map{id: str, parent_id: str, name: str, code: str, description: str, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map]}, branch: map{id: str, name: str}, recruiters: [str], hiring_managers: [str], followers: [str], description: str, description_html: str, blocks: [any], closing: str, closing_html: str, closing_date: str(date), salary: map{min: int, max: int, currency: str, interval: str}, url: str, job_portal_url: str, record_url: str, links: [map{type: str, url: str}], confidential: bool, available_to_employees: bool, tags: [str], addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], deleted: bool, owner_id: str, published_at: str(date-time), custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time)}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /ats/jobs/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /ats/applicants
@optional {cursor: str, limit: int=20, filter: map, pass_through: map, fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /ats/applicants
@optional {id: str, name: str, salutation: str, first_name: str, last_name: str, middle_name: str, initials: str, birthday: str(date), gender: str(male/female/unisex/other/not_specified), social_security_number: str, type: str, cover_letter: str, job_url: str, photo_url: str, headline: str, title: str, emails: [map{id: str, email!: str(email), type: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], websites: [map{id: str, url!: str, type: str}], social_links: [map{id: str, url!: str, type: str}], stage_id: str, recruiter_id: str, coordinator_id: str, application_ids: [str], applications: [str], followers: [str], sources: [str], source_id: str, confidential: bool, anonymized: bool, tags: [str], archived: bool, last_interaction_at: str(date-time), owner_id: str, sourced_by: str, cv_url: str, record_url: str, rejected_at: str(date-time), custom_mappings: map, deleted: bool, deleted_by: str, deleted_at: str(date-time), updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /ats/applicants/{id}
@required {id: str}
@optional {fields: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, name: str, salutation: str?, first_name: str?, last_name: str?, middle_name: str?, initials: str?, birthday: str(date)?, gender: str?, social_security_number: str?, type: str, cover_letter: str, job_url: str?, photo_url: str?, headline: str, title: str?, emails: [map], custom_fields: [map], phone_numbers: [map], addresses: [map], websites: [map], social_links: [map], stage_id: str, recruiter_id: str, coordinator_id: str, application_ids: [str]?, applications: [str]?, followers: [str]?, sources: [str]?, source_id: str, confidential: bool, anonymized: bool, tags: [str]?, archived: bool?, last_interaction_at: str(date-time)?, owner_id: str?, sourced_by: str?, cv_url: str, record_url: str?, rejected_at: str(date-time)?, custom_mappings: map?, deleted: bool?, deleted_by: str?, deleted_at: str(date-time)?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /ats/applicants/{id}
@required {id: str}
@optional {id: str, name: str, salutation: str, first_name: str, last_name: str, middle_name: str, initials: str, birthday: str(date), gender: str(male/female/unisex/other/not_specified), social_security_number: str, type: str, cover_letter: str, job_url: str, photo_url: str, headline: str, title: str, emails: [map{id: str, email!: str(email), type: str}], custom_fields: [map{id: str, name: str, description: str, value: any}], phone_numbers: [map{id: str, country_code: str, area_code: str, number!: str, extension: str, type: str}], addresses: [map{id: str, type: str, string: str, name: str, line1: str, line2: str, line3: str, line4: str, line5: str, street_number: str, city: str, state: str, postal_code: str, country: str, latitude: str, longitude: str, county: str, contact_name: str, salutation: str, phone_number: str, fax: str, email: str, website: str, notes: str, row_version: str}], websites: [map{id: str, url!: str, type: str}], social_links: [map{id: str, url!: str, type: str}], stage_id: str, recruiter_id: str, coordinator_id: str, application_ids: [str], applications: [str], followers: [str], sources: [str], source_id: str, confidential: bool, anonymized: bool, tags: [str], archived: bool, last_interaction_at: str(date-time), owner_id: str, sourced_by: str, cv_url: str, record_url: str, rejected_at: str(date-time), custom_mappings: map, deleted: bool, deleted_by: str, deleted_at: str(date-time), updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /ats/applicants/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /ats/applications
@optional {cursor: str, pass_through: map, limit: int=20}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: [map], _raw: map?, meta: map{items_on_page: int, cursors: map{previous: str?, current: str?, next: str?}}, links: map{previous: str?, current: str, next: str?}}
@errors {400, 401, 402, 404, 422}

@endpoint POST /ats/applications
@required {applicant_id: str, job_id: str}
@optional {id: str, status: str(open/rejected/hired/converted/other), stage: map{id: str, name: str}, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(201) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint GET /ats/applications/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str, applicant_id: str?, job_id: str?, status: str?, stage: map{id: str?, name: str?}, custom_mappings: map?, updated_by: str?, created_by: str?, updated_at: str(date-time)?, created_at: str(date-time)?, pass_through: [map]}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint PATCH /ats/applications/{id}
@required {id: str, applicant_id: str, job_id: str}
@optional {id: str, status: str(open/rejected/hired/converted/other), stage: map{id: str, name: str}, custom_mappings: map, updated_by: str, created_by: str, updated_at: str(date-time), created_at: str(date-time), pass_through: [map{service_id!: str, operation_id: str, extend_object: map, extend_paths: [map]}]}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@endpoint DELETE /ats/applications/{id}
@required {id: str}
@returns(200) {status_code: int, status: str, service: str, resource: str, operation: str, data: map{id: str}, _raw: map?}
@errors {400, 401, 402, 404, 422}

@end
