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

# Lista de supressão

> As mudanças da lista de quem não pode ser contatado, por finalidade e canal, com cada destino como chave HMAC pelo sal desta chave; sem cursor, tudo o que vale hoje.



## OpenAPI

````yaml openapi/pt/cell.json GET /v1/suppressions
openapi: 3.1.0
info:
  title: API de dados da Niadra
  version: '1'
  description: >-
    Escrita, contexto, histórico, objetos, identidade, privacidade e governança
    de um espaço. Cada espaço tem um endereço estável, com o espaço e a região
    no nome.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: O espaço, que vem na chave de fonte.
      region:
        default: us-east-2
        description: A região do espaço, que também vem na chave.
security: []
paths:
  /v1/suppressions:
    get:
      tags:
        - coordination
      summary: Lista de supressão
      description: >-
        A lista de supressão para esta chave: uma página de mudanças, do mais
        antigo para o mais novo, a partir de `cursor`; sem cursor, toda entrada
        em vigor. Cada entrada leva o destino com a chave do sal desta chave
        (HMAC-SHA256 sobre a forma canônica), a finalidade, o canal (nulo para
        todo canal), `since`, `until` e `removed`. Nunca um handle, um nome ou o
        motivo. Leia de novo a cada 60 segundos, aplique as páginas em ordem e
        guarde o estado mais novo por `id`; com `reset`, descarte a cópia antes.


        **Autenticação.** Chave de fonte: `Authorization: Bearer nia_sk_...`.
        Escopo exigido: `coordinate`. Só responde num espaço com a
        funcionalidade `coordination` ligada (o documento `features`); num
        espaço sem ela, 404.
      operationId: suppressions_v1_suppressions_get
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - maxLength: 200
                type: string
              - type: 'null'
            title: Cursor
          description: Cursor opaco, vindo de `next_cursor`.
        - in: query
          name: limit
          required: false
          schema:
            default: 200
            maximum: 200
            minimum: 1
            title: Limit
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuppressionPage'
          description: Uma página da lista.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: O pedido não bate com o contrato.
      security:
        - sourceKey: []
      x-codeSamples:
        - lang: python
          label: Python
          source: >-
            # The local copy of the list, read by cursor and refreshed once a
            minute; it applies with Niadra down

            if niadra.may_contact(customer, "marketing", channel="whatsapp"):
                send(offer)
        - lang: typescript
          label: TypeScript
          source: >-
            // The local copy of the list, read by cursor and refreshed once a
            minute; it applies with Niadra down

            if (await niadra.mayContact(customer, "marketing", { channel:
            "whatsapp" })) await send(offer);
components:
  schemas:
    SuppressionPage:
      additionalProperties: false
      description: >-
        Uma página de mudanças, do mais antigo para o mais novo. Com `reset`,
        quem lê descarta a cópia antes de aplicar `items`: o sal mudou, ou o
        cursor é mais antigo do que a lista guarda.
      properties:
        items:
          items:
            $ref: '#/components/schemas/Suppression'
          title: Items
          type: array
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
        reset:
          default: false
          title: Reset
          type: boolean
        salt_id:
          maxLength: 512
          minLength: 1
          title: Salt Id
          type: string
      required:
        - salt_id
        - items
      title: SuppressionPage
      type: object
    Problem:
      additionalProperties: false
      description: >-
        Detalhes do problema no formato da RFC 9457; `code` vem do catálogo de
        erros versionado.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    Suppression:
      additionalProperties: false
      description: >-
        Uma entrada da lista de supressão: `key` é o handle do cliente com a
        chave do sal da fonte que lê (a especificação da lista de supressão);
        `removed` tira a entrada `id` da cópia de quem lê. O motivo fica com o
        produtor: um fornecedor fica sabendo que não pode contatar, nunca por
        quê.
      properties:
        channel:
          anyOf:
            - pattern: ^[a-z][a-z0-9_]{0,39}$
              type: string
            - type: 'null'
          title: Channel
        id:
          maxLength: 512
          minLength: 1
          title: Id
          type: string
        key:
          pattern: ^[A-Za-z0-9_-]{43}$
          title: Key
          type: string
        purpose:
          pattern: ^[a-z][a-z0-9_]{0,39}$
          title: Purpose
          type: string
        removed:
          default: false
          title: Removed
          type: boolean
        since:
          format: date-time
          title: Since
          type: string
        until:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Until
      required:
        - id
        - key
        - purpose
        - since
      title: Suppression
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...

````