IaBulaDocs API V1English
Navegar na documentação
API Reference

Busca e registros de medicamentos

.md

Busque medicamentos brasileiros por nome, filtre registros e consulte detalhes canônicos com paginação por cursor e evidência.

Nesta página

GET /v1/medications/search procura uma substring literal do nome oficial, sem distinção entre maiúsculas e minúsculas. Não é o Resolve: a busca retorna uma lista de registros, sem declarar que uma consulta identifica uma variante única. %, _ e ! não são curingas.

bash
curl --fail-with-body --get "$IABULA_API_BASE/v1/medications/search" \
  --header "X-API-Key: $IABULA_API_KEY" \
  --data-urlencode 'q=dipirona' \
  --data-urlencode 'limit=20'

q aceita de 1 a 256 caracteres quando informado. limit aceita de 1 a 100, com padrão 20. ingredient_id e category_id são UUIDs canônicos. dosage_form é igualdade com a forma canônica, sem distinção de caixa. Filtros dependem de vínculos realmente existentes no catálogo.

Paginação estável por cursor#

Cada página contém data e next_cursor. Passe o cursor recebido sem decodificar ou alterá-lo. O cursor de busca está associado aos filtros; para mudar q ou outro filtro, recomece sem cursor. Cursor inválido ou usado com filtros diferentes resulta em HTTP 400.

bash
curl --fail-with-body --get "$IABULA_API_BASE/v1/medications/search" \
  --header "X-API-Key: $IABULA_API_KEY" \
  --data-urlencode "q=dipirona" \
  --data-urlencode "cursor=$IABULA_CURSOR"

Identificação exata#

GET /v1/medications/lookup aceita scheme EAN, CMED_GGREM ou CMED_REGISTRO e value literal. matched identifica um candidato; ambiguous preserva candidatos separados; unresolved não cria correspondência por nome. Cada candidato traz IDs reutilizáveis e evidência da fonte.

bash
curl --fail-with-body --get "$IABULA_API_BASE/v1/medications/lookup"   --header "X-API-Key: $IABULA_API_KEY"   --data-urlencode "scheme=EAN"   --data-urlencode "value=7891058021580"

Detalhe pelo UUID retornado#

Use um id retornado pela busca em GET /v1/medications/{id}. O detalhe inclui product_id e listas de apresentações, registros, empresas e categorias quando disponíveis. Não invente UUIDs nem deduza um UUID a partir de um nome. Um ID inexistente retorna HTTP 404.

bash
curl --fail-with-body "$IABULA_API_BASE/v1/medications/$IABULA_MEDICATION_ID" \
  --header "X-API-Key: $IABULA_API_KEY"

Interprete os campos com evidência#

product_name, brand_name, dosage_form e active_ingredient_text têm semânticas distintas. Campos sem mapeamento podem ser nulos. active_ingredient_text conserva texto da fonte e não prova um vínculo a ActiveIngredient. Categorias regulatórias não são indicações clínicas.

Contrato e tipos
ParâmetroLocalObrigatórioTipo e limites
qquerynostring; minLength=1, maxLength=256 | null
ingredient_idquerynostring (uuid) | null
dosage_formquerynostring; minLength=1, maxLength=100 | null
category_idquerynostring (uuid) | null
identifier_schemequerynostring: EAN, CMED_GGREM, CMED_REGISTRO | null
identifier_valuequerynostring; minLength=1, maxLength=64 | null
expandquerynostring: catalog_context | null
limitquerynointeger; minimum=1, maximum=100, default=20
cursorquerynostring; maxLength=2048 | null
Contrato e tipos
HTTPContent-TypeSchema
200application/jsonMedicationPage
400application/jsonProblem
401application/jsonProblem
403application/jsonProblem
429application/jsonProblem
500application/jsonProblem
503application/jsonProblem
422application/jsonHTTPValidationError

GET /v1/medications/lookup#

Contrato e tipos
ParâmetroLocalObrigatórioTipo e limites
schemequeryyesstring: EAN, CMED_GGREM, CMED_REGISTRO
valuequeryyesstring; minLength=1, maxLength=64
Contrato e tipos
HTTPContent-TypeSchema
200application/jsonIdentifierLookup
400application/jsonProblem
401application/jsonProblem
403application/jsonProblem
429application/jsonProblem
500application/jsonProblem
503application/jsonProblem
422application/jsonHTTPValidationError

GET /v1/medications/{id}#

Contrato e tipos
ParâmetroLocalObrigatórioTipo e limites
idpathyesstring (uuid)
Contrato e tipos
HTTPContent-TypeSchema
200application/jsonMedicationDetail
400application/jsonProblem
401application/jsonProblem
403application/jsonProblem
429application/jsonProblem
500application/jsonProblem
503application/jsonProblem
404application/jsonProblem
422application/jsonHTTPValidationError

Campos do contrato OpenAPI#

Contrato e tipos
Schema.campoTipo e limitesObrigatório
CatalogContext.source_substancesarray<SupportedSourceValue>yes
CatalogContext.source_laboratoriesarray<SupportedSourceValue>yes
CatalogContext.source_identifiersarray<SupportedSourceIdentifier>yes
CatalogContext.variantsarray<CatalogVariant>yes
CatalogIngredient.idstring (uuid)yes
CatalogIngredient.namestringyes
CatalogIngredient.rolestring | nullno
CatalogIngredient.amount_textstring | nullno
CatalogIngredient.evidencearray<Evidence>yes
CatalogPresentation.idstring (uuid)yes
CatalogPresentation.strengthstring | nullno
CatalogPresentation.unit_countinteger | nullno
CatalogPresentation.package_descriptionstring | nullno
CatalogPresentation.identifiersarray<SupportedSourceIdentifier>yes
CatalogPresentation.evidencearray<Evidence>yes
CatalogPreview.source_substancesarray<string>yes
CatalogPreview.source_laboratoriesarray<string>yes
CatalogPreview.cmed_registrationsarray<string>yes
CatalogPreview.has_multiple_source_valuesbooleanyes
CatalogPreview.source_values_truncatedbooleanyes
CatalogPreview.presentation_countintegeryes
CatalogPreview.presentationsarray<CatalogPreviewPresentation>yes
CatalogPreviewPresentation.idstring (uuid)yes
CatalogPreviewPresentation.variant_idstring (uuid)yes
CatalogPreviewPresentation.dosage_formstring | nullno
CatalogPreviewPresentation.strengthstring | nullno
CatalogPreviewPresentation.unit_countinteger | nullno
CatalogPreviewPresentation.package_descriptionstring | nullno
CatalogPreviewPresentation.ggremarray<string>yes
CatalogPreviewPresentation.eansarray<string>yes
CatalogPreviewPresentation.matches_identifierbooleanyes
CatalogVariant.idstring (uuid)yes
CatalogVariant.dosage_formstring | nullno
CatalogVariant.evidencearray<Evidence>yes
CatalogVariant.ingredientsarray<CatalogIngredient>yes
CatalogVariant.presentationsarray<CatalogPresentation>yes
CategoryDetail.idstring (uuid)yes
CategoryDetail.vocabulary_namestringyes
CategoryDetail.codestring | nullno
CategoryDetail.namestringyes
CategoryDetail.evidencearray<Evidence>yes
CompanyDetail.idstring (uuid)yes
CompanyDetail.official_namestringyes
CompanyDetail.registry_identifierstring | nullno
CompanyDetail.evidencearray<Evidence>yes
Evidence.classstringyes
Evidence.sourcestring | nullno
Evidence.datasetstring | nullno
Evidence.retrieved_atstring (date-time) | nullno
Evidence.source_versionstring | nullno
Evidence.source_record_idstring | nullno
Evidence.source_run_idstring | nullno
Evidence.attributestring | nullno
Evidence.rule_versionstring | nullno
HTTPValidationError.detailarray<ValidationError>no
IdentifierCandidate.product_idstring (uuid)yes
IdentifierCandidate.product_namestringyes
IdentifierCandidate.variant_idstring (uuid) | nullno
IdentifierCandidate.dosage_formstring | nullno
IdentifierCandidate.presentation_idstring (uuid) | nullno
IdentifierCandidate.strengthstring | nullno
IdentifierCandidate.package_descriptionstring | nullno
IdentifierCandidate.evidencearray<Evidence>yes
IdentifierLookup.statusstring: matched, ambiguous, unresolvedyes
IdentifierLookup.schemestring: EAN, CMED_GGREM, CMED_REGISTROyes
IdentifierLookup.valuestringyes
IdentifierLookup.candidatesarray<IdentifierCandidate>yes
IdentifierLookup.reasonstring: no_exact_match, multiple_exact_matches | nullno
MedicationDetail.idstring (uuid)yes
MedicationDetail.product_namestringyes
MedicationDetail.brand_namestring | nullno
MedicationDetail.dosage_formstring | nullno
MedicationDetail.active_ingredient_textstring | nullno
MedicationDetail.evidencearray<Evidence>yes
MedicationDetail.catalog_contextCatalogContext | nullno
MedicationDetail.identity_previewCatalogPreview | nullno
MedicationDetail.product_idstring (uuid)yes
MedicationDetail.presentationsarray<PresentationDetail>yes
MedicationDetail.registrationsarray<RegistrationDetail>yes
MedicationDetail.companiesarray<CompanyDetail>yes
MedicationDetail.categoriesarray<CategoryDetail>yes
MedicationPage.dataarray<MedicationSummary>yes
MedicationPage.next_cursorstring | nullyes
MedicationSummary.idstring (uuid)yes
MedicationSummary.product_namestringyes
MedicationSummary.brand_namestring | nullno
MedicationSummary.dosage_formstring | nullno
MedicationSummary.active_ingredient_textstring | nullno
MedicationSummary.evidencearray<Evidence>yes
MedicationSummary.catalog_contextCatalogContext | nullno
MedicationSummary.identity_previewCatalogPreview | nullno
PresentationDetail.idstring (uuid)yes
PresentationDetail.strengthstring | nullno
PresentationDetail.package_descriptionstring | nullno
PresentationDetail.evidencearray<Evidence>yes
Problem.typestringyes
Problem.titlestringyes
Problem.statusintegeryes
Problem.codestringyes
Problem.detailstring | nullno
Problem.request_idstringyes
RegistrationDetail.idstring (uuid)yes
RegistrationDetail.authoritystringyes
RegistrationDetail.registration_numberstringyes
RegistrationDetail.statusstring | nullno
RegistrationDetail.valid_fromstring (date) | nullno
RegistrationDetail.valid_tostring (date) | nullno
RegistrationDetail.valid_to_monthstring | nullno
RegistrationDetail.evidencearray<Evidence>yes
SupportedSourceIdentifier.valuestringyes
SupportedSourceIdentifier.evidencearray<Evidence>yes
SupportedSourceIdentifier.schemestring: CMED_REGISTRO, CMED_CNPJ, CMED_GGREM, EANyes
SupportedSourceValue.valuestringyes
SupportedSourceValue.evidencearray<Evidence>yes
ValidationError.locarray<string | integer>yes
ValidationError.msgstringyes
ValidationError.typestringyes
ValidationError.inputobjectno
ValidationError.ctxobjectno