Skip to content
Venue Authority

Developer API

Resolve the regulator record, history included.

Send a merchant name and address. Venue Authority returns the regulator record, the supported status assessment, source history retrieved for that request, and a stored response receipt. Weak or conflicting matches are rejected.
Run the no-account demo

Authenticated test key

The public demo is available without an account. Create an account to receive a limited server-issued test key that can be revoked and shown once.

The server shows the plaintext once and stores only a digest. New verified accounts can claim one 25-unit test allowance; live keys use prepaid capacity.

Try the public history demo

This form searches a separate 100-facility evidence dataset and does not consume prepaid units.

Try:

This public demo searches 100 archived examples and does not consume units.

Authenticated request

curl 'https://venueauthority.com/api/v1/resolve' \
  --request POST \
  --header 'Authorization: Bearer va_test_REPLACE_ME' \
  --header 'Content-Type: application/json' \
  --header 'X-Request-Id: onboarding-merchant-0001' \
  --data '{"name":"YOAN MING GARDEN","address":"1407 Madison Avenue, New York NY 10029"}'

Accepted response

{
  "disposition": "accepted",
  "reason": "The name and address clear the corpus resolution policy.",
  "confidence": 1,
  "record": {
    "jurisdiction": "nyc",
    "sourceId": "50069801",
    "name": "YOAN MING GARDEN",
    "sourceUrl": "https://data.cityofnewyork.us/..."
  },
  "sourceAttribution": {
    "sourceClass": "food_inspection",
    "sourceClassLabel": "food inspection records",
    "attribution": "New York City Department of Health and Mental Hygiene Open Data",
    "modificationNotice": "Venue Authority normalizes source fields and does not alter the cited source record."
  },
  "evidence": {
    "authorityAssessment": {
      "state": "reopened",
      "asOf": "2026-08-13T08:30:00.000Z"
    },
    "history": {"status": "retrieved_on_demand", "eventCount": 8},
    "evidenceReceipt": {"rawArtifactSha256": "..."}
  },
  "snapshot": {
    "dataClass": "regulator_monitoring_corpus",
    "manifestSha256": "..."
  },
  "requestId": "onboarding-merchant-0001"
}

Authenticated contract

Decision

Accepted or rejected. Rejections include the policy reason and up to three candidates.

Safe replay

Replay the same request and payload to receive the stored response without another debit. A changed payload returns 409.

Evidence version

Every response identifies the serving snapshot, record count, retrieval time, and manifest hash.

Regulator identity

Accepted results return the jurisdiction, source ID, normalized address, source URL, status assessment, and history coverage.

How history coverage works

Each admitted source reports only the history and current-presence signal its regulator feed supports. A source that publishes an active list does not turn absence into a closure. Every response states the available history window and its limitation.

Watchlists

Create a watchlist at /api/v1/portfolios, then add the jurisdiction and source ID returned by the resolver. Paid monitoring expansion is not available yet.

Signed webhooks

Register a public HTTPS endpoint at /api/v1/webhooks. The signing secret is shown once.

Audit exports

Send up to 100 stored request IDs to /api/v1/audit-exports for a hashed JSON evidence bundle.

Official clients

Start with the language you already use.

The first reviewed release is available from GitHub now. npm and PyPI publication have not happened yet, so every link below points to the public source or the exact v0.1.0 release.

Open the v0.1.0 release

Node.js SDK

A dependency-free Node 18+ client for resolution, evidence, watchlists, webhooks, and audit exports.

Review Node.js source

Python SDK

A synchronous Python 3.9+ client that uses only the standard library at runtime.

Review Python source

MCP server

Three focused tools for public coverage, authenticated resolution, and canonical facility evidence.

Review MCP source

The MCP server is also active in the official MCP Registry.

Run it in Postman

Open the public workspace to run the complete 15-request collection, start with the unauthenticated coverage check, and follow the workspace guide when you are ready to use a test key.

Run a real authenticated test

A new verified account can claim one 25-unit test allowance, subject to identity checks. Plaintext keys are shown once, stored only as a digest, and can be revoked from the dashboard.

Create an account