curl --request POST \
--url https://api.baselayer.com/criminal_checks \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"check_type": "instant_criminal",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "123-45-6789",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"primary_address": "123 Main St, Springfield, IL 62704",
"additional_addresses": [
"456 Test Blvd, Anytown, GA 44556",
"456 Oak Ave, Chicago, IL 60601"
],
"reference_id": "Check1234",
"source_states": [
"CA",
"IL"
]
}
'import requests
url = "https://api.baselayer.com/criminal_checks"
payload = {
"check_type": "instant_criminal",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "123-45-6789",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"primary_address": "123 Main St, Springfield, IL 62704",
"additional_addresses": ["456 Test Blvd, Anytown, GA 44556", "456 Oak Ave, Chicago, IL 60601"],
"reference_id": "Check1234",
"source_states": ["CA", "IL"]
}
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({
check_type: 'instant_criminal',
first_name: 'John',
last_name: 'Smith',
date_of_birth: '1990-01-15',
ssn: '123-45-6789',
middle_name: 'Mary Louise',
phone_number: '+14155552671',
primary_address: '123 Main St, Springfield, IL 62704',
additional_addresses: ['456 Test Blvd, Anytown, GA 44556', '456 Oak Ave, Chicago, IL 60601'],
reference_id: 'Check1234',
source_states: ['CA', 'IL']
})
};
fetch('https://api.baselayer.com/criminal_checks', 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/criminal_checks",
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([
'check_type' => 'instant_criminal',
'first_name' => 'John',
'last_name' => 'Smith',
'date_of_birth' => '1990-01-15',
'ssn' => '123-45-6789',
'middle_name' => 'Mary Louise',
'phone_number' => '+14155552671',
'primary_address' => '123 Main St, Springfield, IL 62704',
'additional_addresses' => [
'456 Test Blvd, Anytown, GA 44556',
'456 Oak Ave, Chicago, IL 60601'
],
'reference_id' => 'Check1234',
'source_states' => [
'CA',
'IL'
]
]),
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/criminal_checks"
payload := strings.NewReader("{\n \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\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/criminal_checks")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/criminal_checks")
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 \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "95853639-eb23-4329-9b92-ddca3eabaaba",
"created_at": "2026-08-31T10:31:07.766137",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "XXXXX1234",
"check_type": "instant_criminal",
"results": [
{
"category": "arrest",
"person": {
"addresses": [
{
"city": "Anytown",
"state": "CA",
"street": "123 Main St",
"zip": "12345"
}
],
"date_of_birth": "1990-01-15",
"date_precision": "FULL",
"doc_number": "1234567890",
"ethnicity": "Hispanic-American",
"eye_color": "HAZ",
"first_name": "John",
"gender": "M",
"hair_color": "BRN",
"height": "601",
"last_name": "Smith",
"middle_name": "Michael",
"name_aliases": [
"Mohn Jichael Smith"
],
"race": "W",
"weight": "180"
},
"source": {
"category": "arrest",
"name": "KY Franklin County Inmates",
"county": "Franklin",
"county_fips_code": "17031",
"state": "CA"
},
"cases": [
{
"case_number": "2025-99999",
"type": "<string>",
"status": "<string>",
"file_date": "2025-01-01",
"file_date_precision": "FULL",
"arresting_agency": "Franklin County Sheriff",
"arrest_date": "2025-01-01",
"arrest_date_precision": "FULL",
"court_name": "Franklin County Circuit Court",
"court_county": "Franklin",
"identity_match_confidence_level": "high",
"charges": [
{
"description": "SHOPLIFTING",
"offense_date": "2025-01-01",
"offense_date_precision": "ONLY_YEAR",
"legal_code": "433.234",
"type": "felony",
"category": "Criminal Intent",
"subcategory": "Accessory",
"subsubcategory": "SHOPLIFTING",
"record_date": "2025-01-01",
"record_date_precision": "ONLY_YEAR",
"city": "Indian Hills",
"county": "Jefferson",
"state": "CA",
"sentences": [
{
"conviction_date": "2025-01-01",
"conviction_date_precision": "FULL",
"details": "fine, 1D"
}
],
"dispositions": [
{
"disposition_type": "Conviction",
"disposition": "GLT",
"disposition_date": "2025-01-01",
"disposition_date_precision": "FULL"
}
]
}
]
}
]
}
],
"updated_at": "2026-08-31T10:31:07.766150",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"email": "john.doe@example.com",
"primary_address": {
"city": "Anytown",
"state": "CA",
"street": "123 Main St",
"zip": "12345"
},
"additional_addresses": [
{
"city": "Anytown",
"state": "CA",
"street": "456 Test Blvd",
"zip": "12345"
}
],
"reference_id": "Check1234"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create Criminal Check
Create a new criminal check.
curl --request POST \
--url https://api.baselayer.com/criminal_checks \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"check_type": "instant_criminal",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "123-45-6789",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"primary_address": "123 Main St, Springfield, IL 62704",
"additional_addresses": [
"456 Test Blvd, Anytown, GA 44556",
"456 Oak Ave, Chicago, IL 60601"
],
"reference_id": "Check1234",
"source_states": [
"CA",
"IL"
]
}
'import requests
url = "https://api.baselayer.com/criminal_checks"
payload = {
"check_type": "instant_criminal",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "123-45-6789",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"primary_address": "123 Main St, Springfield, IL 62704",
"additional_addresses": ["456 Test Blvd, Anytown, GA 44556", "456 Oak Ave, Chicago, IL 60601"],
"reference_id": "Check1234",
"source_states": ["CA", "IL"]
}
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({
check_type: 'instant_criminal',
first_name: 'John',
last_name: 'Smith',
date_of_birth: '1990-01-15',
ssn: '123-45-6789',
middle_name: 'Mary Louise',
phone_number: '+14155552671',
primary_address: '123 Main St, Springfield, IL 62704',
additional_addresses: ['456 Test Blvd, Anytown, GA 44556', '456 Oak Ave, Chicago, IL 60601'],
reference_id: 'Check1234',
source_states: ['CA', 'IL']
})
};
fetch('https://api.baselayer.com/criminal_checks', 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/criminal_checks",
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([
'check_type' => 'instant_criminal',
'first_name' => 'John',
'last_name' => 'Smith',
'date_of_birth' => '1990-01-15',
'ssn' => '123-45-6789',
'middle_name' => 'Mary Louise',
'phone_number' => '+14155552671',
'primary_address' => '123 Main St, Springfield, IL 62704',
'additional_addresses' => [
'456 Test Blvd, Anytown, GA 44556',
'456 Oak Ave, Chicago, IL 60601'
],
'reference_id' => 'Check1234',
'source_states' => [
'CA',
'IL'
]
]),
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/criminal_checks"
payload := strings.NewReader("{\n \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\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/criminal_checks")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/criminal_checks")
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 \"check_type\": \"instant_criminal\",\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"date_of_birth\": \"1990-01-15\",\n \"ssn\": \"123-45-6789\",\n \"middle_name\": \"Mary Louise\",\n \"phone_number\": \"+14155552671\",\n \"primary_address\": \"123 Main St, Springfield, IL 62704\",\n \"additional_addresses\": [\n \"456 Test Blvd, Anytown, GA 44556\",\n \"456 Oak Ave, Chicago, IL 60601\"\n ],\n \"reference_id\": \"Check1234\",\n \"source_states\": [\n \"CA\",\n \"IL\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "95853639-eb23-4329-9b92-ddca3eabaaba",
"created_at": "2026-08-31T10:31:07.766137",
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1990-01-15",
"ssn": "XXXXX1234",
"check_type": "instant_criminal",
"results": [
{
"category": "arrest",
"person": {
"addresses": [
{
"city": "Anytown",
"state": "CA",
"street": "123 Main St",
"zip": "12345"
}
],
"date_of_birth": "1990-01-15",
"date_precision": "FULL",
"doc_number": "1234567890",
"ethnicity": "Hispanic-American",
"eye_color": "HAZ",
"first_name": "John",
"gender": "M",
"hair_color": "BRN",
"height": "601",
"last_name": "Smith",
"middle_name": "Michael",
"name_aliases": [
"Mohn Jichael Smith"
],
"race": "W",
"weight": "180"
},
"source": {
"category": "arrest",
"name": "KY Franklin County Inmates",
"county": "Franklin",
"county_fips_code": "17031",
"state": "CA"
},
"cases": [
{
"case_number": "2025-99999",
"type": "<string>",
"status": "<string>",
"file_date": "2025-01-01",
"file_date_precision": "FULL",
"arresting_agency": "Franklin County Sheriff",
"arrest_date": "2025-01-01",
"arrest_date_precision": "FULL",
"court_name": "Franklin County Circuit Court",
"court_county": "Franklin",
"identity_match_confidence_level": "high",
"charges": [
{
"description": "SHOPLIFTING",
"offense_date": "2025-01-01",
"offense_date_precision": "ONLY_YEAR",
"legal_code": "433.234",
"type": "felony",
"category": "Criminal Intent",
"subcategory": "Accessory",
"subsubcategory": "SHOPLIFTING",
"record_date": "2025-01-01",
"record_date_precision": "ONLY_YEAR",
"city": "Indian Hills",
"county": "Jefferson",
"state": "CA",
"sentences": [
{
"conviction_date": "2025-01-01",
"conviction_date_precision": "FULL",
"details": "fine, 1D"
}
],
"dispositions": [
{
"disposition_type": "Conviction",
"disposition": "GLT",
"disposition_date": "2025-01-01",
"disposition_date_precision": "FULL"
}
]
}
]
}
]
}
],
"updated_at": "2026-08-31T10:31:07.766150",
"middle_name": "Mary Louise",
"phone_number": "+14155552671",
"email": "john.doe@example.com",
"primary_address": {
"city": "Anytown",
"state": "CA",
"street": "123 Main St",
"zip": "12345"
},
"additional_addresses": [
{
"city": "Anytown",
"state": "CA",
"street": "456 Test Blvd",
"zip": "12345"
}
],
"reference_id": "Check1234"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Body
Create a criminal check request.
The type of criminal check to run.
instant_criminal, sex_offender_registry "instant_criminal"
The first name of the person
2"John"
"Jane"
The last name of the person
2"Smith"
"Doe"
The date of birth of the person. Cannot be in the future.
"1990-01-15"
The social security number of the person
9 - 11^\d{3}-?\d{2}-?\d{4}$"123-45-6789"
The middle name of the person
"Mary Louise"
Phone number in E.164 format (US numbers start with +1).
^\+[1-9]\d{1,14}$"+14155552671"
The primary address to search for criminal records
"123 Main St, Springfield, IL 62704"
A list of additional addresses to search
[ "456 Test Blvd, Anytown, GA 44556", "456 Oak Ave, Chicago, IL 60601" ]
An optional reference ID to associate with the request. Limited to alphanumeric characters and hyphens.
64^[a-zA-Z0-9_-]{1,64}$"Check1234"
A list of states criminal records must originate from. When supplied, records are filtered to the specified states only. Records without a source state are always included.
AL, AK, AZ, AR, CA, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, PR, VI, AE, AA, AP, GU, AS ["CA", "IL"]
Response
Successful Response
The unique identifier of the criminal check.
"95853639-eb23-4329-9b92-ddca3eabaaba"
The date and time when the criminal check was created.
"2026-08-31T10:31:07.766137"
The first name of the person.
"John"
The last name of the person.
"Smith"
The date of birth of the person.
"1990-01-15"
The social security number of the person, masked up to the final four digits
"XXXXX1234"
The type of criminal check that was run.
instant_criminal, sex_offender_registry "instant_criminal"
Array of criminal records; empty when none are found.
Show child attributes
Show child attributes
The date and time when the criminal check was last updated.
"2026-08-31T10:31:07.766150"
The middle name of the person.
"Mary Louise"
The phone number of the person in E.164 format.
"+14155552671"
The email address of the person.
"john.doe@example.com"
The primary address of the person.
Show child attributes
Show child attributes
{ "city": "Anytown", "state": "CA", "street": "123 Main St", "zip": "12345" }
A list of additional addresses of the person.
Show child attributes
Show child attributes
[ { "city": "Anytown", "state": "CA", "street": "456 Test Blvd", "zip": "12345" } ]
The reference ID associated with this request.
64"Check1234"