Every licensed contractor in America, behind one API.

Fifty state registers, normalized to one schema and refreshed every night. Query the workforce, verify a license, or get a webhook the morning one changes. Free key, no card, live in five minutes.

verify.shCopy

    
● 200 OKapplication/json142 ms

  

Four ways to put it to work.

The same nightly data, however your stack wants to take it. REST for queries, webhooks for changes, MCP for agents, and a warehouse drop for your analysts.

REST API

Query the live workforce by market, trade and level, pull the movement graph, or verify a license. JSON, versioned, predictable.

GET/v1/supply?state=TX
303,096 licensed, 993.6 / 100k

Webhooks

Push, not poll. Tell us the market or license you watch and we POST to you the morning the register moves. Signed and retried.

POST/v1/watches?state=TX
pushed the morning it changes

MCP server

One config block and any agent works the live product in plain language, count a market, check qualifier risk, or verify a license. Claude, Cursor, or any client.

ASKLicense C10-984204?
active, master electrician

Warehouse

Prefer it in your own tables? We stand up a delivery of the full dataset and the nightly diffs to Snowflake, BigQuery or Databricks, set up per customer.

SYNC2.75M rows + diffs
snowflake, bigquery, databricks

Try a real call.

Every response below is the shape you get back, dated to the night the register was read. Pick an endpoint.

requestCopy

    
response200 OK

    

Verifying a license is free. Supply, the movement graph and qualifier risk are the live product, included with a One State or Fifty States subscription, and every one of them is a call away over the API and MCP, not just the dashboard.

Live in five minutes.

Create a key, make a call, subscribe to the changes you care about. No sales call, no sandbox that lies to you. The free key hits real data.

1

Get a key

One request, or one click. Your key works against live data immediately, no card required.

# create an account curl -X POST \ .../v1/account \ -d [email protected] # → ati_live_9f2c8b…
2

Make your first call

Count any market, or verify any license, with a single authenticated GET.

curl .../v1/supply?state=TX \ -H "Authorization: Bearer ati_live_…"
3

Get pushed the changes

Subscribe once. We POST the events to your endpoint every morning the register moves.

curl -X POST .../v1/watches \ -d state=TX \ -d url=https://you.com/hook

The full surface.

A handful of endpoints, one versioned contract, JSON everywhere. Authenticate with a bearer key and you have all of it.

MethodEndpointReturns
GET/v1/verifyA single license with its current status, level and dates.
GET/v1/supplyThe workforce counted by state, trade and level, with density.
GET/v1/movementEvery change since a date, as a stream of typed events.
GET/v1/qualifierQualifier-of-record risk for a company, in states that require one.
POST/v1/watchesSubscribe to signed webhooks for a market or a single license.
GET/v1/usageYour calls and distinct entities pulled this billing period.
Base URL
https://api.americantradesindex.com
Authentication
Authorization: Bearer ati_live_…

Get pushed the change, not a poll.

Tell us the market or the license you care about. We POST to your endpoint the morning the register moves, so you never scrape or re-query to find out.

Event types
new_license renewed classification_change line_added status_change dropped_off relocation qualifier_lost

Every delivery is signed with your secret using HMAC-SHA256, carries an idempotency key, and retries with backoff for 24 hours until you return a 2xx.

POST /hooks/atiCopy

    

Drop it into any agent.

One config block and your assistant can verify a license or count a market in plain language. It speaks the Model Context Protocol, so it works with Claude, Cursor, or anything that does.

Tools it exposes
verify_licenseLook up one license and the level it holds.
market_supplyCount a market by trade and tier, with density.
movement_feedThe changes since a date, returned as events.
qualifier_riskFlag companies at risk of losing their license.
claude_desktop_config.jsonCopy

    
NightlyEvery register re-read and diffed before 6am ET, seven days a week.
/v1One stable, versioned contract. We add fields, we do not break yours.
SignedHMAC-signed, idempotent webhooks with 24 hours of retries.
OpenAPIFull spec at /openapi.json, plus llms.txt so agents can read the API themselves.

Free to verify. Full product on a subscription.

Verifying a license is free forever. The live product, supply, the movement graph, qualifier risk and webhooks, comes with a subscription, and you can use every bit of it through the API and MCP, not only the dashboard.

Free
$0

License verification against the live dataset.

Get a free key
What you get
  • 500 license lookups a month
  • Verify any license across all 51 registers
  • The MCP server for your agent
  • OpenAPI spec and llms.txt
  • No card required
One State
$500/month

The full live product, scoped to a single state.

Start with one state
Everything in Free, plus
  • Full API and MCP access to the live product
  • Every licensed contractor and worker, by trade and level
  • Supply, the movement graph and qualifier risk
  • Signed webhooks for any market you watch
  • The dashboard, with no per-seat fee
  • The full history since day one
  • Unlimited seats and queries
  • Warehouse delivery, set up per customer
  • Monthly by card, cancel anytime
Most complete Fifty States
$2,900/month

Every state we publish, one price for your whole company.

Get every state
Everything in One State, plus
  • All fifty states, not just one
  • Track contractors as they move state to state
  • Compare any market against any other, nationwide
  • Qualifier risk across your whole book
  • National supply, density and trend in one view
  • The full national history
  • Annual invoicing if you need it

Building this into your own product for your own users? Ask about usage-based metered access. Talk to us

Get a free key.

No card, live in five minutes, hitting real data tonight.