Professional Licensing Data API
Access verified licensing requirements, fees, and reciprocity data for all 50 states. Built for developers, researchers, and educators.
Everything You Need
Comprehensive API coverage for professional licensing data across the United States.
Licensing Requirements
300+ endpointsComplete state-by-state requirements for multiple profession types including education, exams, and applications.
Compact & Reciprocity
40+ statesInterstate compact membership, pending states, and license portability across jurisdictions.
Fee Schedules
VerifiedApplication, exam, renewal, and endorsement fees by state with verification dates.
Timeline Data
NewProcessing times, step-by-step licensing workflows, and estimated completion windows.
API Endpoints
RESTful endpoints with consistent response formats and comprehensive documentation.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/states/ | List all 50 US states |
| GET | /api/v1/professions/ | List all profession verticals |
| GET | /api/v1/nursing/ | Nursing vertical overview |
| GET | /api/v1/nursing/professions/ | List 7 nursing professions |
| GET | /api/v1/nursing/states/ | List all states with NLC status |
| GET | /api/v1/nursing/states/{state}/ | Get state nursing data |
| GET | /api/v1/nursing/states/{state}/{profession}/ | Get profession requirements |
| GET | /api/v1/nursing/compacts/nlc/ | Get NLC compact data |
| GET | /api/v1/nursing/salaries/ | Get salary summary |
| GET | /api/v1/nursing/salaries/{profession}/ | Get profession salary data |
| GET | /api/v1/nursing/programs/ | List nursing programs |
| GET | /api/v1/nursing/programs/{slug}/ | Get program details |
Base URL
All API requests are made to:
https://thelicenseguide.com/api/v1/The API returns JSON responses with consistent structure. All requests should be made server-side to keep your API key secure.
Authentication
All API requests require authentication via an API key. Include your key in the Authorization header:
Authorization: Bearer sk_live_your_api_key_hereAPI keys are available with all plans, including the free tier. Contact us to get your key.
Quick Start
List all states:
curl -H "Authorization: Bearer sk_live_your_api_key" \
https://thelicenseguide.com/api/v1/states/Get Texas RN license requirements:
curl -H "Authorization: Bearer sk_live_your_api_key" \
https://thelicenseguide.com/api/v1/nursing/states/texas/rn/Get NLC compact member states:
curl -H "Authorization: Bearer sk_live_your_api_key" \
https://thelicenseguide.com/api/v1/nursing/compacts/nlc/Response Format
All responses follow a consistent JSON structure:
Success Response:
{
"success": true,
"data": { ... },
"meta": {
"timestamp": "2026-01-11T12:00:00Z",
"version": "1.0.0"
}
}Error Response:
{
"success": false,
"error": {
"code": "state_not_found",
"message": "State 'xyz' not found"
}
}Rate Limits
Rate limits vary by plan:
| Plan | Requests | Period | Price |
|---|---|---|---|
| Free | 100 | per day | $0 |
| Starter | 10,000 | per month | $49/mo |
| Professional | 100,000 | per month | $199/mo |
| Enterprise | Unlimited | - | Custom |
X-RateLimit-Limit: Your plan's limitX-RateLimit-Remaining: Requests remainingX-RateLimit-Reset: Unix timestamp when limit resets
SDK Examples
JavaScript / Node.js:
const API_KEY = 'sk_live_your_api_key';
const BASE_URL = 'https://thelicenseguide.com/api/v1';async function getTexasRNRequirements() {
const response = await fetch(${BASE_URL}/nursing/states/texas/rn/, {
headers: { 'Authorization': Bearer ${API_KEY} }
});
const { data } = await response.json();
console.log('Fees:', data.fees.total);
console.log('NLC Member:', data.compact.isMember);
}
Python:
import requestsAPI_KEY = 'sk_live_your_api_key'
BASE_URL = 'https://thelicenseguide.com/api/v1'
def get_nlc_states():
response = requests.get(
f'{BASE_URL}/nursing/compacts/nlc/',
headers={'Authorization': f'Bearer {API_KEY}'}
)
data = response.json()['data']
return [s['name'] for s in data['memberStates']]
# Get all NLC member states
nlc_states = get_nlc_states()
print(f'{len(nlc_states)} states in NLC')
cURL:
# Get all nursing professions
curl -H "Authorization: Bearer $API_KEY" \
https://thelicenseguide.com/api/v1/nursing/professions/# Get California NP requirements
curl -H "Authorization: Bearer $API_KEY" \
https://thelicenseguide.com/api/v1/nursing/states/california/np/
# Get salary data for RNs
curl -H "Authorization: Bearer $API_KEY" \
https://thelicenseguide.com/api/v1/nursing/salaries/rn/
Error Handling
All errors follow a consistent format with HTTP status codes:
| Status | Error Code | Description |
|---|---|---|
| 400 | invalid_request | Malformed request or parameters |
| 401 | unauthorized | Missing or invalid API key |
| 404 | state_not_found | Invalid state slug |
| 404 | profession_not_found | Invalid profession ID |
| 429 | rate_limit_exceeded | Too many requests |
| 500 | server_error | Internal server error |
async function fetchWithErrorHandling(endpoint) {
const response = await fetch(endpoint, {
headers: { 'Authorization': Bearer ${API_KEY} }
}); if (!response.ok) {
const { error } = await response.json();
if (error.code === 'rate_limit_exceeded') {
const retryAfter = response.headers.get('Retry-After');
console.log(Rate limited. Retry after ${retryAfter}s);
}
throw new Error(error.message);
}
return response.json();
}
Endpoints
/api/v1/states/ List all 50 US states with basic metadata.
Response
{
"success": true,
"data": {
"states": [
{ "abbreviation": "AL", "name": "Alabama", "slug": "alabama", "region": "southeast" },
{ "abbreviation": "AK", "name": "Alaska", "slug": "alaska", "region": "west" }
]
}
} Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | Yes | Request success status |
data |
object | Yes | Response payload |
states |
array | Yes | Array of US state objects |
abbreviation |
string | Yes | Two-letter state code (e.g., TX) |
name |
string | Yes | Full state name (e.g., Texas) |
slug |
string | Yes | URL-safe identifier (e.g., texas) |
region |
string | Yes | US region: northeast, southeast, midwest, southwest, west |
meta |
object | Yes | Response metadata |
timestamp |
string | Yes | ISO 8601 response timestamp |
version |
string | Yes | API version |
/api/v1/professions/ List all supported profession verticals with status and coverage information.
Response
{
"success": true,
"data": {
"professions": [
{
"id": "nursing",
"name": "Nursing",
"category": "healthcare",
"professions": 7,
"states_covered": 50,
"has_compact": true,
"compact_name": "Nurse Licensure Compact (NLC)",
"compact_members": 42,
"api_base": "/api/v1/nursing/"
},
{
"id": "real-estate",
"name": "Real Estate",
"status": "coming_soon"
}
],
"verticals": {
"nursing": { "available": true, "endpoint": "/api/v1/nursing/" },
"real-estate": { "available": false, "status": "coming_soon" }
}
}
} /api/v1/nursing/ Get nursing vertical overview including statistics, available professions, and all endpoint URLs.
Response
{
"success": true,
"data": {
"vertical": {
"id": "nursing",
"name": "Nursing",
"description": "Comprehensive nursing license requirements for all 50 US states"
},
"stats": {
"totalStates": 50,
"totalProfessions": 7,
"nlcMemberStates": 42,
"nlcPendingStates": 2
},
"professions": ["rn", "lvn", "np", "cnm", "crna", "cns", "cna"],
"endpoints": {
"professions": "/api/v1/nursing/professions/",
"states": "/api/v1/nursing/states/",
"stateDetail": "/api/v1/nursing/states/{state}/",
"stateProfession": "/api/v1/nursing/states/{state}/{profession}/",
"nlcCompact": "/api/v1/nursing/compacts/nlc/",
"salaries": "/api/v1/nursing/salaries/",
"programs": "/api/v1/nursing/programs/"
}
}
} /api/v1/nursing/professions/ List all 7 nursing professions with metadata, exam info, and workforce statistics.
Response
{
"success": true,
"data": {
"professions": [
{
"id": "rn",
"name": "Registered Nurse",
"category": "nursing",
"description": "Licensed healthcare professional who provides patient care...",
"compact": { "hasCompact": true, "compactId": "nlc" },
"exam": { "name": "NCLEX-RN", "provider": "NCSBN" },
"stats": { "workforce": 3175390, "averageSalary": 89010 }
}
],
"summary": { "total": 7, "withCompact": 3 }
}
} /api/v1/nursing/states/ List all 50 states with NLC membership status, board info, and profession coverage.
Response
{
"success": true,
"data": {
"states": [
{
"state": { "name": "Texas", "abbreviation": "TX", "slug": "texas" },
"nlcMember": true,
"nlcPending": false,
"professionsCovered": ["rn", "lvn", "np", "cnm", "crna", "cns", "cna"],
"board": { "name": "Texas Board of Nursing", "website": "https://www.bon.texas.gov" }
}
],
"summary": {
"totalStates": 50,
"nlcMemberCount": 42,
"nlcPendingCount": 2
}
}
} /api/v1/nursing/states/{state}/ Get all nursing professions available for a specific state.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
state | string | Yes | State slug (e.g., texas, california) |
Response
{
"success": true,
"data": {
"state": { "name": "Texas", "abbreviation": "TX", "slug": "texas" },
"board": { "name": "Texas Board of Nursing", "website": "https://www.bon.texas.gov" },
"nlcMember": true,
"professions": {
"rn": { "available": true, "totalFees": 378 },
"lvn": { "available": true, "totalFees": 200 }
}
}
} /api/v1/nursing/states/{state}/{profession}/ Get full requirements for a specific profession in a state.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
state | string | Yes | State slug (e.g., texas) |
profession | string | Yes | Profession ID (rn, lvn, np, cnm, crna, cns, cna) |
Response
{
"success": true,
"data": {
"state": { "name": "Texas", "abbreviation": "TX" },
"profession": { "id": "rn", "name": "Registered Nurse" },
"requirements": { "education": {...}, "examination": {...} },
"fees": { "application": 110, "examination": 200, "total": 378 },
"timeline": { "estimatedWeeks": { "min": 2, "max": 4 } },
"compact": { "isMember": true, "compactId": "nlc" },
"renewal": { "cycleYears": 2, "fee": 68, "ceHours": 20 }
}
} Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | Yes | Request success status |
data |
object | Yes | Response payload |
state |
object | Yes | State identification |
name |
string | Yes | Full state name |
abbreviation |
string | Yes | Two-letter state code |
slug |
string | Yes | URL-safe state identifier |
board |
object | Yes | State nursing board info |
name |
string | Yes | Board name |
website |
string | Yes | Official board website URL |
phone |
string | No | Board phone number |
email |
string | No | Board email address |
applicationPortal |
string | No | Online application URL |
requirements |
object | Yes | Licensing requirements |
education |
object | Yes | Education requirements |
examination |
object | Yes | Exam requirements |
backgroundCheck |
object | Yes | Background check requirements |
fees |
object | Yes | Fee breakdown |
application |
object | Yes | Application fee with amount |
examination |
object | No | Exam fee |
fingerprinting |
object | No | Background check fee |
total |
number | Yes | Total initial licensing cost (USD) |
timeline |
object | Yes | Processing timeline |
estimatedWeeks |
object | Yes | Processing time range (min/max) |
steps |
array | Yes | Step-by-step licensing process |
compact |
object | Yes | NLC compact status |
isMember |
boolean | Yes | Whether state is NLC member |
compactId |
string | No | Compact identifier (nlc) |
effectiveDate |
string | No | NLC effective date (ISO 8601) |
renewal |
object | Yes | License renewal info |
cycleYears |
number | Yes | Renewal cycle in years |
fee |
number | Yes | Renewal fee (USD) |
ceRequired |
boolean | Yes | Whether CE is required |
ceHours |
number | No | Required CE hours per cycle |
endorsement |
object | Yes | License by endorsement info |
available |
boolean | Yes | Whether endorsement is available |
requirements |
array | No | Endorsement requirements list |
fee |
number | No | Endorsement fee (USD) |
meta |
object | Yes | Data metadata |
lastVerified |
string | Yes | Last verification date (ISO 8601) |
sourceUrls |
array | Yes | Official source URLs |
meta |
object | Yes | Response metadata |
timestamp |
string | Yes | ISO 8601 response timestamp |
version |
string | Yes | API version |
/api/v1/nursing/compacts/nlc/ Get NLC compact membership data with all state information.
Response
{
"success": true,
"data": {
"compact": { "id": "nlc", "name": "Nurse Licensure Compact" },
"memberStates": [
{ "abbreviation": "TX", "name": "Texas", "effectiveDate": "2018-01-19" }
],
"pendingStates": [
{ "abbreviation": "NY", "name": "New York", "status": "implementation" }
],
"summary": { "totalMemberStates": 37, "totalPendingStates": 4 }
}
} Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | Yes | Request success status |
data |
object | Yes | Response payload |
compact |
object | Yes | Compact metadata |
id |
string | Yes | Compact identifier (nlc) |
name |
string | Yes | Full compact name |
website |
string | Yes | Official compact website |
description |
string | Yes | Compact description |
memberStates |
array | Yes | States with full NLC membership |
abbreviation |
string | Yes | Two-letter state code |
name |
string | Yes | Full state name |
effectiveDate |
string | No | Date state joined NLC (ISO 8601) |
pendingStates |
array | Yes | States with pending NLC legislation |
abbreviation |
string | Yes | Two-letter state code |
name |
string | Yes | Full state name |
status |
string | Yes | implementation or legislation |
notes |
string | No | Additional context |
nonMemberStates |
array | Yes | States without NLC membership |
eligibilityRequirements |
array | Yes | Requirements to obtain multistate license |
meta |
object | Yes | Response metadata |
/api/v1/nursing/salaries/ Get salary summary across all nursing professions with national averages and top/lowest paying states.
Response
{
"success": true,
"data": {
"salaries": [
{
"profession": "rn",
"nationalMedian": 86070,
"nationalAverage": 89010,
"topPayingState": { "state": "California", "salary": 133340 },
"lowestPayingState": { "state": "Alabama", "salary": 61720 },
"totalEmployed": 3175390,
"dataYear": "2024"
}
]
}
} /api/v1/nursing/salaries/{profession}/ Get detailed salary data for a specific profession including state-by-state breakdown.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profession | string | Yes | Profession ID (rn, lvn, np, cnm, crna, cns) |
Response
{
"success": true,
"data": {
"profession": "rn",
"dataYear": "2024",
"source": { "name": "Bureau of Labor Statistics", "url": "https://www.bls.gov/oes/..." },
"nationalAverage": { "averageSalary": 89010, "medianSalary": 86070, "totalEmployed": 3175390 },
"states": [
{ "abbreviation": "CA", "name": "California", "medianSalary": 133340 },
{ "abbreviation": "TX", "name": "Texas", "medianSalary": 79120 }
],
"rankings": {
"topPaying": [{ "state": "California", "abbreviation": "CA", "medianSalary": 133340 }],
"lowestPaying": [{ "state": "Alabama", "abbreviation": "AL", "medianSalary": 61720 }]
}
}
} Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | Yes | Request success status |
data |
object | Yes | Response payload |
profession |
string | Yes | Profession ID |
dataYear |
string | Yes | Year of salary data (e.g., 2024) |
source |
object | Yes | Data source info |
name |
string | Yes | Source name (Bureau of Labor Statistics) |
url |
string | Yes | Official source URL |
occupationCode |
string | Yes | BLS SOC occupation code |
nationalAverage |
object | Yes | National salary statistics |
averageSalary |
number | Yes | Mean annual salary (USD) |
medianSalary |
number | Yes | Median annual salary (USD) |
percentile10 |
number | Yes | 10th percentile salary |
percentile90 |
number | Yes | 90th percentile salary |
totalEmployed |
number | Yes | Total US employment |
states |
object | Yes | State-by-state salary data (keyed by abbreviation) |
name |
string | Yes | Full state name |
averageSalary |
number | Yes | State average salary |
medianSalary |
number | Yes | State median salary |
totalEmployed |
number | Yes | State employment count |
meta |
object | Yes | Response metadata |
/api/v1/nursing/programs/ List all nursing program providers with educational programs and location data.
Response
{
"success": true,
"data": {
"programs": [
{
"slug": "arizona-state-university",
"name": "Arizona State University",
"city": "Mesa",
"state": "AZ",
"institutionType": "public",
"programCount": 3,
"programTypes": ["bsn", "msn", "dnp"]
}
],
"summary": { "totalProviders": 116, "totalPrograms": 272, "statesWithPrograms": 25 }
}
} /api/v1/nursing/programs/{slug}/ Get detailed information for a specific program provider including educational programs and tuition.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | Provider slug (e.g., arizona-state-university) |
Response
{
"success": true,
"data": {
"provider": {
"slug": "arizona-state-university",
"name": "Arizona State University",
"location": { "city": "Mesa", "state": "AZ", "zipCode": "87556" },
"contact": { "phone": "(391) 757-4416", "email": "nursing@arizonastate.edu" },
"institutionType": "public"
},
"programs": [
{
"type": "bsn",
"name": "Bachelor of Science in Nursing (BSN)",
"format": "campus",
"duration": { "months": 48 },
"tuition": { "total": 17424, "perCredit": 145 }
}
]
}
} Ready to Get Started?
Sign up for a free API key and start building with professional licensing data today.