curl --request POST \
--url https://api.baselayer.com/person_searches \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"first_name": "John",
"last_name": "Doe",
"ssn": "123456789",
"options": [
"Order.Litigations"
],
"middle_name": "Michael",
"phone_number": "+14013059855",
"email": "john.doe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"address": "123 Main St, Anytown, CA 12345",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"reference_id": "Search1234"
}
'import requests
url = "https://api.baselayer.com/person_searches"
payload = {
"first_name": "John",
"last_name": "Doe",
"ssn": "123456789",
"options": ["Order.Litigations"],
"middle_name": "Michael",
"phone_number": "+14013059855",
"email": "john.doe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"address": "123 Main St, Anytown, CA 12345",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"reference_id": "Search1234"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'John',
last_name: 'Doe',
ssn: '123456789',
options: ['Order.Litigations'],
middle_name: 'Michael',
phone_number: '+14013059855',
email: 'john.doe@example.com',
date_of_birth: '1990-01-15',
gender: 'M',
address: '123 Main St, Anytown, CA 12345',
marital_status: 'married',
suffix: 'Jr.',
title: 'Mr.',
reference_id: 'Search1234'
})
};
fetch('https://api.baselayer.com/person_searches', 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.baselayer.com/person_searches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'John',
'last_name' => 'Doe',
'ssn' => '123456789',
'options' => [
'Order.Litigations'
],
'middle_name' => 'Michael',
'phone_number' => '+14013059855',
'email' => 'john.doe@example.com',
'date_of_birth' => '1990-01-15',
'gender' => 'M',
'address' => '123 Main St, Anytown, CA 12345',
'marital_status' => 'married',
'suffix' => 'Jr.',
'title' => 'Mr.',
'reference_id' => 'Search1234'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/person_searches"
payload := strings.NewReader("{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.baselayer.com/person_searches")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/person_searches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "PENDING",
"created_at": "2026-08-31T10:31:07.839963",
"person": {
"id": "3605eec5-940f-4d54-9d48-da1cffe940ac",
"first_name": "John",
"last_name": "Doe",
"ssn": "XXXXX1234",
"created_at": "2025-01-15T12:00:00Z",
"middle_name": "Michael",
"phone_number": "+17075489914",
"email": "johndoe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"updated_at": "2025-01-15T12:00:00Z",
"dockets": [],
"liens": [],
"watchlist_hits": []
},
"updated_at": "2026-08-31T10:31:07.839973",
"reference_id": "Search1234",
"tin_matched": true,
"error": "RuntimeError The Search could not be completed.",
"warnings": "IRS Validation is unavailable."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create Person Search
curl --request POST \
--url https://api.baselayer.com/person_searches \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"first_name": "John",
"last_name": "Doe",
"ssn": "123456789",
"options": [
"Order.Litigations"
],
"middle_name": "Michael",
"phone_number": "+14013059855",
"email": "john.doe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"address": "123 Main St, Anytown, CA 12345",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"reference_id": "Search1234"
}
'import requests
url = "https://api.baselayer.com/person_searches"
payload = {
"first_name": "John",
"last_name": "Doe",
"ssn": "123456789",
"options": ["Order.Litigations"],
"middle_name": "Michael",
"phone_number": "+14013059855",
"email": "john.doe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"address": "123 Main St, Anytown, CA 12345",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"reference_id": "Search1234"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: 'John',
last_name: 'Doe',
ssn: '123456789',
options: ['Order.Litigations'],
middle_name: 'Michael',
phone_number: '+14013059855',
email: 'john.doe@example.com',
date_of_birth: '1990-01-15',
gender: 'M',
address: '123 Main St, Anytown, CA 12345',
marital_status: 'married',
suffix: 'Jr.',
title: 'Mr.',
reference_id: 'Search1234'
})
};
fetch('https://api.baselayer.com/person_searches', 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.baselayer.com/person_searches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => 'John',
'last_name' => 'Doe',
'ssn' => '123456789',
'options' => [
'Order.Litigations'
],
'middle_name' => 'Michael',
'phone_number' => '+14013059855',
'email' => 'john.doe@example.com',
'date_of_birth' => '1990-01-15',
'gender' => 'M',
'address' => '123 Main St, Anytown, CA 12345',
'marital_status' => 'married',
'suffix' => 'Jr.',
'title' => 'Mr.',
'reference_id' => 'Search1234'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/person_searches"
payload := strings.NewReader("{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.baselayer.com/person_searches")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/person_searches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"ssn\": \"123456789\",\n \"options\": [\n \"Order.Litigations\"\n ],\n \"middle_name\": \"Michael\",\n \"phone_number\": \"+14013059855\",\n \"email\": \"john.doe@example.com\",\n \"date_of_birth\": \"1990-01-15\",\n \"gender\": \"M\",\n \"address\": \"123 Main St, Anytown, CA 12345\",\n \"marital_status\": \"married\",\n \"suffix\": \"Jr.\",\n \"title\": \"Mr.\",\n \"reference_id\": \"Search1234\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "PENDING",
"created_at": "2026-08-31T10:31:07.839963",
"person": {
"id": "3605eec5-940f-4d54-9d48-da1cffe940ac",
"first_name": "John",
"last_name": "Doe",
"ssn": "XXXXX1234",
"created_at": "2025-01-15T12:00:00Z",
"middle_name": "Michael",
"phone_number": "+17075489914",
"email": "johndoe@example.com",
"date_of_birth": "1990-01-15",
"gender": "M",
"marital_status": "married",
"suffix": "Jr.",
"title": "Mr.",
"updated_at": "2025-01-15T12:00:00Z",
"dockets": [],
"liens": [],
"watchlist_hits": []
},
"updated_at": "2026-08-31T10:31:07.839973",
"reference_id": "Search1234",
"tin_matched": true,
"error": "RuntimeError The Search could not be completed.",
"warnings": "IRS Validation is unavailable."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Headers
Request execution preference (RFC 7240). Use respond-async for asynchronous execution, wait=N to specify a synchronous timeout hint in seconds, or priority=low to route the task to the low-priority queue.
"respond-async"
Body
Represents a person search request.
The first name of the person to search for.
2 - 255"John"
"Jane"
The last name of the person to search for.
2 - 255"Doe"
"Smith"
The full social security number of the person to search for.
9"123456789"
Options controlling which searches to run. At least one is required. Use ['Order.Litigations'] for civil dockets only, ['Order.Bankruptcy'] for bankruptcy only, or both for combined docket search.
1Order.Litigations, Order.Bankruptcy, Order.Liens, Order.Scra, Order.Ofac, Order.Pep, Order.TinMatching, Order.Mla ["Order.Litigations"]
["Order.Bankruptcy"]
["Order.Litigations", "Order.Bankruptcy"]
The middle name of the person to search for.
1 - 255"Michael"
The phone number of the person to search for. Area code is mandatory.
12 - 30^\+(?:[1-9]\d{0,2})(?:[ -]?\d{1,4}){1,4}(?:\s?(?:x|ext\.?)\s?\d{1,10})?$"+14013059855"
The email address of the person to search for.
5 - 255^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"john.doe@example.com"
The date of birth of the person to search for.
"1990-01-15"
The gender of the person to search for.
M, F "M"
The address of the person to search for. The state provided in this address will be used for the liens search, if selected.
1"123 Main St, Anytown, CA 12345"
The marital status of the person to search for.
married, single, divorced, widowed, separated, domestic_partner, civil_union, other "married"
The suffix of the person to search for.
"Jr."
The title of the person to search for.
"Mr."
An optional reference ID to associate with the search request.
128"Search1234"
Response
Response
Represents a person search response.
The unique identifier of the search.
The current state of the search.
PENDING, EXECUTING, COMPLETED, FAILED, CANCELLED The datetime the search was created.
"2026-08-31T10:31:07.839963"
The person to search for.
Show child attributes
Show child attributes
The datetime the search was updated at (generally when the search completed).
"2026-08-31T10:31:07.839973"
The reference ID associated with the search.
"Search1234"
Whether the SSN for this person search matches with the name provided
true
Any errors that occurred.
"RuntimeError The Search could not be completed."
Any warnings that occurred.
"IRS Validation is unavailable."