Greenhouse Approvals API

Approval flows for jobs and offers.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

greenhouse-io-approvals-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Greenhouse Assessment Partner ActivityFeed Approvals API
  description: 'The Assessment Partner API defines the contract that assessment vendors implement so

    Greenhouse can list available tests, send a test to a candidate, and retrieve the

    candidate''s results. Endpoints are hosted by the partner (not Greenhouse) and are

    secured with HTTP Basic over HTTPS. Greenhouse may also receive PATCH callbacks from

    the partner with completed test status; otherwise it polls `test_status` hourly for

    up to 8 weeks. API keys must be fewer than 171 characters.

    '
  version: 1.0.0
  contact:
    name: Greenhouse Software
    url: https://www.greenhouse.com
    email: developers@greenhouse.io
servers:
- url: https://{partner_host}/{base_path}
  description: Partner-hosted endpoint
  variables:
    partner_host:
      default: partner.example.com
    base_path:
      default: greenhouse-assessment
security:
- BasicAuth: []
tags:
- name: Approvals
  description: Approval flows for jobs and offers.
paths:
  /users/{id}/pending_approvals:
    get:
      tags:
      - Approvals
      summary: List User Pending Approvals
      operationId: listUserPendingApprovals
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: Pending approvals.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /approval_flows:
    post:
      tags:
      - Approvals
      summary: Create Approval Flow
      operationId: createApprovalFlow
      parameters:
      - $ref: '#/components/parameters/OnBehalfOf'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                job_id:
                  type: integer
                approval_groups:
                  type: array
                  items:
                    type: object
      responses:
        '201':
          description: Created.
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /approval_flows/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      tags:
      - Approvals
      summary: Retrieve Approval Flow
      operationId: getApprovalFlow
      responses:
        '200':
          description: Approval flow.
          content:
            application/json:
              schema:
                type: object
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /approval_flows/{id}/approval_groups/{group_id}/approvers/{user_id}:
    put:
      tags:
      - Approvals
      summary: Replace Approver
      operationId: replaceApprover
      parameters:
      - $ref: '#/components/parameters/Id'
      - name: group_id
        in: path
        required: true
        schema:
          type: integer
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
      - $ref: '#/components/parameters/OnBehalfOf'
      responses:
        '200':
          description: Replaced.
        4XX:
          $ref: '#/components/responses/ErrorResponse'
  /jobs/{job_id}/approval_flows:
    parameters:
    - name: job_id
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Approvals
      summary: List Job Approval Flows
      operationId: listJobApprovalFlows
      responses:
        '200':
          description: Approval flows.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        4XX:
          $ref: '#/components/responses/ErrorResponse'
    put:
      tags:
      - Approvals
      summary: Replace Job Approval Flow
      operationId: replaceJobApprovalFlow
      parameters:
      - $ref: '#/components/parameters/OnBehalfOf'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                approval_groups:
                  type: array
                  items:
                    type: object
      responses:
        '200':
          description: Replaced.
        4XX:
          $ref: '#/components/responses/ErrorResponse'
components:
  responses:
    ErrorResponse:
      description: Error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
  parameters:
    Id:
      name: id
      in: path
      required: true
      schema:
        type: integer
    OnBehalfOf:
      name: On-Behalf-Of
      in: header
      required: false
      description: The ID of the Greenhouse user the request is being made on behalf of.
      schema:
        type: integer
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic; the API key is Base64-encoded and used as the username (key must be <171 chars).