> ## Documentation Index
> Fetch the complete documentation index at: https://nomos.pro/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> A API Nomos tem base em https://api.nomos.pro e autentica pelo header `x-api-key`.
> Todos os endpoints de busca são POST. Parâmetros de consulta (page, limit, sort, q, modes) vão na query string; palavras-chave e filtros vão no corpo JSON.
> `limit` é limitado a 20 resultados por página. Para conjuntos maiores, itere sobre `page`.
> Filtros de data exigem `from` e `to` juntos. Enviar apenas `to` retorna erro 400.
> Filtros por ID (authors, rapporteurs, organs, themes, situations, stakeholders) exigem IDs internos reais devolvidos por uma busca anterior. IDs inventados não geram erro: retornam zero resultados silenciosamente.
> Filtros de valor aberto (type, regimes, section, openDataResource) não são listas fechadas. Deixe-os vazios para buscar em todas as fontes.
> Para uso conversacional ou por agentes, prefira o servidor MCP hospedado da Nomos em vez de chamar a API diretamente.

# Buscar discursos parlamentares

> Busca discursos e pronunciamentos parlamentares, filtrando por autor, partido e data.



## OpenAPI

````yaml /openapi.json post /search/speeches
openapi: 3.1.0
info:
  title: API Nomos
  version: 1.0.0
  description: >-
    API pública de busca da Nomos: dados legislativos, regulatórios e de diários
    oficiais do Brasil, normalizados e pesquisáveis por um único conjunto de
    parâmetros.


    Todos os endpoints de busca compartilham a mesma gramática — palavras-chave
    booleanas, texto livre, paginação e ordenação — e diferem apenas nos filtros
    específicos do domínio.


    As mesmas capacidades estão disponíveis via [servidor
    MCP](https://nomos.pro/docs/servidor-mcp) para clientes como Claude, Cursor
    e Claude Code.
  contact:
    name: Equipe Nomos
    url: https://nomos.pro
servers:
  - url: https://api.nomos.pro
    description: Produção
security:
  - ApiKeyAuth: []
tags:
  - name: Proposições
    description: >-
      Busca proposições legislativas (PL, PEC, MPV, PLP, PDC e outras) na
      Câmara, no Senado e nas assembleias legislativas estaduais. Cobre as 27
      unidades federativas.
  - name: Eventos
    description: >-
      Busca sessões, reuniões de comissão e agendas oficiais (E-agendas) das
      casas legislativas.
  - name: Diário Oficial da União
    description: >-
      Busca atos publicados no Diário Oficial da União (DOU), por seção e
      organização principal.
  - name: Diários oficiais
    description: >-
      Busca em diários oficiais estaduais (DOE), judiciais (DJE) e municipais
      (DOM). Cobertura atual: 22 estados mais o Distrito Federal.
  - name: Discursos
    description: >-
      Busca discursos e pronunciamentos parlamentares, filtrando por autor,
      partido e data.
  - name: Notícias
    description: Busca notícias e comunicados publicados pelas casas legislativas.
  - name: Redes sociais
    description: >-
      Busca publicações de parlamentares em redes sociais, filtrando por autor,
      partido e data.
  - name: Banco Central
    description: >-
      Busca resoluções, circulares, comunicados e demais atos normativos do
      Banco Central do Brasil.
  - name: CVM
    description: >-
      Busca resoluções, instruções, deliberações e ofícios circulares da
      Comissão de Valores Mobiliários.
  - name: Receita Federal
    description: >-
      Busca atos normativos e documentos publicados pela Receita Federal do
      Brasil.
  - name: Agências reguladoras
    description: >-
      Busca documentos de agências e fontes reguladoras brasileiras e
      internacionais. A lista de fontes cresce continuamente; qualquer slug é
      aceito e encaminhado à API.
  - name: Stakeholders
    description: Parlamentares e demais atores políticos.
  - name: Sanções da ONU
    description: >-
      Designações da Lista Consolidada de Sanções do Conselho de Segurança da
      ONU, com o histórico auditável de cada mudança.
paths:
  /search/speeches:
    post:
      tags:
        - Discursos
      summary: Buscar discursos parlamentares
      description: >-
        Busca discursos e pronunciamentos parlamentares, filtrando por autor,
        partido e data.
      operationId: searchSpeeches
      parameters:
        - name: page
          in: query
          description: Número da página.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: limit
          in: query
          description: Resultados por página. Máximo 20.
          schema:
            type: integer
            minimum: 1
            maximum: 20
            default: 10
        - name: q
          in: query
          description: Busca por texto livre. Pode ser usada junto com `keywords`.
          schema:
            type: string
        - name: modes
          in: query
          description: >-
            Modos de busca separados por vírgula. `sensitive` diferencia
            maiúsculas e acentos; `keyword` exige correspondência exata.
          schema:
            type: string
          example: sensitive,keyword
        - name: sort
          in: query
          description: >-
            Ordenação. `newest` = mais recentes por data; `recently_updated` =
            movimentados há menos tempo; `older` = mais antigos primeiro;
            `relevance` = mais aderentes às palavras-chave.
          schema:
            type: string
            enum:
              - newest
              - recently_updated
              - older
              - relevance
            default: newest
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              description: >-
                Palavras-chave e filtros do domínio. Todo campo é opcional; um
                corpo vazio retorna os resultados mais recentes.
              properties:
                keywords:
                  $ref: '#/components/schemas/Keywords'
                stakeholders:
                  type: array
                  items:
                    type: string
                  description: >-
                    IDs de stakeholders (parlamentares). Use apenas IDs reais
                    devolvidos por uma busca anterior — valores inventados
                    retornam zero resultados silenciosamente.
                party_acronyms:
                  type: array
                  items:
                    type: string
                  description: Siglas partidárias.
                  examples:
                    - - PT
                      - PSDB
                      - MDB
                speech_at:
                  $ref: '#/components/schemas/DateRange'
                  description: Filtra por data do discurso.
            examples:
              keywords:
                summary: Palavras-chave booleanas
                value:
                  keywords:
                    or:
                      - reforma tributária
                    not:
                      - arquivada
      responses:
        '200':
          description: Página de resultados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpeechPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    Keywords:
      type: object
      description: Palavras-chave booleanas. Combine os três operadores livremente.
      properties:
        or:
          type: array
          items:
            type: string
          description: Pelo menos uma deve estar presente.
        and:
          type: array
          items:
            type: string
          description: Todas devem estar presentes.
        not:
          type: array
          items:
            type: string
          description: Excluem o resultado quando presentes.
      examples:
        - or:
            - reforma tributária
            - IBS
          not:
            - arquivada
    DateRange:
      type: object
      description: >-
        Intervalo de datas. **Informe sempre os dois campos.** Se apenas `from`
        for enviado, `to` assume a data atual; enviar apenas `to` retorna erro.
      properties:
        from:
          type: string
          format: date
          description: Data inicial (YYYY-MM-DD).
        to:
          type: string
          format: date
          description: Data final (YYYY-MM-DD).
      required:
        - from
        - to
      examples:
        - from: '2026-01-01'
          to: '2026-07-26'
    SpeechPage:
      type: object
      description: Página de resultados mais os metadados de paginação.
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Speech'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Speech:
      type: object
      properties:
        id:
          type: string
        openDataId:
          type: string
        openDataResource:
          type: string
          examples:
            - senado
            - camara
        eventId:
          type: string
          description: ID do evento (sessão/reunião) em que o discurso ocorreu.
        organId:
          type: string
        date:
          type: string
          format: date-time
        content:
          type: string
          description: Transcrição integral.
        speakers:
          type: array
          items:
            $ref: '#/components/schemas/Speaker'
          description: >-
            Um discurso pode ter mais de um orador (apartes, disputas de
            palavra).
        audioLinks:
          type: array
          items:
            type: string
            format: uri
          description: Links para o áudio da sessão, quando disponível.
        propositionRefs:
          type: array
          items:
            type: object
            additionalProperties: true
          description: Proposições citadas no discurso, quando a fonte faz a ligação.
        highlights:
          type: array
          items:
            type: object
            additionalProperties: true
        savedBuckets:
          type: array
          items:
            $ref: '#/components/schemas/SavedBucketRef'
    Pagination:
      type: object
      description: Metadados de paginação.
      properties:
        page:
          type: integer
        limit:
          type: integer
        pages:
          type: integer
          description: Total de páginas com o `limit` atual.
        total:
          type: integer
          description: Total que casa com os filtros, ignorando a paginação.
    Error:
      type: object
      properties:
        error:
          type: string
          description: Mensagem legível.
        code:
          type: string
          description: Código estável do erro.
    Speaker:
      type: object
      properties:
        stakeholderId:
          type:
            - string
            - 'null'
          description: >-
            `null` quando a fonte não identifica o orador como um stakeholder
            cadastrado (ex.: `speakerName: "Desconhecido"`).
        speakerName:
          type: string
        codigoOradorTaquigrafia:
          type: string
          description: Código interno da taquigrafia. String vazia quando não disponível.
        role:
          type: string
          examples:
            - Presidente
        quartosCount:
          type: integer
          description: Quantidade de "quartos" (blocos de fala) do orador no evento.
    SavedBucketRef:
      type: object
      description: >-
        Pasta/monitor do cliente autenticado em que este documento foi salvo.
        Vazio quando o cliente não salvou o item em nenhum monitor.
      properties:
        _id:
          type: string
        monitorId:
          type: string
        originId:
          type: string
          description: >-
            ID do documento salvo — o mesmo valor de `id`/`_id` do próprio
            resultado.
        monitorName:
          type: string
  responses:
    BadRequest:
      description: >-
        Parâmetros inválidos. Causa mais comum: intervalo de datas com apenas
        `to`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Chave de API ausente ou inválida.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: A chave é válida mas o plano não dá acesso a este endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Chave de API da Nomos. Clientes criam e gerenciam chaves em
        https://nomos.pro/organization/developers (Organização →
        Desenvolvedores).

````