> ## 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.

# Testar regra de padrão

> Quantos perfis ganhariam o padrão nos últimos 90 dias, com amostra e evidências.



## OpenAPI

````yaml openapi/pt/cell.json POST /v1/traits/rules/dry-run
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-1
        description: A região do espaço, que também vem na chave.
security: []
paths:
  /v1/traits/rules/dry-run:
    post:
      tags:
        - operate
      summary: Testar regra de padrão
      description: >-
        Testa uma regra de padrão do catálogo, com os seus parâmetros, contra os
        últimos 90 dias antes de ligar: quantos perfis foram avaliados, quantos
        ganhariam o padrão e uma amostra por pseudônimo, com a evidência e o
        prazo de validade de cada um. Nada é gravado na memória.


        **Autenticação.** Token de pessoa do Console com o papel `integration`,
        `analysis` (ou admin), ou chave de fonte com o escopo `admin`.
      operationId: dry_run_trait_rule_v1_traits_rules_dry_run_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TraitRuleDraft'
            example:
              rule_id: recurring-visit-complaint
              catalog: recurring_complaint
              params:
                category: technician_visit
                min_count: 3
                window_days: 90
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TraitDryRunResponse'
              example:
                rule_id: recurring-visit-complaint
                window_days: 90
                profiles_evaluated: 48210
                profiles_matching: 312
                sample:
                  - profile_id: 0192f7a0-3b2e-7d41-8c5a-2e9f4b7a1c03
                    pseudonym: psn_7f3a
                    value: Third complaint about technician visit in 90 days
                    expires_at: '2026-11-02T17:02:11Z'
                    evidence:
                      - kind: episode
                        id: 0192f7a3-7c32-7b0c-9e16-5b8a0f1c2d34
          description: Quantos perfis casariam com a regra, com uma amostra.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: O pedido não bate com o contrato.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    TraitRuleDraft:
      additionalProperties: false
      description: >-
        Uma regra do catálogo com parâmetros do tenant; o teste a seco nunca a
        grava.
      properties:
        catalog:
          enum:
            - recurring_complaint
            - broken_company_promise
            - asked_to_cancel
            - preferred_channel
            - does_not_answer_calls
            - escalated_to_human
            - declining_sentiment
            - overdue_invoices
          title: Catalog
          type: string
        params:
          additionalProperties: true
          title: Params
          type: object
        rule_id:
          pattern: ^[a-z][a-z0-9_.:-]{0,63}$
          title: Rule Id
          type: string
        version:
          default: draft
          title: Version
          type: string
      required:
        - rule_id
        - catalog
      title: TraitRuleDraft
      type: object
    TraitDryRunResponse:
      additionalProperties: false
      properties:
        profiles_evaluated:
          title: Profiles Evaluated
          type: integer
        profiles_matching:
          title: Profiles Matching
          type: integer
        rule_id:
          title: Rule Id
          type: string
        sample:
          items:
            $ref: '#/components/schemas/TraitSample'
          title: Sample
          type: array
        window_days:
          title: Window Days
          type: integer
      required:
        - rule_id
        - window_days
        - profiles_evaluated
        - profiles_matching
        - sample
      title: TraitDryRunResponse
      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
    TraitSample:
      additionalProperties: false
      properties:
        evidence:
          items:
            $ref: '#/components/schemas/EvidencePointer'
          title: Evidence
          type: array
        expires_at:
          format: date-time
          title: Expires At
          type: string
        profile_id:
          title: Profile Id
          type: string
        pseudonym:
          title: Pseudonym
          type: string
        value:
          title: Value
          type: string
      required:
        - profile_id
        - pseudonym
        - value
        - expires_at
        - evidence
      title: TraitSample
      type: object
    EvidencePointer:
      additionalProperties: false
      properties:
        id:
          title: Id
          type: string
        kind:
          title: Kind
          type: string
      required:
        - kind
        - id
      title: EvidencePointer
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...
    personToken:
      type: http
      scheme: bearer
      bearerFormat: JWT

````