EditalMD Busca API

The Busca API from EditalMD — 1 operation(s) for busca.

Operations 1

GET /api/busca Busca compras do PNCP por termo. Sempre grátis — é a descoberta #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/editalmd-busca-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

editalmd-busca-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2d690e87
  title: Editalmd Busca API
servers:
- url: https://editalmd.com
tags:
- name: Busca
paths:
  /api/busca:
    get:
      operationId: get_api_busca
      summary: Busca compras do PNCP por termo. Sempre grátis — é a descoberta
      description: 'Devolve: { itens[{id,pncp,objeto,uf,modalidade,situacao,orgao,unidade,valor_estimado,publicado_em,informacao_complementar,processo,abertura_proposta,encerramento_proposta,amparo_legal,amparo_legal_codigo,modalidade_id,situacao_id,municipio,municipio_ibge,orgao_cnpj,ano_compra,sequencial_compra,atualizado_em,prazos,pncp_url,markdown_url,compra_url}], preco_markdown_usd, gratis_acima_de_dias, pago }'
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        description: Termo de busca; mínimo 3 letras.
      - name: uf
        in: query
        required: false
        schema:
          type: string
        description: Filtra por sigla de UF.
      - name: abertas
        in: query
        required: false
        schema:
          type: string
          enum:
          - '1'
        description: '`1` devolve só compras com prazo de proposta ainda por vencer.'
      - name: limite
        in: query
        required: false
        schema:
          type: integer
        description: 1 a 50 (padrão 20).
      responses:
        '200':
          description: '{ itens[{id,pncp,objeto,uf,modalidade,situacao,orgao,unidade,valor_estimado,publicado_em,informacao_complementar,processo,abertura_proposta,encerramento_proposta,amparo_legal,amparo_legal_codigo,modalidade_id,situacao_id,municipio,municipio_ibge,orgao_cnpj,ano_compra,sequencial_compra,atualizado_em,prazos,pncp_url,markdown_url,compra_url}], preco_markdown_usd, gratis_acima_de_dias, pago }'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Busca'
        '400':
          description: Termo com menos de 3 letras.
        '502':
          description: Origem indisponível.
      tags:
      - Busca
components:
  schemas:
    Busca:
      type: object
      properties:
        itens:
          type: array
          items:
            $ref: '#/components/schemas/Compra'
          description: Compras que casaram com o termo.
        preco_markdown_usd:
          type: string
          description: Preço do documento recente.
        gratis_acima_de_dias:
          type: integer
          description: Janela de amostra grátis, em dias.
        pago:
          type: boolean
          description: 'Sempre `false`: buscar não custa.'
      required:
      - itens
      - preco_markdown_usd
      - gratis_acima_de_dias
      - pago
      description: Resultado da busca — sempre grátis.
    Prazos:
      type: object
      properties:
        proposta_inicio:
          type: string
          description: Início do recebimento de propostas.
          nullable: true
        proposta_ate:
          type: string
          description: Fim do recebimento de propostas (abertura da sessão).
          nullable: true
        proposta_aberta:
          type: boolean
          description: Se ainda dá para enviar proposta agora.
        impugnacao_ate:
          type: string
          description: 'Último dia (AAAA-MM-DD) para impugnar: 3 dias úteis antes da sessão, Lei 14.133 art. 164.'
          nullable: true
        impugnacao_aberta:
          type: boolean
          description: Se hoje, em Brasília, ainda cabe impugnação.
        estimado:
          type: boolean
          description: 'Sempre `true`: feriado municipal não está em base nenhuma.'
        base_legal:
          type: string
          description: Regra usada na impugnação.
          nullable: true
        feriados:
          type: string
          description: 'Calendário considerado: `nacionais`.'
        motivo:
          type: string
          description: 'Por que não há impugnação: `sem_data_de_encerramento` ou `amparo_sem_regra`.'
          nullable: true
      required:
      - proposta_inicio
      - proposta_ate
      - proposta_aberta
      - impugnacao_ate
      - impugnacao_aberta
      - estimado
      - base_legal
      - feriados
      - motivo
      description: 'Os relógios da compra: proposta vem do PNCP; impugnação é estimada pela lei, com feriados nacionais.'
    Compra:
      type: object
      properties:
        id:
          type: integer
          description: Identificador interno da compra — é ele que abre a ficha.
        pncp:
          type: string
          description: Número de controle PNCP da compra.
          nullable: true
        objeto:
          type: string
          description: Objeto da compra, como publicado.
          nullable: true
        uf:
          type: string
          description: Sigla da unidade da federação do órgão.
          nullable: true
        modalidade:
          type: string
          description: Modalidade (pregão eletrônico, dispensa…).
          nullable: true
        situacao:
          type: string
          description: Situação da compra no PNCP.
          nullable: true
        orgao:
          type: string
          description: Razão social do órgão comprador.
          nullable: true
        unidade:
          type: string
          description: Unidade administrativa responsável.
          nullable: true
        valor_estimado:
          type: number
          description: Valor total estimado em reais.
          nullable: true
        publicado_em:
          type: string
          description: Data de publicação no PNCP — é ela que define o regime de cobrança.
          nullable: true
        informacao_complementar:
          type: string
          description: Informação complementar publicada.
          nullable: true
        processo:
          type: string
          description: Número do processo administrativo.
          nullable: true
        abertura_proposta:
          type: string
          description: Início do recebimento de propostas, hora de Brasília.
          nullable: true
        encerramento_proposta:
          type: string
          description: Fim do recebimento de propostas, que é a abertura da sessão — a base da impugnação.
          nullable: true
        amparo_legal:
          type: string
          description: 'Amparo legal declarado, ex.: `Lei 14.133/2021, Art. 28, I`.'
          nullable: true
        amparo_legal_codigo:
          type: integer
          description: Código do amparo legal no PNCP.
          nullable: true
        modalidade_id:
          type: integer
          description: Código da modalidade no PNCP (6 = pregão eletrônico, 8 = dispensa…).
          nullable: true
        situacao_id:
          type: integer
          description: 'Código da situação: 1 divulgada, 2 revogada, 3 anulada, 4 suspensa.'
          nullable: true
        municipio:
          type: string
          description: Município da unidade compradora.
          nullable: true
        municipio_ibge:
          type: string
          description: Código IBGE do município.
          nullable: true
        orgao_cnpj:
          type: string
          description: CNPJ do órgão, só dígitos.
          nullable: true
        ano_compra:
          type: integer
          description: Ano da compra na numeração do PNCP.
          nullable: true
        sequencial_compra:
          type: integer
          description: Sequencial da compra no órgão e ano.
          nullable: true
        atualizado_em:
          type: string
          description: Última atualização da compra vista pelo acervo.
          nullable: true
        prazos:
          allOf:
          - $ref: '#/components/schemas/Prazos'
          description: Proposta e impugnação, calculados pelo Worker.
        pncp_url:
          type: string
          description: Página humana da compra no PNCP.
          nullable: true
        markdown_url:
          type: string
          description: Atalho para o markdown do documento.
        compra_url:
          type: string
          description: Ficha completa da compra.
      required:
      - id
      - pncp
      - objeto
      - uf
      - modalidade
      - situacao
      - orgao
      - unidade
      - valor_estimado
      - publicado_em
      - informacao_complementar
      - processo
      - abertura_proposta
      - encerramento_proposta
      - amparo_legal
      - amparo_legal_codigo
      - modalidade_id
      - situacao_id
      - municipio
      - municipio_ibge
      - orgao_cnpj
      - ano_compra
      - sequencial_compra
      - atualizado_em
      - prazos
      - pncp_url
      - markdown_url
      - compra_url
      description: Uma compra pública do PNCP, como o acervo a conhece.