Brazil โ Medical Professional (CRM)
Validates and retrieves registration details for physicians registered in Brazil across all 27 state jurisdictions (Unidades Federativas โ UF). You can query by CRM number and State (uf) or by Full Name (fullName).
When querying by CRM number and uf, you can also optionally provide the physician's 11-digit cpf and dateOfBirth (DD/MM/YYYY) to cross-validate whether those identity credentials match the registered physician (identityValidated: true | false).
API referenceโ
Endpointโ
https://api.verifik.co/v2/br/medical-professional
(Also available at alias https://api.verifik.co/v2/br/health-worker)
Headersโ
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Parametersโ
Send documentNumber (or crm) + uf, or fullName.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
documentType | string | Optional | Set to CRM when querying by CRM registration number. | CRM |
documentNumber | string | CRM mode | Physician's CRM registration number (up to 7 digits). Alias: crm. | 123456 |
uf | string | CRM mode (Optional in Name mode) | 2-letter Brazilian state code (AC, AL, AM, AP, BA, CE, DF, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RO, RR, RS, SC, SE, SP, TO). | SP |
cpf | string | Optional | 11-digit Brazilian CPF (with or without formatting) to cross-validate with dateOfBirth. | 12345678909 |
dateOfBirth | string | Optional | Date of birth in DD/MM/YYYY format to cross-validate with cpf. | 15/05/1980 |
fullName | string | Name mode | Physician's full name (minimum 3 characters). | CARLOS EDUARDO SILVA |
Registration Status Codes (statusCode / status)โ
| Code | Status Label | isActive | Description |
|---|---|---|---|
A | Regular | true | Physician is regularly registered and authorized to practice medicine. |
B | Suspensรฃo parcial permanente | false | Permanent partial suspension due to disabling condition. |
C | Cassado | false | Medical license revoked following final ethical-professional judgment. |
E | Inoperante | false | Inactive for more than five years or unknown whereabouts. |
F | Falecido | false | Deceased. |
G | Sem o exercรญcio da profissรฃo na UF | false | Not practicing in the queried state (UF). |
I | Interdiรงรฃo cautelar - total | false | Precautionary total interdiction from practicing medicine. |
J | Suspenso por ordem judicial - parcial | false | Partial suspension by court order. |
L | Cancelado | false | Registration cancelled at holder's request or administrative deadline. |
M | Suspensรฃo total temporรกria | false | Temporary total suspension due to disabling condition. |
N | Interdiรงรฃo cautelar - parcial | false | Precautionary partial interdiction. |
O | Suspenso por ordem judicial - total | false | Total suspension by court order. |
P | Aposentado | false | Registration cancelled due to retirement. |
R | Suspensรฃo temporรกria | false | Temporary suspension (up to 30 days) due to disciplinary proceeding. |
S | Suspenso - total | false | Total suspension due to disabling condition. |
T | Transferido | false | Transferred registration to another state (UF). |
X | Suspenso - parcial | false | Partial suspension due to disabling condition. |
Registration Types (registrationTypeCode / registrationType)โ
| Code | Registration Type |
|---|---|
P | Principal |
S | Secundรกria |
V | Provisรณria |
T | Temporรกria |
E | Estudante Mรฉdico Estrangeiro |
Requestโ
- Node.js
- Python
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/br/medical-professional", {
params: {
documentType: "CRM",
documentNumber: "123456",
uf: "SP",
},
headers: {
Accept: "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
});
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/br/medical-professional"
headers = {
"Accept": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
params = {
"documentType": "CRM",
"documentNumber": "123456",
"uf": "SP"
}
r = requests.get(url, headers=headers, params=params)
print(r.json())
Responseโ
- 200
- 404
- 409
{
"data": {
"ambiguous": false,
"arrayName": ["CARLOS", "EDUARDO", "SILVA"],
"cpf": null,
"crm": "123456",
"dateOfBirth": null,
"documentNumber": "123456",
"documentType": "CRM",
"firstName": "CARLOS",
"fullName": "CARLOS EDUARDO SILVA",
"identityValidated": null,
"isActive": true,
"isHealthWorker": true,
"lastName": "EDUARDO SILVA",
"licenses": [
{
"crm": "123456",
"fullName": "CARLOS EDUARDO SILVA",
"isActive": true,
"registrationType": "Principal",
"registrationTypeCode": "P",
"specialties": [
{
"name": "CARDIOLOGIA",
"raw": "CARDIOLOGIA - RQE Nยบ: 45120",
"rqe": "45120"
},
{
"name": "CLรNICA MรDICA",
"raw": "CLรNICA MรDICA - RQE Nยบ: 32110",
"rqe": "32110"
}
],
"status": "Regular",
"statusCode": "A",
"statusDescription": "Mรฉdico que estรก regularmente inscrito no Conselho Regional de Medicina e se encontra apto ao exercรญcio da medicina.",
"uf": "SP",
"updatedAtDate": "01/11/2026"
}
],
"matchMethod": "crm_uf",
"registrationType": "Principal",
"registrationTypeCode": "P",
"specialties": [
{
"name": "CARDIOLOGIA",
"raw": "CARDIOLOGIA - RQE Nยบ: 45120",
"rqe": "45120"
},
{
"name": "CLรNICA MรDICA",
"raw": "CLรNICA MรDICA - RQE Nยบ: 32110",
"rqe": "32110"
}
],
"status": "Regular",
"statusCode": "A",
"statusDescription": "Mรฉdico que estรก regularmente inscrito no Conselho Regional de Medicina e se encontra apto ao exercรญcio da medicina.",
"uf": "SP",
"updatedAtDate": "01/11/2026"
},
"signature": {
"dateTime": "November 4, 2026 6:30 PM",
"message": "Certified by Verifik.co"
}
}
{
"code": "NotFound",
"message": "Record not found"
}
{
"code": "MissingParameter",
"message": "Either (documentNumber/crm and uf) or fullName is required."
}
Sandbox Test Fixturesโ
Use these deterministic test identifiers in sandbox environments:
documentNumber (crm) | uf | fullName | Scenario |
|---|---|---|---|
123456 | SP | CARLOS EDUARDO SILVA | Active physician (statusCode: "A", status: "Regular", isActive: true, Cardiology & Internal Medicine specialties). Pass cpf=12345678909 & dateOfBirth=15/05/1980 for identityValidated: true. |
654321 | RJ | MARIANA COSTA OLIVEIRA | Temporarily suspended (statusCode: "R", status: "Suspensรฃo temporรกria", isActive: false). |
777777 | MG | ROBERTO ALMEIDA SANTOS | Retired (statusCode: "P", status: "Aposentado", isActive: false). |
999999 or 90040401 | SP | โ | Returns 404 NotFound simulation. |