---
title: "Physician registration lookup (GO) — Conselho Regional de Medicina (CRM-GO)"
method: POST
path: "/br/crm/go/consulta-medicos"
tags: ["Exato - Conselhos Profissionais"]
---

# Physician registration lookup (GO) — Conselho Regional de Medicina (CRM-GO)

`POST /br/crm/go/consulta-medicos`

## Request

- Base URL: `https://api.exato.digital`
- URL: `https://api.exato.digital/br/crm/go/consulta-medicos`
- Auth: API key in header `token`
- TypeScript: <https://skmtc.dev/exato/apis/exato/docs/br/crm/go/consulta-medicos/post.ts> (a function with typed inputs; its response is checked against the schema)

Searches the physician registry of the state in the route by name or CRM number and returns each physician's registration status.

**Source:** public physician search of the Regional Council of Medicine (CRM) of that state and of the Conselho Federal de Medicina (CFM), queried at the time of the request.

**Returns:** `Total` and, in `Medicos`, each physician found: name and social name, CRM number and state, registration status and type, specialties, registration date, and graduation institution and date.

**Execution:** synchronous; no PDF.

**Note:**
- Send `nome` or `numero_crm`. The councils do not search by CPF: a query without name or CRM number is not run (code 7), and neither is one with a CPF in either field.
- Same search as `/br/crm/consulta-medicos` with `uf`.

## Query parameters

- `test_mode` boolean
- `lightweight` boolean

## Request body `application/x-www-form-urlencoded`

- object
  - `nome` string: Physician's name. Send `nome` or `numero_crm`.
  - `numero_crm` string: CRM registration number. E.g.: 123456. Send `nome` or `numero_crm`; a CPF is not accepted here.

## Response `200`

Success

- CrmConsultaMedicosResponse: CrmConsultaMedicosResponse
  - `ApiResultType` 'Success' | 'SuccessWithRemarks' | 'InvalidInput' | 'DataUnavailable' | 'NotFound' | 'InvalidParameters' | 'UnsupportedCombination' | 'RemoteUnavailable' | 'Timeout' | 'RetryLimitReached' | 'RemoteError' | 'InProgress' | 'InsufficientCredits' | 'ConcurrentLimitReached' | 'TransactionUnavailable' | 'AccessDenied' | 'TransactionCancelled' | 'Created' | 'Updated' | 'Deleted' | 'InternalError' | 'ValidationFailed' | 'Conflict' | 'ResourceLocked' | 'PendingApproval' | 'Approved' | 'Rejected' | 'Cancelled' | 'Paused' | 'Resumed': New unified result type for queries and administrative operations. Replaces TransactionResultType with better semantics.
  - `BalanceInBrl` number, double: Current balance in BRL.
  - `BalanceInCredits` integer: Current balance in credits.
  - `DataSourceCategory` string: Data source category
  - `Date` string, date-time: Transaction date.
  - `ElapsedTimeInMilliseconds` integer: Execution time (in milliseconds).
  - `ExecutedDataSourceName` string: Display name of the query type that actually ran.
  - `ExecutedDataSourceTypeId` integer: Id of the query type that actually ran (the one recorded on the transaction), which may differ from the requested type when the route is generic per state or when a master delegates to a sub-query.
  - `HasOriginalFiles` boolean: Indicates that the transaction carries original files from the source (the issued certificate, for example) for download at OriginalFilesUrl. False does not mean the URL does not exist: it is always built.
  - `HasPdf` boolean: Indicates that there is a PDF proof document for the result.
  - `Message` string: Message.
  - `OriginalFilesUrl` string: URL to download the transaction's original files (when available).
  - `OutdatedResult` boolean: Indicates that the result is dated.
  - `PdfUrl` string: URL to download the transaction's PDF proof document (when available).
  - `ResultSubtype` string: Specific result subtype to provide additional context (e.g.: 'duplicate_name', 'invalid_cpf').
  - `ResultTypeCode` integer: Numeric result code (compatible with TransactionResultTypeCode but extensible).
  - `TotalCost` number, double: Internal use only.
  - `TotalCostInCredits` integer: Total transaction cost in credits.
  - `TransactionResultType` 'Success' | 'SuccessWithRemarks' | 'InvalidInputData' | 'UnavailableData' | 'EntityNotFound' | 'InvalidParameters' | 'ParametersNotSupported' | 'RemoteSystemUnavailable' | 'Timeout' | 'AttemptsLimitReached' | 'RemoteSystemError' | 'AsyncExecutionInProgress' | 'AwaitingExecution' | 'BirthDateRequired' | 'InsufficientBalance' | 'SimultaneousTransactionsLimitReached' | 'TransactionUnavailable' | 'AccessDenied' | 'TransactionCancelled' | 'InternalError': <table class="transaction"><thead><tr><th>TransactionResultType Code</th><th>TransactionResultType</th><th>Final</th><th>Billable</th><th>Error</th></tr></thead><tbody><tr><td>1</td><td>Success</td><td>True</td><td>True</td><td>False</td></tr><tr><td>2</td><td>Partial success or success with remarks</td><td>True</td><td>True</td><td>False</td></tr><tr><td>3</td><td>Invalid input or document</td><td>True</td><td>False</td><td>True</td></tr><tr><td>4</td><td>Data not available</td><td>True (for the day)</td><td>False</td><td>False</td></tr><tr><td>5</td><td>Entity or document nonexistent/not found</td><td>True</td><td>True</td><td>False</td></tr><tr><td>6</td><td>Invalid input parameters</td><td>True</td><td>False</td><td>True</td></tr><tr><td>7</td><td>Unsupported parameter combination</td><td>True</td><td>False</td><td>True</td></tr><tr><td>8</td><td>Data source or remote system unavailable</td><td>False</td><td>False</td><td>True</td></tr><tr><td>9</td><td>Time limit exceeded</td><td>False</td><td>False</td><td>True</td></tr><tr><td>10</td><td>Attempts limit reached</td><td>False</td><td>False</td><td>True</td></tr><tr><td>11</td><td>Error in the data source or remote system</td><td>False</td><td>False</td><td>True</td></tr><tr><td>12</td><td>Transaction in progress</td><td>False</td><td>False</td><td>False</td></tr><tr><td>101</td><td>Insufficient credit balance, please contact us</td><td>False</td><td>False</td><td>True</td></tr><tr><td>102</td><td>Simultaneous transactions limit reached, please contact us</td><td>False</td><td>False</td><td>True</td></tr><tr><td>103</td><td>Transaction not available, please contact us</td><td>False</td><td>False</td><td>True</td></tr><tr><td>104</td><td>Invalid credentials or access denied, please contact us</td><td>False</td><td>False</td><td>True</td></tr><tr><td>105</td><td>Transaction cancelled, please contact us</td><td>False</td><td>False</td><td>True</td></tr><tr><td>255*</td><td>Unexpected internal error, please contact us</td><td>True (for the day)</td><td>False</td><td>True</td></tr><tr><td>* Query under maintenance, try again later or contact Exato to report the problem</td></tr></tbody></table>
  - `TransactionResultTypeCode` integer: Transaction result type code.
  - `UniqueIdentifier` string: Unique transaction identifier. Store it for control and debugging.
  - `Result` CrmConsultaMedicosResult: CrmConsultaMedicosResult
    - `Total` integer: Number of physicians found.
    - `Medicos` CrmMedicoItem[]: Physicians found, one entry per registration.
      - `Nome` string: Physician's name.
      - `NomeSocial` string: Social name, when registered.
      - `NumeroCrm` string: CRM registration number.
      - `Uf` string: State of the CRM registration.
      - `Situacao` string: Registration status, as published by the council.
      - `TipoInscricao` string: Registration type, as published by the council (e.g. principal or secondary).
      - `Especialidade` string: Registered medical specialties, when any.
      - `DataInscricao` string: Registration date, as published by the council.
      - `InstituicaoGraduacao` string: Institution where the physician graduated.
      - `DataGraduacao` string: Graduation date, as published by the council.

---

[API](https://skmtc.dev/exato/apis/exato.md) - [All operations](https://skmtc.dev/exato/apis/exato/llms.txt) - [OpenAPI document](https://skmtc.dev/exato/apis/exato/revisions/6574427dd896?raw)
