Verify that a company is registered with a US state’s Secretary of State office. The check returns registration details including company name, type, registration date, registered agent, and (depending on the state) officer information.
Step 1: Create an applicant
Create an applicant to associate the verification with.
export API_KEY=<YOUR_API_KEY>
curl -H "ds-api-token: $API_KEY" \
-H "Content-Type: application/json" \
-X POST "https://api.dataspike.io/api/v3/applicants" \
--data '{"external_id": "company-456"}'
Response:{
"id": "01827ed4-c928-7a3c-9a30-7ab7cc169d11"
}
import requests
API_KEY = "<YOUR_API_KEY>"
BASE = "https://api.dataspike.io"
HEADERS = {"ds-api-token": API_KEY, "Content-Type": "application/json"}
resp = requests.post(f"{BASE}/api/v3/applicants", headers=HEADERS, json={"external_id": "company-456"})
applicant_id = resp.json()["id"]
Step 2: Submit registry check request
Provide the company name and state. You can also search by SOS ID (Secretary of State filing number) if you have it.
APPLICANT_ID="01827ed4-c928-7a3c-9a30-7ab7cc169d11"
curl -H "ds-api-token: $API_KEY" \
-H "Content-Type: application/json" \
-X POST "https://api.dataspike.io/api/v4/kyb/$APPLICANT_ID/us-registry-check" \
--data '{
"company_name": "Acme Holdings Inc.",
"state": "delaware"
}'
Response (HTTP 202):{
"request_id": "019c9e79-4d64-73e1-9f30-5374f0f57975",
"status": "initial"
}
resp = requests.post(
f"{BASE}/api/v4/kyb/{applicant_id}/us-registry-check",
headers=HEADERS,
json={"company_name": "Acme Holdings Inc.", "state": "delaware"},
)
request_id = resp.json()["request_id"]
Request body
| Field | Type | Required | Description |
|---|
company_name | string | Conditional | Company name to search for. Required if sos_id is not provided. |
state | string | Yes | US state name (e.g. delaware, california, new york) |
sos_id | string | Conditional | Secretary of State filing number. Required if company_name is not provided. |
Step 3: Poll for the result
The registry check typically takes 10-20 seconds. Poll the result endpoint until the status changes from initial.
REQUEST_ID="019c9e79-4d64-73e1-9f30-5374f0f57975"
curl -H "ds-api-token: $API_KEY" \
"https://api.dataspike.io/api/v4/kyb/result/$REQUEST_ID"
Example response (verified):{
"request_id": "019c9e79-4d64-73e1-9f30-5374f0f57975",
"status": "verified",
"verification_type": "us_company_registry_check",
"response_data": {
"results": [
{
"sos_id": "7654321",
"base_info": {
"company_name": "ACME HOLDINGS INC.",
"company_type": "Corporation",
"jurisdiction": "DE",
"registration_date": "3/15/2022",
"registration_number": "7654321"
},
"registered_agent": {
"name": "REGISTERED AGENTS INC.",
"address": {
"city": "DOVER",
"street": "850 NEW BURTON ROAD SUITE 201",
"country": "US",
"postal_code": "19904",
"state_or_province": "DE"
}
},
"state_of_formation": "DE"
}
]
},
"created_at": "2026-02-27T09:41:15.822681Z",
"completed_at": "2026-02-27T09:41:30.583502Z"
}
import time
while True:
resp = requests.get(f"{BASE}/api/v4/kyb/result/{request_id}", headers=HEADERS)
result = resp.json()
if result["status"] != "initial":
break
time.sleep(5)
print(result)
Response data
When the check returns verified, the response_data.results array contains one or more matching company records:
| Field | Description |
|---|
sos_id | Secretary of State filing number |
base_info.company_name | Registered company name |
base_info.company_type | Entity type (Corporation, LLC, etc.) |
base_info.jurisdiction | State of registration |
base_info.registration_date | Date of formation/registration |
base_info.registration_number | State filing number |
registered_agent.name | Registered agent name |
registered_agent.address | Registered agent address |
state_of_formation | State where the company was formed |
The available data varies by state. Some states provide detailed officer and director information, while others only return basic registration details.
Result statuses
| Status | Meaning |
|---|
verified | Company found in the state registry |
not_verified | No matching company found |
failed | An error occurred during the check |