Get an interviewer
curl --request GET \
--url https://api.heymilo.ai/api/v2/postings/{posting_id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.heymilo.ai/api/v2/postings/{posting_id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.heymilo.ai/api/v2/postings/{posting_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.heymilo.ai/api/v2/postings/{posting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.heymilo.ai/api/v2/postings/{posting_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.heymilo.ai/api/v2/postings/{posting_id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heymilo.ai/api/v2/postings/{posting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "13D77095",
"company_id": "comp_abc123",
"title": "Senior Software Engineer",
"description": "We are looking for a senior software engineer...",
"status": "active",
"finalized": true,
"archived": false,
"test_posting": false,
"object": "posting",
"name": "senior-software-engineer",
"language": "en",
"interviewer_name": "Sarah",
"workflow": [
{
"type": "web_interview",
"order": 1,
"id": "agent_vi_001",
"config": {}
}
],
"urls": {
"candidate_url": "https://candidates.heymilo.io/acme/senior-engineer",
"ingestion_url_key": "ibURejyPMSlw6de0OZUdoxyoXTgWO78ey2NUo96EOG1gY",
"review_url": "https://admin.heymilo.ai/w/ABC123/lab2/POST_ID/1-details"
},
"deadline": 1775174400,
"redirect_url": "https://acme.com/thank-you",
"scheduling_url": "https://cal.com/acme/interview",
"max_retakes": 1,
"allow_sms_comms": false,
"instructions": "<string>",
"company_overview": "<string>",
"job_overview": "<string>",
"interview_process_overview": "<string>",
"company_overview_delivery_mode": "<string>",
"job_overview_delivery_mode": "<string>",
"interview_process_overview_delivery_mode": "<string>",
"phone_number_id": "<string>",
"sender_email_id": "<string>",
"email_template_group_id": "<string>",
"design_template_group_id": "<string>",
"retake_cooldown_days": 123,
"email_report_to_candidate": false,
"ats_metadata": {
"ats_job_id": "WK-12345",
"ats_name": "workable",
"pending_activation": true,
"source": "job_sync"
},
"metadata": {
"external_id": "ats_12345",
"source": "workday"
},
"team_ids": [
"team_abc123"
],
"created_at": 1739612400,
"updated_at": 1739617200
},
"meta": {}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}Get an interviewer
Retrieve the full details of a specific interviewer by ID.
GET
/
api
/
v2
/
postings
/
{posting_id}
Get an interviewer
curl --request GET \
--url https://api.heymilo.ai/api/v2/postings/{posting_id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.heymilo.ai/api/v2/postings/{posting_id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.heymilo.ai/api/v2/postings/{posting_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.heymilo.ai/api/v2/postings/{posting_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.heymilo.ai/api/v2/postings/{posting_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.heymilo.ai/api/v2/postings/{posting_id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heymilo.ai/api/v2/postings/{posting_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "13D77095",
"company_id": "comp_abc123",
"title": "Senior Software Engineer",
"description": "We are looking for a senior software engineer...",
"status": "active",
"finalized": true,
"archived": false,
"test_posting": false,
"object": "posting",
"name": "senior-software-engineer",
"language": "en",
"interviewer_name": "Sarah",
"workflow": [
{
"type": "web_interview",
"order": 1,
"id": "agent_vi_001",
"config": {}
}
],
"urls": {
"candidate_url": "https://candidates.heymilo.io/acme/senior-engineer",
"ingestion_url_key": "ibURejyPMSlw6de0OZUdoxyoXTgWO78ey2NUo96EOG1gY",
"review_url": "https://admin.heymilo.ai/w/ABC123/lab2/POST_ID/1-details"
},
"deadline": 1775174400,
"redirect_url": "https://acme.com/thank-you",
"scheduling_url": "https://cal.com/acme/interview",
"max_retakes": 1,
"allow_sms_comms": false,
"instructions": "<string>",
"company_overview": "<string>",
"job_overview": "<string>",
"interview_process_overview": "<string>",
"company_overview_delivery_mode": "<string>",
"job_overview_delivery_mode": "<string>",
"interview_process_overview_delivery_mode": "<string>",
"phone_number_id": "<string>",
"sender_email_id": "<string>",
"email_template_group_id": "<string>",
"design_template_group_id": "<string>",
"retake_cooldown_days": 123,
"email_report_to_candidate": false,
"ats_metadata": {
"ats_job_id": "WK-12345",
"ats_name": "workable",
"pending_activation": true,
"source": "job_sync"
},
"metadata": {
"external_id": "ats_12345",
"source": "workday"
},
"team_ids": [
"team_abc123"
],
"created_at": 1739612400,
"updated_at": 1739617200
},
"meta": {}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": {
"type": "invalid_request_error",
"code": "validation_error",
"message": "The request body failed validation",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "invalid_param",
"message": "title must be between 3 and 200 characters",
"param": "title"
}
]
}
}Authorizations
API key for authentication. Pass your key in the X-API-KEY header.
Path Parameters
Response
Successful Response
A job posting with its full agentic workflow configuration.
A posting represents a complete hiring pipeline — it defines the job, the AI agents involved, and how candidates progress through each screening step.
Show child attributes
Show child attributes
Optional metadata. Shape varies by endpoint.
Was this page helpful?
⌘I