Skip to main content
The ABC License Lookup API returns the current status of a liquor license issued by a state alcoholic beverage control board. It supports both name search (find licenses matching a trade name, owner, or address) and direct lookup (fetch a specific record by license number). Every response includes a _verifiability block linking to the upstream state agency page so a human can independently confirm the data.

Who uses this

  • Liquor distributors verifying a new account’s license is active before shipment
  • Insurance underwriters binding a liquor liability policy and needing proof of active licensure
  • Compliance platforms building watchlists that flag expired, suspended, or revoked licenses
  • On-premises software (POS, reservation, rewards) onboarding new bar and restaurant accounts
  • Investigators and due-diligence teams running checks on liquor-licensed businesses
  • AI agents answering “does this bar have an active liquor license?” during a conversation

Endpoints

MethodPathPurpose
GET/v1/abc/searchSearch by DBA, owner name, or address within a state
GET/v1/abc/license/{license_number}Direct lookup by license number
GET/v1/abc/statesList supported states and per-state notes (e.g. CAPTCHA, Akamai, coverage)

Covered states

StateAgencyPage
CaliforniaCA ABCCalifornia ABC
TexasTX TABCTexas TABC
New YorkNY SLA (Open Data SODA API)New York SLA
FloridaFL DBPRFlorida DBPR
IllinoisIL ILCC (Akamai-protected Salesforce portal)Illinois ILCC

Request parameters

GET /v1/abc/search

ParameterTypeRequiredDescription
statestringYesTwo-letter state code: CA, TX, NY, FL, IL
dba_namestringOne of threeTrade name / doing-business-as. Partial matches supported.
owner_namestringOne of threeOwner or applicant name. Partial matches supported.
addressstringOne of threeStreet, city, or region filter.
At least one of dba_name, owner_name, or address must be provided. Calling /search with only a state returns 422 MISSING_PARAMS.

GET /v1/abc/license/{license_number}

ParameterTypeRequiredDescription
license_numberpathYesState-issued license number. Format varies by state (CA uses 47-123456, etc.)
statequeryYesTwo-letter state code matching the license number

Response shape

Search response

{
  "state": "CA",
  "query": {"dba_name": "TRADER JOE"},
  "total_results": 3,
  "results": [
    {
      "license_number": "47-123456",
      "license_type_code": "47",
      "dba_name": "TRADER JOE'S #123",
      "owner_name": "TRADER JOE'S COMPANY",
      "status": "ACTIVE",
      "expiration_date": "2026-09-30",
      "address": "1234 MAIN ST, LOS ANGELES, CA 90001",
      "county": "LOS ANGELES"
    }
  ],
  "_verifiability": {
    "source_timestamp": "2026-04-10T14:22:11Z",
    "extraction_confidence": 1.0,
    "raw_data_evidence_url": "https://www.abc.ca.gov/licensing/license-lookup/?RPTTYPE=15&DBANAME=TRADER%20JOE",
    "extraction_method": "structured_parse",
    "data_freshness_ttl_seconds": 86400
  }
}

Lookup response

{
  "state": "CA",
  "license_number": "47-123456",
  "record": {
    "license_number": "47-123456",
    "license_type_code": "47",
    "dba_name": "TRADER JOE'S #123",
    "owner_name": "TRADER JOE'S COMPANY",
    "status": "ACTIVE",
    "expiration_date": "2026-09-30",
    "address": "1234 MAIN ST, LOS ANGELES, CA 90001",
    "county": "LOS ANGELES"
  },
  "_verifiability": {
    "source_timestamp": "2026-04-10T14:22:11Z",
    "extraction_confidence": 1.0,
    "raw_data_evidence_url": "https://www.abc.ca.gov/licensing/license-lookup/?RPTTYPE=15&DBANAME=TRADER%20JOE%27S",
    "extraction_method": "structured_parse",
    "data_freshness_ttl_seconds": 86400
  }
}

License status values

The status field normalizes across states to one of:
  • ACTIVE — license is currently valid
  • EXPIRED — license is past its expiration date
  • SUSPENDED — license is actively suspended by the state
  • REVOKED — license has been permanently revoked
  • PENDING — application is under review
  • SURRENDERED — holder voluntarily gave up the license
  • UNKNOWN — upstream source did not emit a recognizable status value

Caching and freshness

ABC license data caches for 24 hours (86400 seconds). This reflects the fact that license status changes are infrequent but consequential — a 24-hour staleness window is acceptable for compliance checks, insurance binding, and distributor onboarding, but not for real-time point-of-sale decisions. If your workflow requires near-real-time freshness, bypass the cache by contacting support.

State-specific gotchas

TX TABC’s public lookup page uses an image CAPTCHA on every submission. NexusFeed solves it via 2Captcha in the backend. If the server doesn’t have a 2Captcha key configured, TX endpoints return 503 CAPTCHA_SOLVER_NOT_CONFIGURED. Production deployments always have a 2Captcha key active.
IL ILCC’s portal is a Salesforce Experience Cloud app behind Akamai CDN. Every proxy type (residential, datacenter, direct) is blocked. NexusFeed uses ScraperAPI’s render API to load the page in a managed browser farm. The downside: the portal’s FlexCard component ignores URL search params, so filtering is done client-side against the default 20 records.
NY SLA publishes active licenses through the state’s Open Data SODA API. NexusFeed mirrors it directly, which is faster and more reliable than DOM scraping, but it means only active licenses are returned. Expired and revoked records are not included in the NY feed. Use a different state if you need non-active records.

Pricing

$0.05 per request through the RapidAPI ABC listing. ABC requests cost more than LTL because the extractors are more expensive to run — TX uses paid CAPTCHA credits, IL uses paid ScraperAPI credits, and all states bypass the 7-day LTL cache TTL.