# American Trades Index American Trades Index helps you find and win more business. Find the projects being built, the companies around them, and the markets where demand is growing. - Find projects: See the capital projects ATI tracks across the country: what is being built, where it is, who is behind it and what has changed. - Find companies: Search licensed contractors and trade companies by market, trade and credential, and build the list of companies worth knowing. - Find growing markets: See where projects, contractors and skilled-trade activity are increasing, before the opportunity becomes obvious. - Track your territory: Save the projects and markets you care about. ATI keeps watching them and tells you when something changes. Base URL: https://api.americantradesindex.com Auth: Authorization: Bearer (or the header x-api-key: , if your client cannot set Authorization) Getting access: start a 14-day free trial at https://americantradesindex.com/#start (no card). Approved workspaces get a key in the dashboard under Settings > Developer; POST https://api.americantradesindex.com/v1/keys mints more for the same workspace. (POST /v1/account is used by the dashboard's verified sign-in and does not mint keys for unauthenticated callers.) OpenAPI: https://api.americantradesindex.com/openapi.json Hosted MCP: https://mcp.americantradesindex.com/mcp (Streamable HTTP, same bearer key; one tool per endpoint below) Dashboard reference: https://americantradesindex.com/settings/connect ## Plans ATI Pro covers the dashboard and MCP; API access is Enterprise (projects, companies, markets, verification, supply, movement, qualifier, watchlist, saved lists; ATI Pro is one person, teams are Enterprise) and starts with a 14-day free trial (no card required, cancel anytime). There is no free tier: a workspace has no product access until a trial starts. - ATI Pro ($199/mo): projects, companies and markets across every state ATI covers and every interface, 1,500 credits/mo - Enterprise (custom): everything in ATI Pro, custom/pooled credits, plus warehouse delivery or custom feeds (book a call) Labor analytics (the 24-month outlook, forecasts, retirement exposure, recommendations) are the Enterprise labor module; on Solo and Team those endpoints answer 402 upgrade_required and the modeled labor fields are left out of other responses. ## Metering (credits) Programmatic calls are metered from the workspace's monthly pool by depth: quick 10, research 30, deep 80 (per call; a cache hit costs the same as a miss; "research" is the name of the middle band). Free: /v1/verify, /v1/chart, watchlist, keys, workspace and usage. Every metered response carries X-ATI-Credits-Charged, X-ATI-Credits-Band, X-ATI-Credits-Remaining and X-ATI-Credits-Reset. GET /v1/usage shows the balance. A trial holds 150 credits. ## When ATI does not have the data ATI answers from its own register, and it says so when that register does not hold what you asked for: a scope it has no coverage for, an attribute it does not record (work history, years of experience, private certifications), or a panel too short to support a trend. A response never fills such a gap from outside the register. ## Endpoints (cost) - GET /v1/verify?state=TX&license=100 verify a license, or &name=... (free) - GET /v1/supply?state=TX&trade=electrical supply by tier, current vs total, rising/falling (10) - GET /v1/movement?state=TX&event=lapsed the change graph (10) - GET /v1/county?state=TX&county=Harris one county in full (10); /listings, /forecast, /forecast/compare, /project-changes (10) - GET /v1/trend?state=TX&trade=electrical weekly time series (10) - GET /v1/company?state=OH&name=... one company in full (10); GET /v1/companies?state=OH discovery (30) - GET /v1/national?trade=electrical&metric=growth rank states (30); /national/outlook (80), /national/retirement (30), /national/index (30) - GET /v1/recommend?persona=operator&trade=hvac rank markets for a persona (80); /recommend/feasibility?workers=250 (30) - GET /v1/prospects?state=TX&trade=electrical prospect list, CSV up to 5,000 (30) - GET /v1/qualifier?state=CA&license=1000094 qualifier risk, AZ/CA/FL/LA/NC/OH (30); /qualifier/risk, /qualifier/person (30) - GET /v1/trajectory?state=TX&county=Harris&trade=electrical observed trend and 24-month implication (30) - GET|POST /v1/screen screen every county for a trade with filters, CSV (80); /screen/metrics (30) - GET /v1/insights?trade=electrical&state=ME proactive findings (30; state optional, empty is free) - GET /v1/workers/search?trade=electrical&state=TX consented tradespeople (30); GET /v1/workers/:id (10) - POST /v1/chart render a chart from your own series (free) - GET|POST /v1/tracked, GET|PATCH|DELETE /v1/tracked/:id the watchlist, with the weekly brief (free) - GET /v1/usage plan, credits {used, remaining, resets_at, trial_days_left} - GET /v1/workspace | /v1/keys workspace and key management (free) - GET /v1/plans public plan catalog (no key) ## Errors Every error is JSON: {error, detail[, fields][, upgrade][, request_id]}. Codes: invalid_request (400), unauthorized (401), upgrade_required / credits_exhausted / payment_required (402), forbidden (403), not_found (404), rate_limited (429, with Retry-After), internal_error (500, quote request_id to support). Rate limit: 120 requests/minute per workspace (all keys and seats share it). EVERY response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (seconds) and RateLimit-Policy, so a client can pace itself rather than wait to be refused; a 429 additionally carries Retry-After. ## Versioning /v1 is stable. Breaking changes ship as /v2 with at least six months of overlap and Sunset headers on /v1. Records reflect the source registers, including status, contact, and disciplinary detail where the register publishes it. Identity fields (SSN, date of birth) are never published. This is public-record business and market intelligence, not a consumer report: it may not be used to decide anyone's eligibility for employment, housing/tenancy, credit, or insurance (barred by our terms and the FCRA). Counts are defensible to the source register. Licensed-supply counts lead with "current" (records not marked dead); "active" is the register-published status and "total" includes expired records.