Compliance data API
for AI agents
500+ verified compliance obligations with legal citations, deadlines, and penalties. Match obligations to any company profile in a single API call.
https://compliancesingularity.com/api/v1
Authentication
Free endpoints require no authentication. Paid endpoints require an API key passed as a Bearer token in the Authorization header.
Authorization: Bearer cs_live_your_api_key_here
API keys are prefixed with cs_live_ for production and cs_test_ for sandbox. Create keys from your account dashboard or via the Create API Key endpoint.
Quick Start
Get your API key
Sign up for a free account and generate an API key from the Settings page. The free tier includes 100 calls per day.
Make your first call
List all compliance obligations or search by jurisdiction:
curl https://compliancesingularity.com/api/v1/obligations \
-G \
-d jurisdiction=California \
-d category=Tax \
-d limit=5
import requests
resp = requests.get(
"https://compliancesingularity.com/api/v1/obligations",
params={
"jurisdiction": "California",
"category": "Tax",
"limit": 5
}
)
data = resp.json()
print(f"Found {data['total']} obligations")
const params = new URLSearchParams({
jurisdiction: "California",
category: "Tax",
limit: 5
});
const resp = await fetch(
`https://compliancesingularity.com/api/v1/obligations?${params}`
);
const data = await resp.json();
console.log(`Found ${data.total} obligations`);
Parse the response
Every response returns a consistent JSON envelope:
{
"obligations": [
{
"slug": "ca-employer-payroll-tax-registration",
"title": "California Employer Payroll Tax Registration (DE-1)",
"category": "Tax",
"jurisdiction": "California",
"jurisdiction_level": "state",
"legal_citation": "Cal. Unemp. Ins. Code \u00a7 1088",
"penalty": "$50/day late filing penalty",
"recurrence": "once",
"description": "Register with the CA EDD within 15 days of paying $100+ in wages..."
}
],
"total": 43,
"page": 1,
"limit": 5,
"has_more": true
}
/api/v1/obligations
Free
List and filter compliance obligations from the global catalog. Supports pagination, jurisdiction filtering, category filtering, and more.
Query Parameters
jurisdictionstringjurisdiction_levelstringfederal, state, city, countrycategorystringTax, Legal, HR, Benefits, Securityentity_typestringc_corp, llc, s_corp, etc.industrystringpageinteger1limitinteger25curl https://compliancesingularity.com/api/v1/obligations \
-G \
-d jurisdiction=Delaware \
-d category=Legal
import requests
resp = requests.get(
"https://compliancesingularity.com/api/v1/obligations",
params={"jurisdiction": "Delaware", "category": "Legal"}
)
print(resp.json())
200 OK
{
"obligations": [
{
"slug": "de-annual-franchise-tax",
"title": "Delaware Annual Franchise Tax Filing",
"category": "Legal",
"jurisdiction": "Delaware",
"jurisdiction_level": "state",
"recurrence": "annual",
"legal_citation": "8 Del. C. \u00a7 502",
"penalty": "$200 penalty + 1.5%/month interest",
"description": "All domestic corporations must file an annual report and pay franchise tax by March 1..."
}
],
"total": 8,
"page": 1,
"limit": 25,
"has_more": false
}
/api/v1/obligations/search
Free
Full-text search across obligation titles, descriptions, and legal citations.
Query Parameters
qstringrequiredlimitinteger25curl "https://compliancesingularity.com/api/v1/obligations/search?q=COBRA"
/api/v1/obligations/:slug
Free
+ Rules with key
Get a single obligation by slug. Without an API key, returns the obligation without applicability rules. With a valid API key, includes the full applicability_rules object.
Path Parameters
slugstringrequiredca-employer-payroll-tax-registration)200 OK{
"slug": "federal-form-941",
"title": "IRS Form 941 — Quarterly Payroll Tax Return",
"category": "Tax",
"jurisdiction": "Federal",
"recurrence": "quarterly",
"legal_citation": "26 USC \u00a7 3111, 26 CFR 31.6011(a)-1",
"penalty": "5% of unpaid tax per month, max 25%",
"description": "Quarterly filing of employment taxes...",
"applicability_rules": {
"country": "US",
"entity_type": ["c_corp", "s_corp", "llc"],
"has_employees": true,
"employee_count_min": 1
}
}
/api/v1/deadlines
Free
Get recurring obligations with their next deadline dates, grouped by jurisdiction. Useful for building compliance calendars.
Query Parameters
jurisdictionstringmonths_aheadinteger3curl "https://compliancesingularity.com/api/v1/deadlines?jurisdiction=Federal&months_ahead=6"
200 OK{
"deadlines": [
{
"slug": "federal-form-941",
"title": "IRS Form 941",
"recurrence": "quarterly",
"next_deadline": "2026-04-30",
"jurisdiction": "Federal"
}
],
"total": 12
}
/api/v1/jurisdictions
Free
List all jurisdictions in the catalog with obligation counts per category.
200 OK{
"jurisdictions": [
{
"name": "California",
"level": "state",
"country": "US",
"obligation_count": 43,
"categories": {"Tax": 12, "HR": 18, "Legal": 8, "Benefits": 5}
}
],
"total": 64
}
/api/v1/coverage
Free
Get the current catalog coverage score -- how comprehensive the obligation database is across jurisdictions and categories.
200 OK{
"total_obligations": 521,
"jurisdictions_covered": 64,
"categories": {
"Tax": 156,
"Legal": 134,
"HR": 112,
"Benefits": 78,
"Security": 41
},
"last_updated": "2026-03-26T04:00:00Z"
}
/api/v1/match
Paid
The primary endpoint. Send a company profile and receive all applicable compliance obligations. This is the endpoint AI agents should call to determine what a company needs to comply with.
Request Body
countrystringrequired"US")entity_typestringrequiredc_corp, s_corp, llc, sole_prop, partnership, nonprofitstatestringemployee_countintegeremployee_statesstring[]industrystringhas_1099_contractorsbooleanis_government_contractorbooleansales_tax_nexusstring[]curl -X POST https://compliancesingularity.com/api/v1/match \
-H "Authorization: Bearer cs_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"country": "US",
"entity_type": "c_corp",
"state": "Delaware",
"employee_count": 45,
"employee_states": ["California", "New York", "Texas"],
"industry": "SaaS",
"has_1099_contractors": true
}'
import requests
resp = requests.post(
"https://compliancesingularity.com/api/v1/match",
headers={"Authorization": "Bearer cs_live_your_key"},
json={
"country": "US",
"entity_type": "c_corp",
"state": "Delaware",
"employee_count": 45,
"employee_states": ["California", "New York", "Texas"],
"industry": "SaaS",
"has_1099_contractors": True
}
)
obligations = resp.json()["obligations"]
print(f"Company has {len(obligations)} obligations")
200 OK{
"obligations": [
{
"slug": "federal-form-941",
"title": "IRS Form 941 \u2014 Quarterly Payroll Tax Return",
"category": "Tax",
"jurisdiction": "Federal",
"recurrence": "quarterly",
"match_reason": "US C-Corp with 45 employees",
"applicability_rules": { /* ... */ }
},
{
"slug": "ca-employer-payroll-tax-registration",
"title": "California Employer Payroll Tax Registration",
"category": "Tax",
"jurisdiction": "California",
"recurrence": "once",
"match_reason": "Employees in California",
"applicability_rules": { /* ... */ }
}
],
"total": 87,
"profile_summary": {
"entity_type": "c_corp",
"jurisdictions_matched": 5,
"categories": {"Tax": 28, "Legal": 22, "HR": 19, "Benefits": 12, "Security": 6}
}
}
/api/v1/keys
Login Required
Create a new API key. Requires an active platform login session (cookie-based auth, not Bearer token). The key is shown once in the response and cannot be retrieved again.
Request Body
namestringrequired201 Created{
"key": "cs_live_a1b2c3d4e5f6...",
"name": "Production",
"created_at": "2026-03-26T12:00:00Z",
"message": "Store this key securely. It will not be shown again."
}
Error Handling
The API uses standard HTTP status codes. Error responses include a JSON body with a message field.
400
401
404
429
Retry-After header500
{
"error": "rate_limited",
"message": "Rate limit exceeded. 100 calls/day on Community plan.",
"retry_after": 3600
}
Rate Limits
Rate limits are enforced per API key (or per IP for unauthenticated requests). Current usage is returned in response headers:
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9847
X-RateLimit-Reset: 1711497600
API Explorer
Make live API calls directly from the docs. Responses are shown below.
Click "Send" to make a request...