Greenhouse Events API

Audit log events.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

greenhouse-io-events-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Greenhouse Assessment Partner ActivityFeed Events 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: Events
  description: Audit log events.
paths:
  /events:
    get:
      tags:
      - Events
      summary: List Audit Events
      description: Returns audit events filtered by performer, target, event type, request, and time range.
      operationId: listAuditEvents
      parameters:
      - name: before_time
        in: query
        schema:
          type: string
          format: date-time
      - name: after_time
        in: query
        schema:
          type: string
          format: date-time
      - name: date
        in: query
        schema:
          type: string
          format: date
      - name: magic_time
        in: query
        description: Relative time keyword (e.g. last_24_hours, last_7_days).
        schema:
          type: string
      - name: performer_ids
        in: query
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: false
      - name: performer_types
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - User
            - ApiKey
            - System
        style: form
        explode: false
      - name: performer_ip_addresses
        in: query
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: event_types
        in: query
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: event_target_ids
        in: query
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: false
      - name: event_target_types
        in: query
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: request_ids
        in: query
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: request_types
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - API
            - UI
            - JobBoard
            - Webhook
        style: form
        explode: false
      - name: paging
        in: query
        description: Opaque pagination cursor returned by a previous response.
        schema:
          type: string
      responses:
        '200':
          description: Audit events.
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      $ref: '#/components/schemas/AuditEvent'
                  paging:
                    type: object
                    properties:
                      next:
                        type: string
                        nullable: true
        '429':
          description: Rate limit exceeded.
components:
  schemas:
    AuditEvent:
      type: object
      properties:
        id:
          type: string
        event_type:
          type: string
        occurred_at:
          type: string
          format: date-time
        performer:
          type: object
          properties:
            id:
              type: integer
            type:
              type: string
            ip_address:
              type: string
            email:
              type: string
              format: email
              nullable: true
        event_target:
          type: object
          properties:
            id:
              type: integer
            type:
              type: string
        request:
          type: object
          properties:
            id:
              type: string
            type:
              type: string
            method:
              type: string
            path:
              type: string
            user_agent:
              type: string
        changes:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              old_value: {}
              new_value: {}
  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).