Ashby website screenshot

Ashby

Ashby is a modern all-in-one recruiting platform combining Applicant Tracking System (ATS), sourcing/CRM, interview scheduling, structured-hiring workflows, and recruiting analytics with AI embedded throughout — including AI Application Review for criteria scoring and an AI Notetaker for interview transcripts and structured feedback. The Ashby API exposes 164 operations across 14 product modules with HTTP Basic Auth, 22 webhook event types, async reporting, public job postings for custom careers pages, and partner-implemented assessment integrations. Customers include Deel, Snowflake, Shopify, Notion, Linear, Zapier, and Replit; pricing spans Foundations ($400/mo flat for sub-100 employees), Plus, and Enterprise tiers, plus a standalone Ashby Analytics product layered on existing ATS deployments.

15 APIs 21 Features
ATSApplicant Tracking SystemRecruitingTalent AcquisitionSourcingCRMSchedulingAnalyticsHiringHR TechAI

APIs

Ashby Applications API

Create, list, transfer, update, and inspect candidate applications across jobs and stages. Includes application history, hiring team membership, source and stage changes, feedba...

Ashby Candidates API

Manage candidate records — create, update, search, anonymize, merge, hire — plus candidate tags, projects, notes, messages, resume and file uploads, sourcing sequences, referral...

Ashby Jobs API

Manage jobs, openings, job postings, and job boards. Includes job CRUD, compensation updates, status changes (Open / Closed / Archived / Draft), opening lifecycle (create / arch...

Ashby Interviews API

Read and manage interviews, interview schedules (create / update / cancel), interview events, interview stages and stage groups, interview plans, interview briefings, interviewe...

Ashby Offers API

Create and manage candidate offers, offer versions, the offer process (start), and approval workflows — including force-approve for individual approval steps or the entire offer...

Ashby Approvals API

Programmatically define approval definitions for entities in scope of API-managed approvals. Supports multi-step approval workflows and skip-via-empty-list semantics for routing...

Ashby Surveys & Feedback API

Read survey form and feedback form definitions, create survey requests, list and submit survey submissions, list application feedback, and submit interviewer feedback. Powers As...

Ashby Assessments API

Partner-implemented assessment integration surface. Lists configured assessments, starts and cancels assessment instances, updates assessment status, adds completed assessments ...

Ashby Custom Fields API

Define custom fields on Ashby entities, set single and batch values, and manage selectable options. Backs Ashby's structured-hiring data model and is the integration point for p...

Ashby Organization API

Read and manage organization metadata — users (with permission roles), departments and teams, locations with hierarchical address updates, brands, hiring team roles, archive and...

Ashby Files API

Look up file metadata and request presigned upload URLs for candidate resumes, application attachments, and partner-provided assessment artifacts. Two-step pattern — request pre...

Ashby Reports API

Generate Ashby Analytics reports synchronously or asynchronously. The async path is the recommended pattern for large datasets; subject to a strict 15 req/min, 3 concurrent exec...

Ashby Webhooks API

Manage outbound webhook subscriptions (webhook.create / update / info / delete) and consume 22 event types: applicationSubmit, applicationUpdate, candidateDelete, candidateHire,...

Ashby Job Postings Public API

Public, unauthenticated job postings endpoint for building custom careers pages and partner job feeds (LinkedIn, Indeed, Otta, Built In, ZipRecruiter, Levels.fyi). Returns publi...

Ashby API Keys API

Inspect the calling API key — returns the key's name, granted permission modules (Jobs, Candidates, Interviews, Offers, Approvals, Organization, Reports, API Keys), and read/wri...

Collections

Ashby API

OPEN

GraphQL

Ashby HQ GraphQL Schema

This is a conceptual GraphQL schema for the Ashby recruiting platform, derived from the Ashby REST API documented at [https://developers.ashbyhq.com](https://developers.ashbyhq....

GRAPHQL

Pricing Plans

Ashby Hq Plans Pricing

6 plans

PLANS

Rate Limits

Ashby Hq Rate Limits

3 limits

RATE LIMITS

FinOps

Features

All-in-one recruiting platform — ATS + CRM/sourcing + scheduling + analytics + AI Notetaker in a single product
164 REST operations across 14 product modules — Applications, Candidates, Jobs, Openings, Job Postings, Interviews, Offers, Approvals, Surveys, Assessments, Custom Fields, Organization, Files, Reports, Webhooks, API Keys
HTTP Basic Auth with API key as username — keys are scoped to read/write modules (Jobs, Candidates, Interviews, Offers, Approvals, Organization, Reports, API Keys)
22 outbound webhook event types — HMAC-SHA256 signed via Ashby-Signature header — with automatic retries and related-webhook ordering guarantees
AI Application Review — application.listCriteriaEvaluations exposes AI-generated criteria scoring with outcome and reasoning per candidate against job requirements
AI Notetaker — notetakerTranscript.info surfaces live interview transcripts and AI-drafted structured feedback for reviewers
Pagination and incremental sync via syncToken — most list endpoints return a sync cursor for delta polling
Expansions — request related entities inline (jobs include departments, locations; applications include candidates, jobs) via the expand request parameter
Endpoint naming convention — resource.verb (e.g., application.list, candidate.create) over POST with JSON body; not REST-pure but stable and consistent across 164 operations
Async Reports API — generate analytics reports at 15 req/min / 3 concurrent; powers Ashby Analytics standalone product
Public, unauthenticated job postings API for custom careers pages — drives Ashby-hosted and self-hosted careers experiences
Dedicated partner job feeds — pre-built integrations with LinkedIn, Indeed, ZipRecruiter, Otta, Built In, Levels.fyi via the public job postings surface
Push to HRIS — pushToHRIS webhook and pushToHRIS API trigger handoff to Workday, Rippling, Gusto, HiBob, Deel, Paylocity, BambooHR after candidate hire
200+ integration partners across HRIS, assessments (SHL, CodeSignal, HackerRank, CoderPad), background checks (HireRight, Checkr), video (Zoom), comms (Slack, Google Workspace, Microsoft 365), and contract / offer letter tools (Pave, Ironclad, Metaview)
Zapier connector for low-code workflows
Custom fields data model — define, list, set values (single and batch), update selectable values — drives structured-hiring data extensibility
Approval definitions API for governance — manage multi-step approval workflows on offers and other entities; supports force-approve overrides
Candidate fraud check status surfaced via candidate.info / candidate.list
File upload via two-step presigned URL — request URL, PUT bytes — keeps binary payloads off the API plane
llms.txt index at developers.ashbyhq.com/llms.txt — every operation page exposes its OpenAPI definition inline in a fenced JSON block
ReadMe-hosted developer portal with API Reference, Guides, Webhooks, Changelog, and Try It console

Semantic Vocabularies

Ashby Context

0 classes · 18 properties

JSON-LD

Resources

🌐
Portal
Portal
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
💻
ErrorCodes
ErrorCodes
🔗
Documentation
Documentation
💬
Support
Support
📄
ChangeLog
ChangeLog
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
CaseStudies
CaseStudies
📰
Blog
Blog
🔗
AboutUs
AboutUs
🔗
Jobs
Jobs
📝
Signup
Signup
🔗
Login
Login
🔗
Documentation
Documentation
🔗
Documentation
Documentation
💬
Support
Support
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
Security
Security
🔗
TrustCenter
TrustCenter
🟢
StatusPage
StatusPage
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Twitter
Twitter
🔗
BaseURL
BaseURL
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Ashby API
  version: 1.0.0
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: API Key
    type: folder
  items:
  - info:
      name: apiKey.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/apiKey.info
      body:
        type: json
        data: '{}'
      auth:
        type: basic
        username: '{{username}}'
        password: '{{password}}'
    docs: 'Retrieve information about the API key being used to make the request.


      **Requires the [`apiKeysRead`](authentication#permissions-apikeyinfo) permission.**

      '
- info:
    name: Application
    type: folder
  items:
  - info:
      name: application.addHiringTeamMember
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.addHiringTeamMember
      body:
        type: json
        data: '{}'
    docs: "Adds an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationaddhiringteammember)\
      \ permission.**\n"
  - info:
      name: application.changeSource
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.changeSource
      body:
        type: json
        data: '{}'
    docs: 'Change the source of an application.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationchangesource) permission.**

      '
  - info:
      name: application.changeStage
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.changeStage
      body:
        type: json
        data: '{}'
    docs: 'Change the stage of an application


      **Requires the [`candidatesWrite`](authentication#permissions-applicationchangestage) permission.**

      '
  - info:
      name: application.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.create
      body:
        type: json
        data: '{}'
    docs: 'Consider a candidate for a job (eg when sourcing a candidate for a job posting).


      If you''re submitting an application as a job board, use the [`applicationForm.submit`](https://developers.ashbyhq.com/reference/applicationformsubmit)
      endpoint instead. See [Creating a custom careers page](https://developers.ashbyhq.com/docs/creating-a-custom-careers-page)
      for details.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationcreate) permission.**


      To set values for custom fields on'
  - info:
      name: application.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.info
      body:
        type: json
        data: '{}'
    docs: 'Fetch application details by application id or by submitted form instance id (which is return by the `applicationForm.submit`
      endpoint). If both applicationId and submittedFormInstanceId are provided, we will lookup by applicationId.


      **Requires the [`candidatesRead`](authentication#permissions-applicationinfo) permission.**

      '
  - info:
      name: application.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.list
      body:
        type: json
        data: '{}'
    docs: 'Gets all applications in the organization.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`candidatesRead`](authentication#permissions-applicationlist) permission.**

      '
  - info:
      name: application.listCriteriaEvaluations
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.listCriteriaEvaluations
      body:
        type: json
        data: '{}'
    docs: 'Fetch a paginated list of AI criteria evaluations for an application.


      This endpoint returns the AI-generated criteria evaluations that assess how well a candidate meets specific job requirements.
      Each evaluation contains the outcome, reasoning, and other assessment details.


      This endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync)
      guide for usage examples.


      **Requires the [`candidatesRead`](authent'
  - info:
      name: application.listHistory
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.listHistory
      body:
        type: json
        data: '{}'
    docs: 'Fetch a paginated list of application history items for an application.


      This endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync)
      guide for usage examples.


      **Requires the [`candidatesRead`](authentication#permissions-applicationListHistory) permission.**

      '
  - info:
      name: application.removeHiringTeamMember
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.removeHiringTeamMember
      body:
        type: json
        data: '{}'
    docs: "Removes an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationremovehiringteammember)\
      \ permission.**\n"
  - info:
      name: application.transfer
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.transfer
      body:
        type: json
        data: '{}'
    docs: 'Transfer an application to a different job.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationtransfer) permission.**

      '
  - info:
      name: application.update
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.update
      body:
        type: json
        data: '{}'
    docs: 'Update an application


      **Requires the [`candidatesWrite`](authentication#permissions-applicationupdate) permission.**


      To set values for custom fields on Applications, use the [`customFields.setValue`](https://developers.ashbyhq.com/reference/customfieldsetvalue)
      endpoint.

      '
  - info:
      name: application.updateHistory
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/application.updateHistory
      body:
        type: json
        data: '{}'
    docs: 'Update the history of an application. This endpoint is used to update the history of an application, such as setting
      the entered stage time or deleting a history event.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationupdatehistory) permission and the `Allow updating
      application history?` setting found in your admin API key permissions configuration.**

      '
- info:
    name: Application Form
    type: folder
  items:
  - info:
      name: applicationForm.submit
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/applicationForm.submit
      body:
        type: json
        data: '{}'
    docs: 'Submit an application for a job posting.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationformsubmit) permission.**


      The Content-Type of this request must be `multipart/form-data` or `application/json`.


      When using `application/json`, file fields should contain a handle string obtained from [`file.createFileUploadHandle`](https://developers.ashbyhq.com/reference/filecreatefileuploadhandle)
      with `fileUploadContext` set to `ApplicationForm`. This allows files to be uploade'
- info:
    name: Application Hiring Team Role
    type: folder
  items:
  - info:
      name: applicationHiringTeamRole.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/applicationHiringTeamRole.list
    docs: 'Gets all available hiring team roles for applications in the organization.


      **Requires the [`candidatesRead`](authentication#permissions-applicationHiringTeamRoleList) permission.**

      '
- info:
    name: Hiring Team
    type: folder
  items:
  - info:
      name: hiringTeam.addMember
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/hiringTeam.addMember
      body:
        type: json
        data: '{}'
    docs: "Adds an Ashby user to the hiring team at the application or job-level. \n\n**Requires the [`organizationWrite`](authentication#permissions-hiringteamaddmember)\
      \ permission.**\n\nHiring team members can be added to a hiring team at the application, job, or opening level. \n"
  - info:
      name: hiringTeam.removeMember
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/hiringTeam.removeMember
      body:
        type: json
        data: '{}'
    docs: "Removes an Ashby user from the hiring team at the application or job-level. \n\n**Requires the [`organizationWrite`](authentication#permissions-hiringteamremovemember)\
      \ permission.**\n\nHiring team members can be removed from a hiring team at the application, job, or opening level.\
      \ \n"
- info:
    name: Application Feedback
    type: folder
  items:
  - info:
      name: applicationFeedback.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/applicationFeedback.list
      body:
        type: json
        data: '{}'
    docs: "List all interview scorecards and feedback submissions associated with an application.\n\nEach feedback submission\
      \ contains:\n- **formDefinition**: The structure of the feedback form with all available fields\n- **submittedValues**:\
      \ Responses to the form fields, which depending on the form configuration can include:\n  - Text feedback (e.g., \"\
      Candidate showed strong technical skills...\")\n  - Numerical scores (e.g., \"4\" for a 1-4 rating scale)\n  - Structured\
      \ selections (e.g., \"Strong Hire\" for overall"
  - info:
      name: applicationFeedback.submit
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/applicationFeedback.submit
      body:
        type: json
        data: '{}'
    docs: "Application feedback forms support a variety of field types. \n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationfeedbacksubmit)\
      \ permission.**\n\nThe values accepted for each field depend on the type of field that's being filled out:         \
      \                                                                                                                  \
      \                                                                                      |\n- `Boolean` - A boolean value\n\
      - `Co"
- info:
    name: Application Feedback Request
    type: folder
  items:
  - info:
      name: applicationFeedbackRequest.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/applicationFeedbackRequest.create
      body:
        type: json
        data: '{}'
    docs: 'Request feedback on an application without scheduling an interview.

      The `interviewEventId` returned in the response can be provided to `applicationFeedback.submit` to

      complete the feedback request.


      The interview used must be configured to request feedback.


      **Requires the [`candidatesWrite`](authentication#permissions-applicationfeedbackrequestcreate) permission.**

      '
- info:
    name: Feedback Form Definition
    type: folder
  items:
  - info:
      name: feedbackFormDefinition.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/feedbackFormDefinition.info
      body:
        type: json
        data: '{}'
    docs: 'Returns a single feedback form by id


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-feedbackformdefinitioninfo) permission.**

      '
  - info:
      name: feedbackFormDefinition.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/feedbackFormDefinition.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all feedback forms.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-feedbackformdefinitionlist) permission.**

      '
- info:
    name: Survey Form Definition
    type: folder
  items:
  - info:
      name: surveyFormDefinition.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveyFormDefinition.info
      body:
        type: json
        data: '{}'
    docs: 'Returns details about a single survey form definition by id


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-surveyformdefinitioninfo) permission.**

      '
  - info:
      name: surveyFormDefinition.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveyFormDefinition.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all survey form definitions.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-surveyformdefinitionlist) permission.**

      '
- info:
    name: Survey Request
    type: folder
  items:
  - info:
      name: surveyRequest.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveyRequest.create
      body:
        type: json
        data: '{}'
    docs: "This endpoint generates a survey request and returns a survey URL. You can send this URL to a candidate to allow\
      \ them to complete a survey. \n\n**Requires the [`candidatesWrite`](authentication#permissions-surveyrequestcreate)\
      \ permission.**\n\n**Note that calling this endpoint will not automatically email the survey to the candidate.** It\
      \ simply creates the request and gives you a URL to share with a candidate.\n"
  - info:
      name: surveyRequest.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveyRequest.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all survey requests.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`candidatesRead`](authentication#permissions-surveyRequestList) permission.**

      '
- info:
    name: Survey Submission
    type: folder
  items:
  - info:
      name: surveySubmission.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveySubmission.create
      body:
        type: json
        data: '{}'
    docs: 'Create a new survey submission.


      **Requires the [`candidatesWrite`](authentication#permissions-surveySubmissionCreate) permission.**

      '
  - info:
      name: surveySubmission.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/surveySubmission.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all survey submissions of a given `surveyType`.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`candidatesRead`](authentication#permissions-surveySubmissionList) permission.**

      '
- info:
    name: Approval
    type: folder
  items:
  - info:
      name: approval.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/approval.list
      body:
        type: json
        data: '{}'
    docs: 'Gets all approvals in the organization. You can optionally filter by entity type and entity ID.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`approvalsRead`](authentication#permissions-approvallist) permission.**

      '
- info:
    name: Approval Definition
    type: folder
  items:
  - info:
      name: approvalDefinition.update
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/approvalDefinition.update
      body:
        type: json
        data: '{}'
    docs: 'Create or update an approval definition for a specific entity that requires approval. The entity requiring approval
      must be within scope of an approval in Ashby that is marked as being managed by the API.


      If the provided approval step definitions is an empty list, then approval will be skipped and the entity will proceed
      to the next stage.


      **Requires the [`approvalsWrite`](authentication#permissions-approvaldefinitionupdate) permission.**

      '
- info:
    name: Archive Reason
    type: folder
  items:
  - info:
      name: archiveReason.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/archiveReason.list
      body:
        type: json
        data: '{}'
    docs: 'Lists archive reasons


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-archivereasonlist) permission.**

      '
- info:
    name: Brand
    type: folder
  items:
  - info:
      name: brand.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/brand.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all brands for the organization.


      **Requires the [`organizationRead`](authentication#permissions-departmentinfo) permission.**

      '
- info:
    name: Close Reason
    type: folder
  items:
  - info:
      name: closeReason.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/closeReason.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all close reasons for jobs or openings.


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-closereasonlist) permission.**

      '
- info:
    name: Communication Template
    type: folder
  items:
  - info:
      name: communicationTemplate.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/communicationTemplate.list
    docs: 'List all enabled communication templates.


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-communicationtemplatelist) permission.**

      '
- info:
    name: Department & Team
    type: folder
  items:
  - info:
      name: department.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.create
      body:
        type: json
        data: '{}'
    docs: 'Creates a department


      **Requires the [`organizationWrite`](authentication#permissions-departmentcreate) permission.**

      '
  - info:
      name: department.archive
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.archive
      body:
        type: json
        data: '{}'
    docs: 'Archives a department


      **Requires the [`organizationWrite`](authentication#permissions-departmentarchive) permission.**

      '
  - info:
      name: department.restore
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.restore
      body:
        type: json
        data: '{}'
    docs: 'Restores a department


      **Requires the [`organizationWrite`](authentication#permissions-departmentrestore) permission.**

      '
  - info:
      name: department.move
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.move
      body:
        type: json
        data: '{}'
    docs: 'Moves a department to another parent


      **Requires the [`organizationWrite`](authentication#permissions-departmentmove) permission.**

      '
  - info:
      name: department.update
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.update
      body:
        type: json
        data: '{}'
    docs: 'Updates a department


      **Requires the [`organizationWrite`](authentication#permissions-departmentupdate) permission.**

      '
- info:
    name: Department
    type: folder
  items:
  - info:
      name: department.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.info
      body:
        type: json
        data: '{}'
    docs: 'Fetch department details by id


      **Requires the [`organizationRead`](authentication#permissions-departmentinfo) permission.**

      '
  - info:
      name: department.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/department.list
      body:
        type: json
        data: '{}'
    docs: 'Lists all departments


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`organizationRead`](authentication#permissions-departmentlist) permission.**

      '
- info:
    name: Hiring Team Role
    type: folder
  items:
  - info:
      name: hiringTeamRole.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/hiringTeamRole.list
      body:
        type: json
        data: '{}'
    docs: 'Lists the possible hiring team roles in an organization


      **Requires the [`organizationRead`](authentication#permissions-hiringteamrolelist) permission.**

      '
- info:
    name: Location
    type: folder
  items:
  - info:
      name: location.archive
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.archive
      body:
        type: json
        data: '{}'
    docs: 'Archives a location or location hierarchy.


      **Requires the [`organizationWrite`](authentication#permissions-locationarchive) permission.**

      '
  - info:
      name: location.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.create
      body:
        type: json
        data: '{}'
    docs: 'Creates a location or location hierarchy.


      **Requires the [`organizationWrite`](authentication#permissions-locationcreate) permission.**

      '
  - info:
      name: location.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.info
      body:
        type: json
        data: '{}'
    docs: 'Gets details for a single location by id.


      **Requires the [`organizationRead`](authentication#permissions-locationinfo) permission.**

      '
  - info:
      name: location.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.list
      body:
        type: json
        data: '{}'
    docs: 'List all locations. Regions are not returned.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`organizationRead`](authentication#permissions-locationlist) permission.**

      '
  - info:
      name: location.move
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.move
      body:
        type: json
        data: '{}'
    docs: 'Moves a location in location hierarchy.


      **Requires the [`organizationWrite`](authentication#permissions-locationmove) permission.**

      '
  - info:
      name: location.restore
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.restore
      body:
        type: json
        data: '{}'
    docs: 'Restores an archived location or location hierarchy.


      **Requires the [`organizationWrite`](authentication#permissions-locationrestore) permission.**

      '
  - info:
      name: location.updateAddress
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.updateAddress
      body:
        type: json
        data: '{}'
    docs: 'Update an address of a location or location hierarchy.


      **Requires the [`organizationWrite`](authentication#permissions-locationupdateaddress) permission.**

      '
  - info:
      name: location.updateName
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.updateName
      body:
        type: json
        data: '{}'
    docs: 'Update location''s name.


      **Requires the [`organizationWrite`](authentication#permissions-locationupdateName) permission.**

      '
  - info:
      name: location.updateExternalName
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.updateExternalName
      body:
        type: json
        data: '{}'
    docs: 'Update a location''s external (candidate-facing) name.


      **Requires the [`organizationWrite`](authentication#permissions-locationupdateexternalname) permission.**

      '
  - info:
      name: location.updateWorkplaceType
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/location.updateWorkplaceType
      body:
        type: json
        data: '{}'
    docs: 'Update location''s workplace type.


      **Requires the [`organizationWrite`](authentication#permissions-locationupdateworkplacetype) permission.**

      '
- info:
    name: Referral
    type: folder
  items:
  - info:
      name: referral.create
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/referral.create
      body:
        type: json
        data: '{}'
    docs: 'Creates a referral


      **Requires the [`candidatesWrite`](authentication#permissions-referralcreate) permission.**

      '
- info:
    name: Referral Form
    type: folder
  items:
  - info:
      name: referralForm.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/referralForm.info
    docs: 'Fetches the default referral form or creates a default referral form if none exists.


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-referralforminfo) permission.**

      '
- info:
    name: Source
    type: folder
  items:
  - info:
      name: source.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/source.list
      body:
        type: json
        data: '{}'
    docs: 'List all sources


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-sourcelist) permission.**

      '
- info:
    name: Source Tracking Links
    type: folder
  items:
  - info:
      name: sourceTrackingLink.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/sourceTrackingLink.list
      body:
        type: json
        data: '{}'
    docs: 'List all source custom tracking links


      **Requires the [`hiringProcessMetadataRead`](authentication#permissions-sourcetrackinglinklist) permission.**

      '
- info:
    name: User
    type: folder
  items:
  - info:
      name: user.info
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.info
      body:
        type: json
        data: '{}'
    docs: 'Get an Ashby user by id


      **Requires the [`organizationRead`](authentication#permissions-userinfo) permission.**

      '
  - info:
      name: user.list
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.list
      body:
        type: json
        data: '{}'
    docs: 'Get a list of all Ashby users.


      See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage
      examples.


      **Requires the [`organizationRead`](authentication#permissions-userlist) permission.**


      The `globalRole` property in the response specifies the user''s access level in Ashby.

      For more details on the permissions granted with each role, see our [documentation here](https://docs.ashbyhq.com/user-permissions).

      '
  - info:
      name: user.search
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.search
      body:
        type: json
        data: '{}'
    docs: 'Search for an Ashby user by email address


      **Requires the [`organizationRead`](authentication#permissions-usersearch) permission.**

      '
  - info:
      name: user.interviewerSettings
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.interviewerSettings
      body:
        type: json
        data: '{}'
    docs: 'Get interviewer settings for a user.


      **Requires the [`organizationRead`](authentication#permissions-userinfo) permission.**

      '
  - info:
      name: user.updateInterviewerSettings
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.updateInterviewerSettings
      body:
        type: json
        data: '{}'
    docs: "Update interviewer settings for a user. \n\nEither limit can be provided, or both can be provided. If only one\
      \ is provided, the other will remain unchanged. If a limit is provided but set to null, it will be unset.\n\n**Requires\
      \ the [`organizationWrite`](authentication#permissions-userinfo) permission.**\n"
  - info:
      name: user.createInterviewerPause
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.createInterviewerPause
      body:
        type: json
        data: '{}'
    docs: 'Creates an interviewer pause for a user. While paused, the user will not be scheduled for interviews.


      A user can only have one interviewer pause at a time (whether active or scheduled). Attempting to create a pause when
      one already exists will return an error.


      **Requires the [`organizationWrite`](authentication#permissions-usercreateinterviewerpause) permission.**

      '
  - info:
      name: user.listInterviewerPauses
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.listInterviewerPauses
      body:
        type: json
        data: '{}'
    docs: 'Lists all active or scheduled interviewer pauses for a user.


      **Requires the [`organizationRead`](authentication#permissions-userlistinterviewerpauses) permission.**

      '
  - info:
      name: user.deleteInterviewerPause
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.deleteInterviewerPause
      body:
        type: json
        data: '{}'
    docs: 'Deletes an interviewer pause.


      **Requires the [`organizationWrite`](authentication#permissions-userdeleteinterviewerpause) permission.**

      '
  - info:
      name: user.setCustomFieldValue
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.setCustomFieldValue
      body:
        type: json
        data: '{}'
    docs: 'Set the value of a custom field on an employee.


      **Requires the [`organizationWrite`](authentication#permissions-usersetcustomfieldvalue) permission.**


      The values accepted in the `fieldValue` param depend on the type of field being updated. See the

      [`customField.setValue`](#operation/customFieldSetValue) docs for accepted types.


      **Note:** When updating multiple custom fields on the same employee, use

      [`user.setCustomFieldValues`](#operation/userSetCustomFieldValues) instead to avoid race condi'
  - info:
      name: user.setCustomFieldValues
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/user.setCustomFieldValues
      body:
        type: json
        data: '{}'
    docs: 'Set the values of multiple custom fields on an employee in a single call.

      This is the recommended approach when updating multiple fields on the same employee

      to avoid race conditions that can occur with concurrent `user.setCustomFieldValue` calls.


      **Requires the [`organizationWrite`](authentication#permissions-usersetcustomfieldvalues) permission.**


      The values accepted in the `fieldValue` param depend on the type of field being updated. See the

      [`customField.setValue`](#operation/customFieldSe'
- info:
    name: Assessment
    type: folder
  items:
  - info:
      name: assessment.addCompletedToCandidate
      type: http
    http:
      method: POST
      url: https://api.ashbyhq.com/assessment.addCompletedToCandidate
      body:
        type: json
        data: '{}'
    docs: 'Add a completed assessment to a candidate


      **Requires the [`candidatesWrite`](authentication#permissions-assessmentaddcompletedtocandidate) permission.**

      '
  - info:
      name: assessment.start (Implemented by Part

# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ashby-hq/refs/heads/main/apis.yml