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

# Listar sugestões de identidade

> Pares de perfis que parecem ser o mesmo sujeito, para revisão humana.



## OpenAPI

````yaml openapi/pt/cell.json GET /v1/identity/suggestions
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/identity/suggestions:
    get:
      tags:
        - identity
      summary: Listar sugestões de identidade
      description: >-
        Pares de perfis que parecem ser o mesmo sujeito, encontrados fora do
        caminho da conversa e nunca aplicados sem uma pessoa. Cada lado vem com
        o perfil e o identificador, mascarados pelo papel de quem lê.


        **Autenticação.** Token de pessoa do Console com o papel `security`,
        `integration` (ou admin), ou chave de fonte com o escopo `admin`.
      operationId: list_suggestions_v1_identity_suggestions_get
      parameters:
        - in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - format: uuid
                type: string
              - type: 'null'
            title: Cursor
          description: Cursor opaco, vindo de `next_cursor`.
        - in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 200
            minimum: 1
            title: Limit
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page_SuggestionOut_'
              example:
                items:
                  - suggestion_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e09
                    handle_a: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e02
                    handle_b: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e0c
                    profile_a: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01
                    profile_b: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e0d
                    identifier_a:
                      handle_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e02
                      type: phone_e164
                      value: +1415555****
                      scope: ''
                      subject_kind: person
                      status: active
                      level: V1
                      first_seen: '2021-04-06T13:20:00Z'
                      last_seen: '2026-09-22T17:07:03Z'
                    identifier_b:
                      handle_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e0c
                      type: email
                      value: m***@example.com
                      scope: ''
                      subject_kind: person
                      status: active
                      level: V0
                      first_seen: '2026-09-20T10:15:00Z'
                      last_seen: '2026-09-22T17:07:03Z'
                    score: 0.93
                    features:
                      same_name: true
                      same_postal_code: true
                      co_occurrences: 2
                    status: open
                    created_at: '2026-09-22T03:00:00Z'
                next_cursor: null
          description: Uma página de sugestões em aberto.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: O pedido não bate com o contrato.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    Page_SuggestionOut_:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/SuggestionOut'
          title: Items
          type: array
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
      required:
        - items
      title: Page[SuggestionOut]
      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
    SuggestionOut:
      additionalProperties: false
      description: >-
        Um par candidato, encontrado fora do caminho da conversa, para revisão;
        nunca aplicado sem uma pessoa. Cada lado vem com o perfil e o
        identificador, mascarados pelo papel de quem chama, como em `GET
        /v1/profiles/{id}`.
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        features:
          additionalProperties: true
          title: Features
          type: object
        handle_a:
          format: uuid
          title: Handle A
          type: string
        handle_b:
          format: uuid
          title: Handle B
          type: string
        identifier_a:
          anyOf:
            - $ref: '#/components/schemas/HandleOut'
            - type: 'null'
        identifier_b:
          anyOf:
            - $ref: '#/components/schemas/HandleOut'
            - type: 'null'
        profile_a:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: Nulo quando o handle não existe mais.
          title: Profile A
        profile_b:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Profile B
        score:
          title: Score
          type: number
        status:
          enum:
            - open
            - accepted
            - rejected
          title: Status
          type: string
        suggestion_id:
          format: uuid
          title: Suggestion Id
          type: string
      required:
        - suggestion_id
        - handle_a
        - handle_b
        - profile_a
        - profile_b
        - identifier_a
        - identifier_b
        - score
        - features
        - status
        - created_at
      title: SuggestionOut
      type: object
    HandleOut:
      additionalProperties: false
      properties:
        first_seen:
          format: date-time
          title: First Seen
          type: string
        handle_id:
          format: uuid
          title: Handle Id
          type: string
        last_seen:
          format: date-time
          title: Last Seen
          type: string
        level:
          $ref: '#/components/schemas/Verification'
        scope:
          title: Scope
          type: string
        status:
          $ref: '#/components/schemas/HandleStatus'
        subject_kind:
          $ref: '#/components/schemas/SubjectKind'
        type:
          $ref: '#/components/schemas/HandleType'
        value:
          description: Mascarado conforme o papel de quem chama.
          title: Value
          type: string
      required:
        - handle_id
        - type
        - scope
        - subject_kind
        - value
        - status
        - level
        - first_seen
        - last_seen
      title: HandleOut
      type: object
    Verification:
      description: >-
        Nível de verificação da sessão. V0 autodeclarado, V1 plausível pelo
        canal, V2 atestado pelo canal, V3 desafiado (OTP ou login), V4 conferido
        com um sistema de registro ou por um atendente. `no_customer` vale para
        tarefas sem cliente presente e só é aceito de fontes de agente interno.
      enum:
        - V0
        - V1
        - V2
        - V3
        - V4
        - no_customer
      title: Verification
      type: string
    HandleStatus:
      enum:
        - active
        - ambiguous
        - blocked
        - suspected_recycled
      title: HandleStatus
      type: string
    SubjectKind:
      enum:
        - person
        - account
        - partner
      title: SubjectKind
      type: string
      description: >-
        Uma pessoa, uma organização cliente (`account`) ou uma organização que
        participa sem ser cliente (`partner`).
    HandleType:
      enum:
        - phone_e164
        - wa_id
        - wa_jid
        - wa_lid
        - wa_bsuid
        - email
        - gov_id_hmac
        - app_user_id
        - system_id
        - org_registry_hmac
        - email_domain
        - anon_id
      title: HandleType
      type: string
      description: >-
        O tipo de identificador. O valor é classificado pelo formato, nunca pelo
        campo de onde veio.
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...
    personToken:
      type: http
      scheme: bearer
      bearerFormat: JWT

````