API documentation
Real estate license
API documentation
REST API with JSON responses and OpenAPI docs. Search licensees, verify brokers and agents, check affiliations, and read coverage metadata — built for compliance, proptech, and data pipelines.
Create an account for an API key, or download the markdown context for Cursor, Claude, or ChatGPT.
Endpoints
API at a glance
Core endpoints for searching, verifying, and monitoring licensee data.
Integration source of truth
Source of truth: RELD_API_CONTEXT.md is the integration guide for coding agents. openapi.json defines exact parameters and response shapes. This page and marketing examples are orientation only — do not invent endpoints or fields.
Use the /api/v1/licensees endpoint family for search, verify, batch, and affiliations. Prefer GET /api/v1/licensees for search (not legacy /licensees/search).
- Production base URL
- https://app.realestatelicensedatabase.com
- Authentication
- Authorization: Bearer your_api_key
- OpenAPI schema
- https://app.realestatelicensedatabase.com/openapi.json
- Interactive docs
- https://app.realestatelicensedatabase.com/docs
- Postman collection
- License_API.postman_collection.json
- AI integration context
- RELD_API_CONTEXT.md
- Coverage metadata
-
GET /api/v1/coveragereports live jurisdictions, counts, refresh cadence, and source freshness.
/health
Public
Liveness probe. No auth required. Point uptime monitors here (expect 200 and {"status":"ok"}). Historical uptime and incidents: https://status.realestatelicensedatabase.com/
/api/v1/coverage
Public
Current jurisdiction coverage: refresh cadence, record count, last refresh. No API key required.
/api/v1/licensees Search licensees. state is required; supports name, first_name, last_name, business_name, status, license_type, brokerage, city, page, per_page.
/api/v1/licensees/search Legacy / backward-compatible search (first_name + last_name only). New integrations should use GET /api/v1/licensees.
/api/v1/licensees/verify Verify a single license by state + license_number. Returns { verified, licensee }.
/api/v1/licensees/batch Verify up to 100 licenses in one request. Mix states freely — send { state, license_number } pairs from a CRM export or roster; results return in input order with verified and licensee per row.
/api/v1/licensees/{state}/{license_number} Fetch a single licensee record (public-shape) by state and license number.
/api/v1/licensees/{state}/{license_number}/affiliations Affiliation history for a licensee (supervising-broker relationships with effective dates).
/api/v1/licensees/{state}/{license_number}/supervisors All current supervising brokers (recommended). Returns empty data when none on file.
/api/v1/licensees/{state}/{license_number}/supervisor Legacy: single current supervisor only. Prefer GET .../supervisors for new integrations.
/api/v1/licensees/{state}/{license_number}/affiliates Paginated list of current affiliates (salespersons / broker associates) for a supervising broker.
/api/v1/licensees/changes Reserved stub for a future change feed. Returns empty data — do not build production sync on this yet.
/api/v1/license-credentials/{credential_id}/hierarchy Walk the supervisor chain upward from a license-credential UUID.
/api/v1/licenses/search Lower-level licenses search returning the raw normalized license shape (id, license_type_normalized, status_normalized, …).
/api/v1/licenses/license-type-counts Aggregate counts grouped by state and normalized license_type. Useful for analytics dashboards.
/api/v1/licenses/{state}/{license_number} Lower-level lookup returning the raw normalized license shape.
/api/v1/states List supported state codes (active jurisdictions).
/api/v1/sources List configured upstream sources (one per state).
/api/v1/account Get the current account associated with your API key.
/api/v1/account/usage Current month's usage summary by endpoint.
/api/v1/api-keys List API keys for the current account (hashed; raw value only ever returned at creation).
/api/v1/api-keys Create an additional API key (the dashboard creates the first one without an existing key).
All endpoints under /api/v1/ require an API key in the
Authorization: Bearer ... header.
Full machine-readable contract: openapi.json
· live docs: /docs.
Search
Search licensees within a state
Query by name, state, license type, brokerage, city, or status. State is required, and results come back as normalized JSON with metadata for broker lookup, agent verification, and 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) 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.",
"last_verified": "2026-04-26T06: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",
"last_verified": "2026-04-26T06: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. Generates a sample request/response shape — does not call the live API. States under Live match production coverage; Roadmap options return a static mock only.
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.
Click "Run Mock Request" to generate a mock 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.",
"last_verified": "2026-04-26T05:30:00Z",
"first_name": "Robert",
"last_name": "Johnson",
"business_name": null,
"city": "Austin"
}
} Verify
Single-license verification
Verify a specific broker, salesperson, or business license by state and license number. The response includes a boolean verified flag and the full current record.
For onboarding lists and compliance re-checks, use POST /api/v1/licensees/batch instead — see the batch section below.
Batch verify
Verify entire rosters in one call
When you already have license numbers — from a CRM, onboarding spreadsheet, or referral network — POST them in batches of up to 100. Mix states in the same request: Texas agents, California brokers, and Florida salespeople in one round-trip.
-
Up to 100
{ state, license_number }pairs per request - Results returned in the same order as your input
-
Hits include the full licensee record; misses return
verified: false(still HTTP 200) - Counts as one metered API request per HTTP call — chunk larger rosters into batches of 100
POST /api/v1/licensees/batch
Authorization: Bearer your_api_key
Content-Type: application/json
{
"licenses": [
{ "state": "TX", "license_number": "9001878" },
{ "state": "CA", "license_number": "00006213" },
{ "state": "TX", "license_number": "DOES-NOT-EXIST" }
]
}
Response:
{
"data": [
{
"state": "TX",
"license_number": "9001878",
"verified": true,
"licensee": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"full_name": "Jane Doe",
"license_number": "9001878",
"license_type": "Sales Agent",
"status": "Active",
"state": "TX",
"expiration_date": "2027-03-15",
"brokerage": "Lone Star Realty Inc.",
"supervising_brokerages": ["Lone Star Realty Inc."],
"current_affiliate_roles": [],
"last_verified": "2026-05-01T12:00:00Z",
"first_name": "Jane",
"last_name": "Doe",
"business_name": null,
"city": "Austin"
}
},
{
"state": "CA",
"license_number": "00006213",
"verified": true,
"licensee": { "...": "full licensee record" }
},
{
"state": "TX",
"license_number": "DOES-NOT-EXIST",
"verified": false,
"licensee": null
}
]
} 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.
GET /api/v1/coverage
Response (excerpt):
{
"states": [
{
"state": "CA",
"status": "active",
"refresh_frequency": "nightly",
"record_count": 434938,
"active_record_count": 342862,
"last_updated": "2026-05-03T12:00:00Z"
},
{
"state": "WV",
"status": "active",
"refresh_frequency": "weekly",
"record_count": 4976,
"active_record_count": 4976,
"last_updated": "2026-05-03T12:00:00Z"
},
{
"state": "NV",
"status": "active",
"refresh_frequency": "monthly",
"record_count": 29341,
"active_record_count": 29341,
"last_updated": "2026-05-03T12:00:00Z"
},
{
"state": "KS",
"status": "active",
"refresh_frequency": "monthly",
"record_count": 84153,
"active_record_count": 17656,
"last_updated": "2026-05-03T12:00:00Z"
}
]
} Authentication
Getting started
Sign up
Sign up and create your first API key from the dashboard (no existing key required). Additional keys can be created via the API.
Authenticate
Include your API key in the Authorization header on every request.
Query Data
Start searching, verifying, and integrating licensee data into your stack.
Machine-readable contract: openapi.json (Swagger UI at /docs). Use those as the source of truth when integrating; this page is updated when the API changes.
AI assistants
Cursor skill and starter prompt
The markdown integration guide is in the hero above. Use these extras for Cursor or copy-paste into any LLM.
Cursor skill (zip)
reld-api-skill.zip
Unzip into your project's .cursor/skills/reld-api/ folder.
Download
Copy a starter prompt
Integrate our application with the RELD API using RELD_API_CONTEXT.md (https://www.realestatelicensedatabase.com/docs/RELD_API_CONTEXT.md). Use the /api/v1/licensees endpoint family as the canonical API (GET /api/v1/licensees for search). Do not invent endpoints, fields, or response shapes. Auth: Authorization: Bearer. For exact schemas, use https://app.realestatelicensedatabase.com/openapi.json.
Machine-readable index for crawlers and agents: llms.txt. LLM-ready integration guide included with every account.
Postman
Try it in Postman in 60 seconds
One ready-to-import collection covering every public endpoint. It is pre-pointed at production — just add your API key and go.
- 1. In Postman, click Import and drop in
License_API.postman_collection.json. - 2. Open the collection variables and paste your raw API key into
apiKey. - 3. Run 1. Getting started → Verify your API key to confirm auth, then browse 2. Search & verify or jump to 5. States for ready-to-run examples per state.
Ready to integrate?
Create an account, generate your API key from the dashboard, and start building with real licensee data.