Greenhouse GraphQL API

Single GraphQL endpoint for all Onboarding operations.

Operations 2

POST /graphql Execute Onboarding GraphQL #
GET /graphql/introspection Onboarding GraphQL Schema (Documentation Pointer) #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/greenhouse-io-graphql-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

greenhouse-io-graphql-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Greenhouse Onboarding Graph QL API
  description: 'The Greenhouse Onboarding (GHO) API is a single GraphQL endpoint exposing employee,

    department, location, custom field, and team data along with mutations for creating

    and updating departments, locations, pending hires, and employee profiles.

    Authentication uses HTTP Basic with an Onboarding Access Key (username) and Secret

    Key (password); only Super Admins can issue or revoke keys. Rate limiting is enforced

    by both request count (100 per window) and per-query complexity (max 2500 points);

    clients should inspect the `rateLimit` GraphQL field to track remaining budget.

    '
  version: 1.0.0
  contact:
    name: Greenhouse Software
    url: https://www.greenhouse.com
    email: developers@greenhouse.io
servers:
- url: https://onboarding-api.greenhouse.io
  description: Onboarding GraphQL endpoint host.
security:
- BasicAuth: []
tags:
- name: GraphQL
  description: Single GraphQL endpoint for all Onboarding operations.
paths:
  /graphql:
    post:
      tags:
      - GraphQL
      summary: Execute Onboarding GraphQL
      description: 'Execute a GraphQL query or mutation against the Greenhouse Onboarding schema.

        Supported root queries include `employee(id)`, `employees`, `departments`,

        `locations`, `customFields`, `teams`, and `rateLimit`. Supported mutations

        include department / location CRUD, `addPendingHire`, and `updateEmployeeProfile`.

        Errors use the GraphQL `errors` array with codes: Authentication, Validation,

        NotFound, Server, RateLimit.

        '
      operationId: executeOnboardingGraphQL
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
      responses:
        '200':
          description: GraphQL response (errors carried inside the body).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '401':
          description: Authentication failed.
        '429':
          description: Rate or complexity limit exceeded.
  /graphql/introspection:
    get:
      tags:
      - GraphQL
      summary: Onboarding GraphQL Schema (Documentation Pointer)
      description: 'GraphQL schema is discovered via introspection by POSTing a standard introspection

        query to /graphql. This path is documentation-only and not an additional HTTP route.

        '
      operationId: getOnboardingIntrospectionDocs
      responses:
        '200':
          description: See documentation.
components:
  schemas:
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          additionalProperties: true
          nullable: true
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  type: string
              extensions:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                    - Authentication
                    - Validation
                    - NotFound
                    - Server
                    - RateLimit
        extensions:
          type: object
          properties:
            rateLimit:
              type: object
              properties:
                cost:
                  type: integer
                remaining:
                  type: integer
                resetAt:
                  type: string
                  format: date-time
    GraphQLRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
        operationName:
          type: string
        variables:
          type: object
          additionalProperties: true
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic with the Onboarding Access Key as username and Secret Key as password.