Workable website screenshot

Workable

Workable is an end-to-end hiring platform with ATS, AI sourcing, employer branding, video interviewing, assessments, and HR. The Workable REST API (v3) exposes jobs, candidates, stages, members, departments, custom attributes, offers, assessments, and webhooks.

17 APIs 8 Features
HRATSRecruitingSourcingVideo InterviewsAssessmentsSaaS

APIs

Workable Jobs API

Create, read, update, and publish job postings. Jobs are the core organizing entity in Workable; pipelines, candidates, members, and activities are scoped to a job shortcode.

Workable Candidates API

Create candidates from external sources, retrieve candidate profiles, and update profile data, resumes, cover letters, and source attribution.

Workable Stages API

Read pipeline stages configured for a job and move candidates between stages (sourced, applied, phone screen, interview, offer, hired).

Workable Members API

Manage Workable team members, recruiter accounts, and the per-job collaborators (hiring managers, interviewers, reviewers).

Workable Recruiters API

Manage external agency recruiters who can submit candidates against Workable jobs.

Workable Departments API

Read the company's department list used to scope job postings and reporting.

Workable Custom Attributes API

Define and read custom attributes attached to candidates, jobs, and requisitions for tenant-specific reporting and automation.

Workable Activities API

Read activity-log entries for candidates and jobs (stage moves, comments, evaluations) for audit and integration use cases.

Workable Comments API

Add and read free-form comments and @-mentions on candidate profiles for collaboration with hiring teams.

Workable Evaluations API

Submit and read interviewer evaluations and scorecards aligned to the job's interview kit.

Workable Offers API

Generate and track offers including templates, compensation breakdowns, and offer letter PDFs.

Workable Assessments API

Trigger and read candidate assessments delivered through Workable's assessment platform (Assessments+).

Workable Disqualification Reasons API

List configured disqualification reasons used when rejecting a candidate (not a fit, withdrew, declined offer, hired elsewhere).

Workable Questions API

Manage application form questions per job, including knockout questions and EEO surveys.

Workable Events API

Read and create scheduled events (phone screens, interviews) for a candidate, integrated with Workable's calendar sync.

Workable Webhooks API

Subscribe to Workable events (candidate.created, candidate.moved, candidate.hired, candidate.disqualified, member.created) for downstream automation.

Workable Public Jobs API

Read-only public endpoint that exposes published jobs for embedding job listings on external careers pages without authentication.

Collections

Pricing Plans

Workable Plans Pricing

7 plans

PLANS

Rate Limits

Workable Rate Limits

3 limits

RATE LIMITS

FinOps

Features

REST API v3 with bearer-token authentication
Workable subdomain-scoped base URL (https://{subdomain}.workable.com/spi/v3/)
Standard plan from $299/month, Premier $599/month, Enterprise $719/month
20% annual discount on all paid plans
Texting+, Video Interviews+, Assessments+ available as Standard add-ons
Webhooks for candidate, member, and stage events
AI sourcing and employer-branding integrated alongside ATS
Public jobs feed for embedding on external careers pages

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
APIReference
APIReference
💰
Pricing
Pricing
🔗
Login
Login
🟢
StatusPage
StatusPage
📰
Blog
Blog
💬
Support
Support
👥
GitHubOrganization
GitHubOrganization
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Workable API
  version: 3.21.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Accounts
    type: folder
  items:
  - info:
      name: List accounts
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/accounts
    docs: List accounts
  - info:
      name: Get account by subdomain
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/accounts/:subdomain
      params:
      - name: subdomain
        value: ''
        type: path
    docs: Get account by subdomain
  - info:
      name: List collaboration permissions
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/collaboration_permissions
    docs: List collaboration permissions
  - info:
      name: List legal entities
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/legal_entities
    docs: List legal entities
  - info:
      name: List permission sets
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/permission_sets
    docs: List permission sets
  - info:
      name: List work schedules
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/work_schedules
    docs: List work schedules
- info:
    name: Departments
    type: folder
  items:
  - info:
      name: List departments
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/departments
    docs: List departments
  - info:
      name: Create department
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/departments
    docs: Create department
  - info:
      name: Update department
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/departments
    docs: Update department
  - info:
      name: Delete department
      type: http
    http:
      method: DELETE
      url: https://{subdomain}.workable.com/spi/v3/departments/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Delete department
  - info:
      name: Merge departments
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/departments/:id/merge
      params:
      - name: id
        value: ''
        type: path
    docs: Merge departments
- info:
    name: Members
    type: folder
  items:
  - info:
      name: List members
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/members
    docs: List members
  - info:
      name: Update members
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/members
    docs: Update members
  - info:
      name: Invite member
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/members/invite
    docs: Invite member
  - info:
      name: Delete member
      type: http
    http:
      method: DELETE
      url: https://{subdomain}.workable.com/spi/v3/members/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Delete member
  - info:
      name: Enable member
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/members/:id/enable
      params:
      - name: id
        value: ''
        type: path
    docs: Enable member
- info:
    name: Recruiters
    type: folder
  items:
  - info:
      name: List recruiters
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/recruiters
    docs: List recruiters
- info:
    name: Jobs
    type: folder
  items:
  - info:
      name: List jobs
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs
    docs: List jobs
  - info:
      name: Get job by shortcode
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job by shortcode
  - info:
      name: Get job application form
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/application_form
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job application form
  - info:
      name: Get job questions
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/questions
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job questions
  - info:
      name: Get job custom attributes
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/custom_attributes
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job custom attributes
  - info:
      name: Get job members
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/members
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job members
  - info:
      name: Get job stages
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/stages
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job stages
  - info:
      name: Get job recruiters
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/recruiters
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job recruiters
  - info:
      name: Get job activities
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/activities
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Get job activities
- info:
    name: Candidates
    type: folder
  items:
  - info:
      name: Create candidate on job
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/jobs/:shortcode/candidates
      params:
      - name: shortcode
        value: ''
        type: path
    docs: Create candidate on job
  - info:
      name: List candidates
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/candidates
    docs: List candidates
  - info:
      name: Get candidate
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Get candidate
  - info:
      name: Update candidate
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Update candidate
  - info:
      name: Add candidate comment
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/comments
      params:
      - name: id
        value: ''
        type: path
    docs: Add candidate comment
  - info:
      name: Copy candidate
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/copy
      params:
      - name: id
        value: ''
        type: path
    docs: Copy candidate
  - info:
      name: Disqualify candidate
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/disqualify
      params:
      - name: id
        value: ''
        type: path
    docs: Disqualify candidate
  - info:
      name: Revert candidate disqualification
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/revert
      params:
      - name: id
        value: ''
        type: path
    docs: Revert candidate disqualification
  - info:
      name: Move candidate
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/move
      params:
      - name: id
        value: ''
        type: path
    docs: Move candidate
  - info:
      name: Relocate candidate
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/relocate
      params:
      - name: id
        value: ''
        type: path
    docs: Relocate candidate
  - info:
      name: Add candidate rating
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/ratings
      params:
      - name: id
        value: ''
        type: path
    docs: Add candidate rating
  - info:
      name: Update candidate rating
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/ratings
      params:
      - name: id
        value: ''
        type: path
    docs: Update candidate rating
  - info:
      name: Add candidate tags
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/tags
      params:
      - name: id
        value: ''
        type: path
    docs: Add candidate tags
  - info:
      name: Get candidate activities
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/activities
      params:
      - name: id
        value: ''
        type: path
    docs: Get candidate activities
  - info:
      name: Get candidate files
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/files
      params:
      - name: id
        value: ''
        type: path
    docs: Get candidate files
  - info:
      name: Get candidate offer
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/offer
      params:
      - name: id
        value: ''
        type: path
    docs: Get candidate offer
  - info:
      name: Update candidate custom attribute value
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/candidates/:id/update_custom_attribute_value
      params:
      - name: id
        value: ''
        type: path
    docs: Update candidate custom attribute value
  - info:
      name: Add to talent pool
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/talent_pool/candidates
    docs: Add to talent pool
- info:
    name: Stages
    type: folder
  items:
  - info:
      name: List stages
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/stages
    docs: List stages
- info:
    name: Events
    type: folder
  items:
  - info:
      name: List events
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/events
    docs: List events
  - info:
      name: Get event
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/events/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Get event
- info:
    name: Employees
    type: folder
  items:
  - info:
      name: List employees
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/employees
    docs: List employees
  - info:
      name: Create employee
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/employees
    docs: Create employee
  - info:
      name: Get employee
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/employees/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Get employee
  - info:
      name: Update employee
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/employees/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Update employee
  - info:
      name: Get organization chart
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/employees/orgchart
    docs: Get organization chart
  - info:
      name: List employee documents
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/employees/:id/documents
      params:
      - name: id
        value: ''
        type: path
    docs: List employee documents
  - info:
      name: Upload employee document
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/employees/:id/documents
      params:
      - name: id
        value: ''
        type: path
    docs: Upload employee document
  - info:
      name: List employee fields
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/employee_fields
    docs: List employee fields
- info:
    name: Offers
    type: folder
  items:
  - info:
      name: Get offer
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/offers/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Get offer
  - info:
      name: Approve offer
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/offers/:id/approve
      params:
      - name: id
        value: ''
        type: path
    docs: Approve offer
  - info:
      name: Reject offer
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/offers/:id/reject
      params:
      - name: id
        value: ''
        type: path
    docs: Reject offer
- info:
    name: Requisitions
    type: folder
  items:
  - info:
      name: List requisitions
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/requisitions
    docs: List requisitions
  - info:
      name: Create requisition
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/requisitions
    docs: Create requisition
  - info:
      name: Update requisitions
      type: http
    http:
      method: PATCH
      url: https://{subdomain}.workable.com/spi/v3/requisitions
    docs: Update requisitions
  - info:
      name: Get requisition
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/requisitions/:code
      params:
      - name: code
        value: ''
        type: path
    docs: Get requisition
  - info:
      name: Approve requisition
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/requisitions/:code/approve
      params:
      - name: code
        value: ''
        type: path
    docs: Approve requisition
  - info:
      name: Reject requisition
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/requisitions/:code/reject
      params:
      - name: code
        value: ''
        type: path
    docs: Reject requisition
- info:
    name: ReviewCycles
    type: folder
  items:
  - info:
      name: List review cycle templates
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/review-cycles/templates
    docs: List review cycle templates
  - info:
      name: Create review cycle template
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/review-cycles/templates
    docs: Create review cycle template
  - info:
      name: Get review cycle template
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/review-cycles/templates/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Get review cycle template
- info:
    name: TimeTracking
    type: folder
  items:
  - info:
      name: List time entries
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/time-tracking/time-entries
    docs: List time entries
  - info:
      name: Create time entry
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/time-tracking/time-entries
    docs: Create time entry
  - info:
      name: Create employee time entry
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/time-tracking/employees/:id/time-entries
      params:
      - name: id
        value: ''
        type: path
    docs: Create employee time entry
  - info:
      name: Update employee time entry
      type: http
    http:
      method: PUT
      url: https://{subdomain}.workable.com/spi/v3/time-tracking/employees/:id/time-entries/:uuid
      params:
      - name: id
        value: ''
        type: path
      - name: uuid
        value: ''
        type: path
    docs: Update employee time entry
  - info:
      name: Delete employee time entry
      type: http
    http:
      method: DELETE
      url: https://{subdomain}.workable.com/spi/v3/time-tracking/employees/:id/time-entries/:uuid
      params:
      - name: id
        value: ''
        type: path
      - name: uuid
        value: ''
        type: path
    docs: Delete employee time entry
- info:
    name: TimeOff
    type: folder
  items:
  - info:
      name: List time off requests
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/timeoff/requests
    docs: List time off requests
  - info:
      name: Create time off request
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/timeoff/requests
    docs: Create time off request
  - info:
      name: List time off categories
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/timeoff/categories
    docs: List time off categories
  - info:
      name: List time off balances
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/timeoff/balances
    docs: List time off balances
  - info:
      name: Approve time off request
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/timeoff/approvals/:key
      params:
      - name: key
        value: ''
        type: path
    docs: Approve time off request
- info:
    name: CustomAttributes
    type: folder
  items:
  - info:
      name: List custom attributes
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/custom_attributes
    docs: List custom attributes
  - info:
      name: List disqualification reasons
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/disqualification_reasons
    docs: List disqualification reasons
- info:
    name: Subscriptions
    type: folder
  items:
  - info:
      name: List subscriptions
      type: http
    http:
      method: GET
      url: https://{subdomain}.workable.com/spi/v3/subscriptions
    docs: List subscriptions
  - info:
      name: Create subscription
      type: http
    http:
      method: POST
      url: https://{subdomain}.workable.com/spi/v3/subscriptions
    docs: Create subscription
  - info:
      name: Delete subscription
      type: http
    http:
      method: DELETE
      url: https://{subdomain}.workable.com/spi/v3/subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
    docs: Delete subscription
bundled: true