New v1.0 now available

Professional Licensing Data API

Access verified licensing requirements, fees, and reciprocity data for all 50 states. Built for developers, researchers, and educators.

bash
$ curl -H "Authorization: Bearer $API_KEY" \
https://thelicenseguide.com/api/v1/nursing/states/texas/rn/
# Response
"state": "texas",
"profession": "rn",
"fees": "total": 378
50
States
7
Professions
300+
Endpoints
99.9%
Uptime

Everything You Need

Comprehensive API coverage for professional licensing data across the United States.

Licensing Requirements

300+ endpoints

Complete state-by-state requirements for multiple profession types including education, exams, and applications.

Compact & Reciprocity

40+ states

Interstate compact membership, pending states, and license portability across jurisdictions.

Fee Schedules

Verified

Application, exam, renewal, and endorsement fees by state with verification dates.

Timeline Data

New

Processing 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:

code
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:

code
Authorization: Bearer sk_live_your_api_key_here

API keys are available with all plans, including the free tier. Contact us to get your key.

Quick Start

List all states:

bash
curl -H "Authorization: Bearer sk_live_your_api_key" \
  https://thelicenseguide.com/api/v1/states/

Get Texas RN license requirements:

bash
curl -H "Authorization: Bearer sk_live_your_api_key" \
  https://thelicenseguide.com/api/v1/nursing/states/texas/rn/

Get NLC compact member states:

bash
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:

json
{
  "success": true,
  "data": { ... },
  "meta": {
    "timestamp": "2026-01-11T12:00:00Z",
    "version": "1.0.0"
  }
}

Error Response:

json
{
  "success": false,
  "error": {
    "code": "state_not_found",
    "message": "State 'xyz' not found"
  }
}

Rate Limits

Rate limits vary by plan:

PlanRequestsPeriodPrice
Free100per day$0
Starter10,000per month$49/mo
Professional100,000per month$199/mo
EnterpriseUnlimited-Custom
Rate limit headers are included in all responses:
  • X-RateLimit-Limit: Your plan's limit
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Unix timestamp when limit resets

SDK Examples

JavaScript / Node.js:

javascript
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:

python
import requests

API_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:

bash
# 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:

StatusError CodeDescription
400invalid_requestMalformed request or parameters
401unauthorizedMissing or invalid API key
404state_not_foundInvalid state slug
404profession_not_foundInvalid profession ID
429rate_limit_exceededToo many requests
500server_errorInternal server error
Example error handling in JavaScript:
javascript
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

GET /api/v1/states/

List all 50 US states with basic metadata.

Response

response.json
{
  "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
GET /api/v1/professions/

List all supported profession verticals with status and coverage information.

Response

response.json
{
  "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" }
    }
  }
}
GET /api/v1/nursing/

Get nursing vertical overview including statistics, available professions, and all endpoint URLs.

Response

response.json
{
  "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/"
    }
  }
}
GET /api/v1/nursing/professions/

List all 7 nursing professions with metadata, exam info, and workforce statistics.

Response

response.json
{
  "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 }
  }
}
GET /api/v1/nursing/states/

List all 50 states with NLC membership status, board info, and profession coverage.

Response

response.json
{
  "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
    }
  }
}
GET /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

response.json
{
  "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 }
    }
  }
}
GET /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

response.json
{
  "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
GET /api/v1/nursing/compacts/nlc/

Get NLC compact membership data with all state information.

Response

response.json
{
  "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
GET /api/v1/nursing/salaries/

Get salary summary across all nursing professions with national averages and top/lowest paying states.

Response

response.json
{
  "success": true,
  "data": {
    "salaries": [
      {
        "profession": "rn",
        "nationalMedian": 86070,
        "nationalAverage": 89010,
        "topPayingState": { "state": "California", "salary": 133340 },
        "lowestPayingState": { "state": "Alabama", "salary": 61720 },
        "totalEmployed": 3175390,
        "dataYear": "2024"
      }
    ]
  }
}
GET /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

response.json
{
  "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
GET /api/v1/nursing/programs/

List all nursing program providers with educational programs and location data.

Response

response.json
{
  "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 }
  }
}
GET /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

response.json
{
  "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.