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

# Ler um perfil

> Handles, tipo de sujeito e vínculos de um perfil, com a máscara do papel de quem lê.



## OpenAPI

````yaml openapi/pt/cell.json GET /v1/profiles/{profile_id}
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/profiles/{profile_id}:
    get:
      tags:
        - identity
      summary: Ler um perfil
      description: >-
        Um perfil: tipo de sujeito, pseudônimo, handles com estado e nível de
        verificação, e os vínculos com contas e parceiros. Os valores de contato
        ficam mascarados, a menos que o papel de quem lê possa vê-los.


        **Autenticação.** Token de pessoa do Console com o papel `security`,
        `integration` (ou admin), ou chave de fonte com o escopo `admin`.
      operationId: get_profile_v1_profiles__profile_id__get
      parameters:
        - in: path
          name: profile_id
          required: true
          schema:
            format: uuid
            title: Profile Id
            type: string
          example: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileOut'
              example:
                profile_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01
                pseudonym: p_7f3a91c2
                kind: person
                partial: false
                handles:
                  - 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'
                  - handle_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e03
                    type: system_id
                    value: '48213'
                    scope: crm
                    subject_kind: person
                    status: active
                    level: V4
                    first_seen: '2021-04-06T13:21:00Z'
                    last_seen: '2026-09-22T17:07:03Z'
                links:
                  - link_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e08
                    person_handle_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e02
                    org_handle_id: 0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e05
                    role: buyer
                    can_see_contacts: false
                    valid_from: '2026-09-22T17:10:00Z'
                    valid_to: null
                membership_version: 7
                privacy_version: 2
          description: O perfil.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: O pedido não bate com o contrato.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    ProfileOut:
      additionalProperties: false
      properties:
        handles:
          items:
            $ref: '#/components/schemas/HandleOut'
          title: Handles
          type: array
        kind:
          $ref: '#/components/schemas/SubjectKind'
        links:
          items:
            $ref: '#/components/schemas/LinkOut'
          title: Links
          type: array
        membership_version:
          title: Membership Version
          type: integer
        partial:
          description: Conhecido só por ids privados do canal, como um BSUID.
          title: Partial
          type: boolean
        privacy_version:
          title: Privacy Version
          type: integer
        profile_id:
          format: uuid
          title: Profile Id
          type: string
        pseudonym:
          title: Pseudonym
          type: string
      required:
        - profile_id
        - kind
        - pseudonym
        - membership_version
        - privacy_version
        - partial
        - handles
        - links
      title: ProfileOut
      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
    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
    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`).
    LinkOut:
      additionalProperties: false
      properties:
        can_see_contacts:
          title: Can See Contacts
          type: boolean
        link_id:
          format: uuid
          title: Link Id
          type: string
        org_handle_id:
          format: uuid
          title: Org Handle Id
          type: string
        person_handle_id:
          format: uuid
          title: Person Handle Id
          type: string
        role:
          title: Role
          type: string
        valid_from:
          format: date-time
          title: Valid From
          type: string
        valid_to:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Valid To
      required:
        - link_id
        - person_handle_id
        - org_handle_id
        - role
        - can_see_contacts
        - valid_from
      title: LinkOut
      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
    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

````