Buscar oportunidades no PNCP
/v1/oportunidadesX-Api-KeyDescoberta por palavras e filtros explícitos na janela PNCP publicada. O status deriva do código de situação da fonte e dos prazos de proposta avaliados no instante fixado em meta. Fornecedores aparecem somente quando um resultado coletado identifica uma PJ por CNPJ exato; a publicação do edital não identifica vencedor. Nenhum resultado quer dizer só que nada corresponde ao recorte publicado, não que a oportunidade não existe. O exemplo é uma resposta oficial observada em um recorte limitado (um dia, DF, uma modalidade).
Parâmetros
qstring · queryPalavras no objeto e nas descrições dos itens; não aplica CNAE.
De 2 a 120 caracteres.
ufstring · queryUF explícita; deve pertencer ao manifesto da janela publicada.
Formato:
^[A-Z]{2}$.municipio_ibgestring · queryCódigo IBGE de sete dígitos informado pelo PNCP.
Formato:
^[0-9]{7}$.modalidadeinteger · queryCódigo PNCP explícito; deve pertencer ao manifesto da janela publicada.
Mínimo 1.
statusstring · queryValores:
futura,aberta,prazo_encerrado,prazo_indeterminado,revogada,anulada,suspensa,desconhecida.prazo_destring (date) · queryPrimeiro dia inclusivo do encerramento no calendário de Brasília.
prazo_atestring (date) · queryÚltimo dia inclusivo do encerramento no calendário de Brasília.
limitinteger · queryEntre 1 e 100. Padrão:
20.cursorstring · queryCursor opaco vinculado à geração, aos filtros e a avaliado_em.
Resposta
Página vinculada à geração, aos filtros e ao instante de avaliação.
itemsarray de objetonumero_controle_pncpstringnumero_comprastring | nullano_compraintegerobjetostringitens_resumoarray de objetonumero_itemintegerdescricaostringsituacao_fontestring | null
itens_totalintegercontratanteobjetocnpjstringnomestring | null
localidadeobjetoufstringmunicipio_ibgestring | nullmunicipiostring | null
modalidadeobjetocodigointegernomestring | null
situacao_fonteobjetocodigointeger | nullnomestring | null
statusstringValores:
futura,aberta,prazo_encerrado,prazo_indeterminado,revogada,anulada,suspensa,desconhecida.data_abertura_propostastring | null (date-time)data_encerramento_propostastring | null (date-time)data_publicacao_pncpstring (date-time)data_atualizacaostring | null (date-time)valor_total_estimadostring | nullurl_fontestring (uri)fornecedores_identificadosarray de objetocnpjstringnomestring | nullnumero_itemintegersituacao_resultadoobjetocodigointeger | nullnomestring | null
data_resultadostring | null (date-time)data_cancelamentostring | null (date-time)motivo_cancelamentostring | nullurl_fontestring (uri)
fornecedores_totalinteger
has_morebooleannext_cursorstring | nullmetaobjetofonte"PNCP"conjunto"pncp-oportunidades"snapshot_idstringgeracaointegercobertura"janela_completa_recortada"criterio"data_publicacao_pncp"data_inicialstring (date)data_finalstring (date)ufsarray de stringmodalidadesarray de integerconsultado_emstring (date-time)avaliado_emstring (date-time)evidenciastringValores:
fixture_sintetica,live_nao_verificada,pncp_live_contrato_2026-09-25.contrato_fontestringValores:
documentado_nao_verificado_live,openapi_oficial_capturado.
Erros
| Status | Quando | Código |
|---|---|---|
| 401 | Chave ausente, inválida ou revogada. | |
| 409 | A geração do cursor deixou de ser a publicação atual. | geracao_oportunidades_expirada |
| 422 | Parâmetro ou cursor inválido, ou recorte fora da cobertura publicada. | recorte_nao_coberto |
| 429 | Cota diária da chave atingida (1.000 chamadas por padrão). Toda requisição autenticada conta, inclusive as que terminam em erro e as recusadas por cota. A contagem renova na virada do dia da base. A resposta não traz Retry-After. | |
| 503 | Oportunidades sem janela completa publicada, autenticação indisponível, base indisponível, consulta interrompida pelo tempo limite ou consultas demais em andamento. | oportunidades_indisponiveis base_indisponivel api_sobrecarregada consulta_demorada |
Formatos de erro em Erros; o que conta na cota em Autenticação e cota.