Professional License Verification API

Verify professional licenses, search registered practitioners, and check disciplinary records across South African regulatory boards. Covers healthcare, engineering, architecture, law, and accounting professions.

Live

Base URL

https://api.crimate.net/v1/license

Authentication

Include your License API key in the Authorization header.

curl -H "Authorization: Bearer db_license_live_YOUR_KEY" \
     https://api.crimate.net/v1/license/verify?license_number=MP0412345&board=hpcsa

Endpoints

GET/v1/license/verify

Verify a professional license by license number and board

Parameters: license_number (required), board (required), profession (optional)

Example

GET /v1/license/verify?license_number=MP0412345&board=hpcsa
GET/v1/license/professionals

Search licensed professionals with optional filters

Parameters: name, board, profession, province, status (active/suspended/struck_off), page, per_page

Example

GET /v1/license/professionals?board=ecsa&profession=civil_engineer&province=gauteng
GET/v1/license/professionals/{id}

Get detailed information for a specific professional by ID

Parameters: id (required, path)

Example

GET /v1/license/professionals/HPCSA-MP-0412345
GET/v1/license/professions

List all regulated professions with board and registration requirements

Parameters: board (optional), category (optional)

Example

GET /v1/license/professions?board=hpcsa
GET/v1/license/boards

List all professional regulatory boards with contact and jurisdiction info

Parameters: None

Example

GET /v1/license/boards
GET/v1/license/disciplinary

Search disciplinary actions and sanctions against professionals

Parameters: license_number, board, action_type (warning/suspension/striking_off), from (YYYY-MM-DD), to (YYYY-MM-DD), page, per_page

Example

GET /v1/license/disciplinary?board=hpcsa&from=2025-01-01
GET/v1/license/stats

Dataset statistics (total professionals, boards, professions, latest update)

Parameters: None

Example

GET /v1/license/stats

Response Examples

License verification response:

{
  "verification": {
    "license_number": "MP0412345",
    "board": "hpcsa",
    "board_name": "Health Professions Council of South Africa",
    "professional": {
      "id": "HPCSA-MP-0412345",
      "full_name": "Dr Nomsa Dlamini",
      "profession": "Medical Practitioner",
      "specialisation": "General Practice",
      "province": "gauteng",
      "status": "active",
      "registration_date": "2015-03-20",
      "expiry_date": "2027-03-31"
    },
    "disciplinary_record": {
      "has_actions": false,
      "actions_count": 0
    },
    "verified_at": "2026-03-08T10:30:00Z"
  }
}

Try It

Enter your License API key to make a live request. Generate a key in the dashboard.

Try It

Make a live API call from your browser

GET
curl -H "Authorization: Bearer db_license_live_YOUR_KEY" \
     "https://crimate.net/v1/license/stats"

Data Sources

HPCSA

Health Professions Council of South Africa. Regulates medical practitioners, dentists, psychologists, and other health professionals. Provides registration status and disciplinary records.

SACAP

South African Council for the Architectural Profession. Registers professional architects, senior architectural technologists, and candidate architects with practice status verification.

ECSA

Engineering Council of South Africa. Regulates professional engineers, technologists, and technicians across civil, electrical, mechanical, and other engineering disciplines.

Law Society

Law Society of South Africa and provincial law societies. Maintains the roll of admitted attorneys, conveyancers, and notaries with Fidelity Fund certificate status.

SAICA

South African Institute of Chartered Accountants. Registers chartered accountants (CA(SA)) and associate general accountants with membership status and disciplinary history.

Rate Limits

TierPriceRate LimitDaily QuotaMonthly Quota
FreeR0/mo10 req/min1001,000
StarterR999/mo60 req/min5,00050,000
ProR3,999/mo300 req/minUnlimited500,000

Error Codes

All error responses follow a consistent JSON format:

{
  "error": "error_code",
  "message": "Human-readable description."
}
StatusError CodeDescription
400invalid_requestThe request body or query parameters are malformed.
401unauthorizedMissing or invalid API key.
403no_subscriptionNo active subscription for this API product.
403quota_exceededDaily or monthly quota exceeded.
404not_foundThe requested resource does not exist.
429rate_limit_exceededToo many requests. Check X-RateLimit-Remaining header.
500internal_errorAn unexpected server error occurred.