Skip to main content

HeyMilo API - Complete Public API Documentation

Overview

The HeyMilo API provides programmatic access to the HeyMilo recruitment and interview platform, empowering developers to seamlessly integrate with our AI-powered hiring system. With this API, you can:
  • Retrieve and manage candidate information
  • Oversee and update job postings
  • Set up webhooks for real-time event notifications
  • Access detailed interview data and transcripts
  • Ingest candidate data for processing

Base URL

All API endpoints use the following base URL:

Authentication

Important: All API requests require authentication using the X-API-KEY header.
This header must be included in every request to the API. Requests without a valid API key will receive a 401 Unauthorized response.

Rate Limiting

The API implements rate limiting to ensure fair usage:
  • Default Rate Limit: 300 requests per minute per API key
  • Rate limit headers are included in responses to help you track usage
  • If you exceed the rate limit, you’ll receive a 429 Too Many Requests response

Response Codes

The API uses standard HTTP status codes:
  • 200 - Success
  • 401 - Unauthorized (missing or invalid API key)
  • 404 - Not Found
  • 422 - Validation Error
  • 429 - Too Many Requests (rate limit exceeded)
  • 500 - Internal Server Error

API Endpoints

1. Health Check

GET /health Check the health status of the API Gateway.

Response

Response Schema


2. Get Job Postings

GET /postings Retrieve job postings with pagination support.

Query Parameters

Example Request

Response

Response Schema

Posting Object Schema: Root Level Configs Schema: Agentic Workflow Configs Schema:

3. Get Interview Details by Interview ID

GET /interview/{interview_id} Retrieve detailed information about a specific interview, including candidate details, scores, and recordings.

Path Parameters

Example Request

Response


4. Get Interviews by Posting

GET /interviews/{posting_id}?page=1&limit=10 Retrieve a paginated list of candidate interviews for a job posting. Optionally filter by the date the candidate was invited to the posting using start_date and/or end_date.

Path Parameters

Query Parameters

Example Request

Response Schema

Candidate Object Schema Selected details fields

Response


5. Export Interviews

GET interviews/export/json Retrieve JSON file of interviews

Path Parameters

Example Request

Response Schema

Response


6. Create Webhook

POST /create Create a new webhook configuration to receive real-time notifications about interview events.

Request Body

Example Request

Response

Request Schema


7. Get Webhook

GET /fetch/{webhook_id} Retrieve a webhook configuration by its ID.

Path Parameters

Example Request

Response


8. Get All Webhooks

GET /all Retrieve webhooks with optional filters.

Query Parameters

9. Deactivate Webhook

POST /deactivate/{webhook_id} Deactivate a webhook.

Path Parameters


10. Ingest Single Candidate

POST /ingest/x/{url_key} Ingest a single candidate into the system using a posting-specific url_key.

Spectial Note

  • retake: false (default) - Returns existing interview if candidate already has one for this posting
  • retake: true - Always creates a new interview, even if candidate already has one

Path Parameters

Example Request

Response Schema

Each interview details:

Response


11. Bulk Ingest Candidates

POST /ingest/x/bulk/{url_key} Ingest multiple candidates into the system in a single request, using a posting-specific url_key.

Spectial Note

  • retake: false (default) - Returns existing interview if candidate already has one for this posting
  • retake: true - Always creates a new interview, even if candidate already has one

Path Parameters

Example Request

Response Schema

Each interview details:

Response


Webhook Event Types

The API supports the following webhook event types:

Error Handling

All API endpoints return structured error responses:

Support

For API support and questions:
Last updated: Jun 17, 2026