Get person
curl --request GET \
--url https://sandbox-api.ignitehealth.com/v1/persons/{personId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.ignitehealth.com/v1/persons/{personId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.ignitehealth.com/v1/persons/{personId}', 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://sandbox-api.ignitehealth.com/v1/persons/{personId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox-api.ignitehealth.com/v1/persons/{personId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.ignitehealth.com/v1/persons/{personId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.ignitehealth.com/v1/persons/{personId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"asOf": "2026-10-13T15:00:00Z",
"person": {
"id": "44444444-4444-4444-8444-444444444444",
"employments": [
{
"id": "11111111-1111-4111-8111-111111111111",
"companyId": "company_example",
"personId": "44444444-4444-4444-8444-444444444444",
"externalIds": [
{
"system": "payroll_system",
"system_id": "PAYROLL-001"
}
],
"demographics": {
"firstName": "Avery",
"lastName": "Morgan",
"dateOfBirth": "1990-04-12",
"gender": null
},
"contact": {
"email": "avery.morgan@example.com",
"phone": "+13125550100",
"address": {
"line1": "100 Example Street",
"line2": null,
"city": "Chicago",
"state": "IL",
"postalCode": "60601"
}
},
"membership": {
"status": "active",
"invitation": null
},
"participation": {
"decision": "opt_in",
"decidedAt": "2026-09-25T15:00:00Z"
},
"coverage": {
"status": "enrolled",
"startsAt": "2026-10-01T00:00:00Z",
"endsAt": null,
"planTier": "example_tier"
},
"createdAt": "2026-09-20T15:00:00Z",
"updatedAt": "2026-10-12T15:00:00Z"
}
],
"createdAt": "2026-09-20T15:00:00Z",
"updatedAt": "2026-10-12T15:00:00Z"
}
}Coming soon
Get person
Draft contract for retrieving one person and their authorized employments.
GET
/
v1
/
persons
/
{personId}
Get person
curl --request GET \
--url https://sandbox-api.ignitehealth.com/v1/persons/{personId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.ignitehealth.com/v1/persons/{personId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.ignitehealth.com/v1/persons/{personId}', 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://sandbox-api.ignitehealth.com/v1/persons/{personId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox-api.ignitehealth.com/v1/persons/{personId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.ignitehealth.com/v1/persons/{personId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.ignitehealth.com/v1/persons/{personId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"asOf": "2026-10-13T15:00:00Z",
"person": {
"id": "44444444-4444-4444-8444-444444444444",
"employments": [
{
"id": "11111111-1111-4111-8111-111111111111",
"companyId": "company_example",
"personId": "44444444-4444-4444-8444-444444444444",
"externalIds": [
{
"system": "payroll_system",
"system_id": "PAYROLL-001"
}
],
"demographics": {
"firstName": "Avery",
"lastName": "Morgan",
"dateOfBirth": "1990-04-12",
"gender": null
},
"contact": {
"email": "avery.morgan@example.com",
"phone": "+13125550100",
"address": {
"line1": "100 Example Street",
"line2": null,
"city": "Chicago",
"state": "IL",
"postalCode": "60601"
}
},
"membership": {
"status": "active",
"invitation": null
},
"participation": {
"decision": "opt_in",
"decidedAt": "2026-09-25T15:00:00Z"
},
"coverage": {
"status": "enrolled",
"startsAt": "2026-10-01T00:00:00Z",
"endsAt": null,
"planTier": "example_tier"
},
"createdAt": "2026-09-20T15:00:00Z",
"updatedAt": "2026-10-12T15:00:00Z"
}
],
"createdAt": "2026-09-20T15:00:00Z",
"updatedAt": "2026-10-12T15:00:00Z"
}
}Coming soon — unavailable in sandbox and production. The code sample uses the current Partner API host for illustration; the final hostname and contract are undecided. Do not send requests to this route.
Each
employments entry would be a complete Employee object in a credential-authorized company, including top-level participation and coverage. Person-level demographics or statuses would not be selected; those values stay within each employment. Person updatedAt would not track nested employment changes.
The proposal calls for HTTP 404 when the Person does not exist or has no employment in a credential-authorized company. Response-size limits for complete employment arrays remain undecided.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Person UUID.
Query Parameters
Repeat for each system; selects which external IDs are returned.