For Developers

A clean API for license data

RESTful. JSON. Well-documented. Designed for integration into your existing workflows and applications.

Request API Key Full documentation available upon access

Endpoints

API at a glance

Core endpoints for searching, verifying, and monitoring licensee data.

GET /api/v1/licensees

Search licensees with filters. Requires state; supports name, status, license type, brokerage, and more.

GET /api/v1/licensees/search

Legacy search path (subset of filters: state, first_name, last_name, business_name, status, city). Prefer GET /api/v1/licensees.

GET /api/v1/licensees/:state/:license_number

Retrieve a specific licensee record by state and license number.

GET /api/v1/licensees/verify

Verify a license by state and license number. Returns verification status and current record.

POST /api/v1/licensees/batch

Submit a batch of license numbers for verification. Returns results for all submitted records.

GET /api/v1/licensees/:state/:license_number/affiliations

Affiliation history for a licensee (supervising broker relationships, effective dates).

GET /api/v1/licensees/:state/:license_number/supervisor

Current supervising broker for a licensee, when available from normalized affiliation data.

GET /api/v1/licensees/:state/:license_number/affiliates

Paginated list of current affiliates under a supervising broker licensee.

GET /api/v1/license-credentials/:credentialId/hierarchy

Walk supervisor chain upward from a license credential UUID.

GET /api/v1/coverage

View current state coverage, access types, refresh frequencies, and record counts.

GET /api/v1/licensees/changes

Query recent changes to licensee records — status updates, expirations, and brokerage changes.

Search

Search licensees within a state

Query by name, state, license type, or status. State is required, and results come back as normalized JSON with full metadata. Paginated responses support high-volume integrations.

Query Parameters

state Two-letter state code — required (e.g., TX, CA, FL)
name Full or partial name search
first_name Filter by first name
last_name Filter by last name
business_name Filter by business / entity name
status active, inactive, expired, suspended
license_type broker, salesperson, etc.
brokerage Filter by affiliated brokerage name
city Filter by city
page Page number for pagination
per_page Results per page (max 100)
Search Request & Response
GET /api/v1/licensees?state=TX&name=johnson&status=active
Authorization: Bearer your_api_key

Response:
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "full_name": "Robert Johnson",
      "license_number": "0654321",
      "license_type": "Broker",
      "status": "Active",
      "state": "TX",
      "expiration_date": "2027-11-30",
      "brokerage": "Lone Star Realty Inc.",
      "source": "Texas Real Estate Commission",
      "last_verified": "2026-03-09T06:00:00Z",
      "first_name": "Robert",
      "last_name": "Johnson",
      "business_name": null,
      "city": "Austin"
    },
    {
      "id": "8b2c1a00-1234-5678-9abc-def012345678",
      "full_name": "Maria Johnson-Garcia",
      "license_number": "0789012",
      "license_type": "Salesperson",
      "status": "Active",
      "state": "TX",
      "expiration_date": "2026-08-15",
      "brokerage": "Compass Texas LLC",
      "source": "Texas Real Estate Commission",
      "last_verified": "2026-03-09T06:00:00Z",
      "first_name": "Maria",
      "last_name": "Johnson-Garcia",
      "business_name": null,
      "city": "Dallas"
    }
  ],
  "meta": {
    "total": 2,
    "page": 1,
    "per_page": 25
  }
}

Mock Playground

Try the API response format

Interactive preview only. This does not call the live API and does not return real-time data.

Mock only

Preview a sample search

Use this to understand request/response structure before you have an API key. Values shown below are static demo data.

Generated mock request

GET /api/v1/licensees?state=TX&name=alex&status=active

This tool is a UI mock for developer onboarding. For real data, request an API key and call GET /api/v1/licensees.

Mock Search Response (Generated)
Click "Run Mock Request" to generate a mock response.
Verification Request & Response
GET /api/v1/licensees/verify?state=TX&license_number=TX123
Authorization: Bearer your_api_key

Response:
{
  "verified": true,
  "licensee": {
    "id": "2d8f3c10-abcd-4ef0-8123-456789abcdef",
    "full_name": "Robert Johnson",
    "license_number": "TX123",
    "license_type": "Sales Agent",
    "status": "Active",
    "state": "TX",
    "expiration_date": "2027-09-30",
    "brokerage": "Lone Star Realty Inc.",
    "source": "Texas Real Estate Commission",
    "last_verified": "2026-03-09T05:30:00Z",
    "first_name": "Robert",
    "last_name": "Johnson",
    "business_name": null,
    "city": "Austin"
  }
}

Verify

Single-license verification

Verify a specific license by state and license number. The response includes a boolean verified flag and the full current record.

For batch workflows, use the POST /api/v1/licensees/batch endpoint to verify multiple licenses in a single request.

Coverage

Programmatic coverage status

Check which states are available, how data is accessed, and when it was last refreshed — all through the API. Build your application logic around actual coverage availability.

Coverage Endpoint
GET /api/v1/coverage
Authorization: Bearer your_api_key

Response:
{
  "states": [
    {
      "state": "CA",
      "status": "active",
      "source": "California Department of Real Estate",
      "access_type": "bulk_public_download",
      "refresh_frequency": "nightly",
      "record_count": 425000,
      "last_updated": "2026-03-09T04:00:00Z"
    },
    {
      "state": "NY",
      "status": "active",
      "source": "New York Department of State",
      "access_type": "bulk_public_download",
      "refresh_frequency": "nightly",
      "record_count": 89000,
      "last_updated": "2026-03-09T04:15:00Z"
    },
    {
      "state": "WY",
      "status": "active",
      "source": "Wyoming Real Estate Commission",
      "access_type": "lookup_only",
      "refresh_frequency": "weekly",
      "record_count": null,
      "last_updated": null
    }
  ]
}

Authentication

Getting started

1

Request Access

Sign up and create your first API key from the dashboard (no existing key required). Additional keys can be created via the API.

2

Authenticate

Include your API key in the Authorization header on every request.

3

Query Data

Start searching, verifying, and integrating licensee data into your stack.

Machine-readable contract: your deployment exposes /openapi.json (Swagger UI at /docs). Use those as the source of truth when integrating; refresh marketing examples when the API changes.

Ready to integrate?

Request an API key and start building with real licensee data.