openapi: 3.1.0 info: title: Workday Recruiting API description: >- Recruiting API for managing job postings, candidates, applications, and hiring workflows. Supports interview feedback and prospect management. version: v1 contact: name: Workday Support email: support@workday.com url: https://www.workday.com/en-us/customer-service/support.html license: name: Proprietary url: https://www.workday.com/en-us/legal.html servers: - url: https://wd2-impl-services1.workday.com/ccx/api/recruiting/v1/{tenant} description: Workday REST API Server variables: tenant: default: tenant_name description: The Workday tenant identifier security: - OAuth2: - r_recruiting - w_recruiting paths: /jobRequisitions: get: operationId: getJobRequisitions summary: Get Job Requisitions description: Returns a collection of job requisitions. tags: - Job Requisitions parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/search' responses: '200': description: Successful response containing job requisitions. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/JobRequisition' total: type: integer examples: Getjobrequisitions200Example: summary: Default getJobRequisitions 200 response x-microcks-default: true value: data: - id: abc123 descriptor: example_value requisitionNumber: example_value jobTitle: example_value status: example_value numberOfOpenings: 10 createdOn: '2026-01-15T10:30:00Z' targetHireDate: '2026-01-15' total: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobRequisitions/{ID}: get: operationId: getJobRequisitionById summary: Get Job Requisition by Id description: Returns details for a specific job requisition. tags: - Job Requisitions parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response containing job requisition details. content: application/json: schema: $ref: '#/components/schemas/JobRequisition' examples: Getjobrequisitionbyid200Example: summary: Default getJobRequisitionById 200 response x-microcks-default: true value: id: abc123 descriptor: example_value requisitionNumber: example_value jobTitle: example_value jobProfile: id: abc123 descriptor: example_value href: https://www.example.com supervisoryOrganization: id: abc123 descriptor: example_value href: https://www.example.com hiringManager: id: abc123 descriptor: example_value href: https://www.example.com recruiter: id: abc123 descriptor: example_value href: https://www.example.com status: example_value numberOfOpenings: 10 createdOn: '2026-01-15T10:30:00Z' targetHireDate: '2026-01-15' location: id: abc123 descriptor: example_value href: https://www.example.com '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobPostings: get: operationId: getJobPostings summary: Get Job Postings description: Returns a collection of job postings. tags: - Job Postings parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/search' responses: '200': description: Successful response containing job postings. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/JobPosting' total: type: integer examples: Getjobpostings200Example: summary: Default getJobPostings 200 response x-microcks-default: true value: data: - id: abc123 descriptor: example_value title: Example Title startDate: '2026-01-15' endDate: '2026-01-15' jobDescription: example_value isInternal: true isExternal: true postedOn: '2026-01-15T10:30:00Z' total: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobPostings/{ID}: get: operationId: getJobPostingById summary: Get Job Posting by Id description: Returns details for a specific job posting. tags: - Job Postings parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response containing job posting details. content: application/json: schema: $ref: '#/components/schemas/JobPosting' examples: Getjobpostingbyid200Example: summary: Default getJobPostingById 200 response x-microcks-default: true value: id: abc123 descriptor: example_value title: Example Title jobRequisition: id: abc123 descriptor: example_value href: https://www.example.com startDate: '2026-01-15' endDate: '2026-01-15' jobDescription: example_value location: id: abc123 descriptor: example_value href: https://www.example.com isInternal: true isExternal: true postedOn: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /candidates: get: operationId: getCandidates summary: Get Candidates description: Returns a collection of candidates. tags: - Candidates parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/search' responses: '200': description: Successful response containing candidates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Candidate' total: type: integer examples: Getcandidates200Example: summary: Default getCandidates 200 response x-microcks-default: true value: data: - id: abc123 descriptor: example_value name: Example Title email: user@example.com phone: example_value attachments: - {} total: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /candidates/{ID}: get: operationId: getCandidateById summary: Get Candidate by Id description: Returns details for a specific candidate. tags: - Candidates parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response containing candidate details. content: application/json: schema: $ref: '#/components/schemas/Candidate' examples: Getcandidatebyid200Example: summary: Default getCandidateById 200 response x-microcks-default: true value: id: abc123 descriptor: example_value name: Example Title email: user@example.com phone: example_value source: id: abc123 descriptor: example_value href: https://www.example.com referredBy: id: abc123 descriptor: example_value href: https://www.example.com attachments: - id: abc123 descriptor: example_value href: https://www.example.com '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobApplications: get: operationId: getJobApplications summary: Get Job Applications description: Returns a collection of job applications. tags: - Job Applications parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Successful response containing job applications. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/JobApplication' total: type: integer examples: Getjobapplications200Example: summary: Default getJobApplications 200 response x-microcks-default: true value: data: - id: abc123 descriptor: example_value status: example_value appliedOn: '2026-01-15T10:30:00Z' hiredOn: '2026-01-15T10:30:00Z' total: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /jobApplications/{ID}: get: operationId: getJobApplicationById summary: Get Job Application by Id description: Returns details for a specific job application. tags: - Job Applications parameters: - $ref: '#/components/parameters/ID' responses: '200': description: Successful response containing job application details. content: application/json: schema: $ref: '#/components/schemas/JobApplication' examples: Getjobapplicationbyid200Example: summary: Default getJobApplicationById 200 response x-microcks-default: true value: id: abc123 descriptor: example_value candidate: id: abc123 descriptor: example_value href: https://www.example.com jobRequisition: id: abc123 descriptor: example_value href: https://www.example.com status: example_value stage: id: abc123 descriptor: example_value href: https://www.example.com appliedOn: '2026-01-15T10:30:00Z' hiredOn: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /prospects: get: operationId: getProspects summary: Get Prospects description: Returns a collection of recruiting prospects. tags: - Prospects parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/search' responses: '200': description: Successful response containing prospects. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Prospect' total: type: integer examples: Getprospects200Example: summary: Default getProspects 200 response x-microcks-default: true value: data: - id: abc123 descriptor: example_value name: Example Title email: user@example.com phone: example_value total: 10 '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://wd2-impl-services1.workday.com/ccx/oauth2/{tenant}/authorize tokenUrl: https://wd2-impl-services1.workday.com/ccx/oauth2/{tenant}/token scopes: r_recruiting: Read recruiting data w_recruiting: Write recruiting data parameters: ID: name: ID in: path required: true description: The Workday ID of the resource. schema: type: string limit: name: limit in: query required: false description: The maximum number of objects in a single response. schema: type: integer default: 20 maximum: 100 offset: name: offset in: query required: false description: The zero-based index of the first object in a response collection. schema: type: integer default: 0 search: name: search in: query required: false description: Searches resources by name. The search is case-insensitive. schema: type: string schemas: JobRequisition: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value requisitionNumber: type: string example: example_value jobTitle: type: string example: example_value jobProfile: $ref: '#/components/schemas/ResourceReference' supervisoryOrganization: $ref: '#/components/schemas/ResourceReference' hiringManager: $ref: '#/components/schemas/ResourceReference' recruiter: $ref: '#/components/schemas/ResourceReference' status: type: string description: The status of the requisition (e.g., Open, Filled, Closed). example: example_value numberOfOpenings: type: integer example: 10 createdOn: type: string format: date-time example: '2026-01-15T10:30:00Z' targetHireDate: type: string format: date example: '2026-01-15' location: $ref: '#/components/schemas/ResourceReference' JobPosting: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value title: type: string description: The title of the job posting. example: Example Title jobRequisition: $ref: '#/components/schemas/ResourceReference' startDate: type: string format: date example: '2026-01-15' endDate: type: string format: date example: '2026-01-15' jobDescription: type: string example: example_value location: $ref: '#/components/schemas/ResourceReference' isInternal: type: boolean example: true isExternal: type: boolean example: true postedOn: type: string format: date-time example: '2026-01-15T10:30:00Z' Candidate: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value name: type: string description: The full name of the candidate. example: Example Title email: type: string format: email example: user@example.com phone: type: string example: example_value source: $ref: '#/components/schemas/ResourceReference' referredBy: $ref: '#/components/schemas/ResourceReference' attachments: type: array items: $ref: '#/components/schemas/ResourceReference' example: [] JobApplication: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value candidate: $ref: '#/components/schemas/ResourceReference' jobRequisition: $ref: '#/components/schemas/ResourceReference' status: type: string description: The application status (e.g., In Progress, Offer, Hired, Rejected). example: example_value stage: $ref: '#/components/schemas/ResourceReference' appliedOn: type: string format: date-time example: '2026-01-15T10:30:00Z' hiredOn: type: string format: date-time example: '2026-01-15T10:30:00Z' Prospect: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value name: type: string example: Example Title email: type: string format: email example: user@example.com phone: type: string example: example_value talentPool: $ref: '#/components/schemas/ResourceReference' source: $ref: '#/components/schemas/ResourceReference' ResourceReference: type: object properties: id: type: string example: abc123 descriptor: type: string example: example_value href: type: string format: uri example: https://www.example.com ErrorResponse: type: object properties: error: type: string example: example_value errors: type: array items: type: object properties: error: type: string field: type: string example: [] responses: Unauthorized: description: Authentication credentials were missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' tags: - name: Job Requisitions description: Endpoints for managing job requisitions. - name: Job Postings description: Endpoints for managing job postings. - name: Candidates description: Endpoints for managing candidates. - name: Job Applications description: Endpoints for managing job applications. - name: Prospects description: Endpoints for managing recruiting prospects.