curl --request POST \
--url https://api.baselayer.com/tin_verifications \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Acme Corporation",
"tin": "123456789",
"address": "123 Main St, Anytown, USA"
}
'import requests
url = "https://api.baselayer.com/tin_verifications"
payload = {
"name": "Acme Corporation",
"tin": "123456789",
"address": "123 Main St, Anytown, USA"
}
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({
name: 'Acme Corporation',
tin: '123456789',
address: '123 Main St, Anytown, USA'
})
};
fetch('https://api.baselayer.com/tin_verifications', 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/tin_verifications",
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([
'name' => 'Acme Corporation',
'tin' => '123456789',
'address' => '123 Main St, Anytown, USA'
]),
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/tin_verifications"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\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/tin_verifications")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/tin_verifications")
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 \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\n}"
response = http.request(request)
puts response.read_body{
"id": "f5067592-dbb8-4405-a557-6d5056514cae",
"state": "COMPLETED",
"name": "Acme Corporation",
"tin": "123456789",
"created_at": "2026-08-31T10:31:07.816900",
"address": "123 Main St, Anytown, USA",
"tin_matched": true,
"warnings": [
"IRS Validation is unavailable."
],
"tin_match_type": "SSN"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Submit Tin Verification
Search for a TIN (Tax Identification Number) against IRS records by name.
Note: An error will be raised if the IRS validation service is experiencing an outage. Check status.baselayer.com for service updates.
curl --request POST \
--url https://api.baselayer.com/tin_verifications \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Acme Corporation",
"tin": "123456789",
"address": "123 Main St, Anytown, USA"
}
'import requests
url = "https://api.baselayer.com/tin_verifications"
payload = {
"name": "Acme Corporation",
"tin": "123456789",
"address": "123 Main St, Anytown, USA"
}
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({
name: 'Acme Corporation',
tin: '123456789',
address: '123 Main St, Anytown, USA'
})
};
fetch('https://api.baselayer.com/tin_verifications', 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/tin_verifications",
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([
'name' => 'Acme Corporation',
'tin' => '123456789',
'address' => '123 Main St, Anytown, USA'
]),
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/tin_verifications"
payload := strings.NewReader("{\n \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\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/tin_verifications")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/tin_verifications")
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 \"name\": \"Acme Corporation\",\n \"tin\": \"123456789\",\n \"address\": \"123 Main St, Anytown, USA\"\n}"
response = http.request(request)
puts response.read_body{
"id": "f5067592-dbb8-4405-a557-6d5056514cae",
"state": "COMPLETED",
"name": "Acme Corporation",
"tin": "123456789",
"created_at": "2026-08-31T10:31:07.816900",
"address": "123 Main St, Anytown, USA",
"tin_matched": true,
"warnings": [
"IRS Validation is unavailable."
],
"tin_match_type": "SSN"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Body
Request model for TIN verification operations.
This model defines the structure for TIN verification API requests.
The name of the business to verify.
255"Acme Corporation"
The TIN/EIN to verify.
9"123456789"
The address of the business to verify.
500"123 Main St, Anytown, USA"
Response
Successful Response
Response model for TIN verification data.
This model defines the structure for TIN verification API responses.
The unique identifier of the TIN verification request.
"f5067592-dbb8-4405-a557-6d5056514cae"
The status of the TIN verification request.
PENDING, EXECUTING, COMPLETED, FAILED, CANCELLED "COMPLETED"
The name inputted in the search.
"Acme Corporation"
The TIN inputted in the search.
9"123456789"
The date and time when the TIN verification request was created.
"2026-08-31T10:31:07.816900"
The address inputted in the search.
500"123 Main St, Anytown, USA"
Indicates whether the inputted TIN/EIN was a match, per the IRS.
true
Any warnings that occurred.
["IRS Validation is unavailable."]
The type of match that occurred.
SSN, EIN, UNKNOWN "SSN"