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

# Obtenir le profil de l’utilisateur authentifié.

> Récupérer les attributs du profil de l’utilisateur authentifié accessibles en libre-service, avec une politique d’accès par champ indiquant les droits de lecture et d’écriture.

#### Portées

Les portées définissent les autorisations et les niveaux d’accès des requêtes API et des jetons d’authentification.

[​](#scopes-scopes)


## OpenAPI

````yaml docs/fr-ca/oas/myaccount/myaccount-api-oas.json GET /profile
openapi: 3.1.0
info:
  title: Mon compte
  version: '1.0'
  description: "L’API My Account d’Auth0 fournit un ensemble dédié de points de terminaison permettant aux utilisateurs de gérer les renseignements de leur propre compte. Les clients peuvent utiliser ces API pour créer des expériences libre-service dans leurs applications ou enrichir progressivement le compte d’un utilisateur.\n\nL’API My Account fonctionne dans le contexte de l’utilisateur actuellement connecté et peut être utilisée directement dans des applications destinées aux utilisateurs.\n\n:::tip Utiliser le domaine Auth0 ou un domaine personnalisé\n\nL’API My Account prend en charge l’utilisation de votre domaine Auth0 canonique ou de votre domaine personnalisé, mais vous devez utiliser le même domaine tout au long du processus, notamment pour\_:\n\n- Obtenir un jeton d’accès\n- Définir la valeur d’audience\n- Appeler le point de terminaison de l’API My Account\n\nPour en savoir plus, consultez [Custom Domains](https://auth0.com/docs/customize/custom-domains).\n\n:::\n\n## Activer l’API My Account\n\nVous pouvez activer l’API My Account pour votre tenant dans le tableau de bord Auth0\_:\n\n1. Accédez à Authentication > APIs.\n2. Repérez la bannière MyAccount API.\n3. Sélectionnez Activate.\n\n![](https://images.ctfassets.net/cdy7uua7fh8z/DGkDQNIHcegN8vtQyEvF3/a2e98b06867701a66fa1f1b3df1c996b/My_Account_API_-_Activate.png)\n\nPar défaut, l’API My Account est créée avec les application API access policies suivantes\_:\n\n`require_client_grant` pour les flux utilisateur\n\n`deny_all` pour les flux client (machine à machine)\n\nPour qu’une application puisse accéder à l’API My Account au nom de l’utilisateur, vous devez créer explicitement un client grant pour cette application, ce qui vous permet de définir les scopes maximaux que l’application peut demander. Vous pouvez aussi remplacer la policy des flux d’accès utilisateur par allow_all, ce qui permet à toute application de votre tenant de demander n’importe quel scope de l’API My Account.\n\nComme l’API My Account expose des renseignements et des opérations sensibles, Auth0 ne recommande pas d’utiliser allow_all pour les flux d’accès utilisateur. Vous devriez appliquer le principe du moindre privilège avec l’API My Account afin de veiller à ce que les applications n’obtiennent que l’accès dont elles ont réellement besoin, ce qui réduit les risques de sécurité potentiels.\n\nLes permissions finales accordées à l’application seront déterminées par l’intersection des scopes autorisés par l’application API access policy, des permissions Role-Based Access Control (RBAC) attribuées à l’utilisateur final et du consentement donné par l’utilisateur, s’il y a lieu.\n\n:::info Flux pris en charge\n\nVous ne pouvez pas mettre à jour l’application API access policy pour l’accès client à l’API My Account, ce qui signifie que vous ne pouvez pas accéder à l’API My Account à l’aide du Client Credentials Flow.\n\n:::\n\nPour en savoir plus sur la gestion des application API access policies et des client grants qui y sont associés, consultez [Application Access to APIs: Client Grants](https://auth0.com/docs/get-started/applications/application-access-to-apis-client-grants).\n\n## Obtenir un jeton d’accès\n\nVous pouvez obtenir un jeton d’accès pour l’API My Account de la même façon que pour l’une de vos propres API.\n\n:::info &nbsp\nSi vous comptez permettre à l’API My Account d’effectuer des opérations sensibles (comme l’inscription d’une méthode d’authentification), nous vous recommandons fortement d’utiliser l’[authentification renforcée (step-up authentication)](https://auth0.com/docs/secure/multi-factor-authentication/step-up-authentication) pour appliquer des politiques de sécurité supplémentaires au moyen de l’[authentification multifacteur (MFA)](https://auth0.com/docs/secure/multi-factor-authentication).\n:::\n\nSi vous utilisez Universal Login, consultez les articles suivants\_:\n\n- [Call Your API Using the Authorization Code Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)\n- [Call Your API Using the Authorization Code Flow with PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)\n\nSi vous utilisez l’embedded login, consultez les articles suivants\_:\n\n- [Call Your API Using Resource Owner Password Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/call-your-api-using-resource-owner-password-flow)\n- [Login Flow with Native Passkeys API](https://auth0.com/docs/native-passkeys-api#login-flow)\n\n## Exemples\n\n### Universal Login avec le flux de code d’autorisation\n\n**Étape 1\_: Demander un code d’autorisation**\n\n```\ncurl --request GET \\\n  --url 'https://{yourDomain}/authorize?response_type=code&client_id={yourClientId}&redirect_uri=%7ByourRedirectUri%7D&scope=create%3Ame%3Aauthentication_methods&offline_access=&audience=https%3A%2F%2F{yourDomain}%2Fme%2F'\n```\n\n**Étape 2\_: Échanger le code contre un jeton d’accès**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/oauth/token' \\\n  --header 'content-type: application/json' \\\n  --data '{\"grant_type\": \"authorization_code\",\"client_id\": \"{yourClientId}\",\"client_secret\": \"{yourClientSecret}\",\"code\": \"{yourAuthorizationCode}\",\"redirect_uri\": \"{yourRedirectUri}\",\"audience\": \"{yourAudience}\",\"scope\": \"create:me:authentication_methods\",\"offline_access\": \"\"}'\n```\n\n### Embedded login avec des passkeys natives\n\n**Étape 1\_: Demander un challenge de connexion**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/passkey/challenge' \\\n  --header 'content-type: application/json' \\\n  --data '{\"client_id\": \"{yourClientId}\"}'\n```\n\n**Étape 2\_: Authentifier un utilisateur existant**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/oauth/token' \\\n  --header 'content-type: application/json' \\\n  --data '{  \"grant_type\": \"urn:okta:params:oauth:grant-type:webauthn\",  \"client_id\": \"{yourClientId}\",  \"scope\": \"create:me:authentication_methods offline_access\",  \"audience\": \"https://{yourDomain}/me/\",  \"auth_session\": \"{sessionIdFromTheFirstRequest}\",  \"authn_response\": \"{authenticatorResponse}\"}'\n```"
servers:
  - url: https://{host}/me/v1
    variables:
      host:
        default: auth0.auth0.com
        description: Nom d’hôte personnalisé ou canonique
security: []
tags:
  - name: factors
    description: Facteurs
    x-displayName: Factors
  - name: connected-accounts
    description: Comptes connectés
    x-displayName: Connected Accounts
  - name: authentication-methods
    description: Méthodes d’authentification
    x-displayName: Authentication Methods
  - name: consents
    description: Consentements
    x-displayName: Consents
  - name: organizations
    description: Organisations
    x-displayName: Organizations
  - name: profile
    description: Profil
    x-displayName: Profile
paths:
  /profile:
    get:
      tags:
        - profile
      summary: Obtenir le profil de l’utilisateur authentifié.
      description: >-
        Récupérer les attributs du profil de l’utilisateur authentifié
        accessibles en libre-service, avec une politique d’accès par champ
        indiquant les droits de lecture et d’écriture.
      operationId: getProfile
      parameters:
        - $ref: '#/components/parameters/HeaderCorrelationId'
        - $ref: '#/components/parameters/HeaderTraceparent'
        - $ref: '#/components/parameters/QueryFields'
        - $ref: '#/components/parameters/QueryIncludeFields'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProfileResponseContent'
          description: Profil récupéré avec succès.
          headers:
            x-ratelimit-limit:
              $ref: '#/components/headers/XRateLimitLimitHeader'
            x-ratelimit-reset:
              $ref: '#/components/headers/XRateLimitResetHeader'
            x-ratelimit-remaining:
              $ref: '#/components/headers/XRateLimitRemainingHeader'
            x-correlation-id:
              $ref: '#/components/headers/CorrelationIdHeader'
            traceparent:
              $ref: '#/components/headers/TraceparentHeader'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '410':
          $ref: '#/components/responses/Gone'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - Bearer-DPoP:
            - read:me:profile
      x-codeSamples:
        - lang: typescript
          label: Get the authenticated user's profile.
          source: |
            import { MyAccountClient } from "@auth0/myaccount-js";

            async function main() {
                const client = new MyAccountClient({
                    domain: "{YOUR_DOMAIN}",
                    token: "<token>",
                });
                await client.profile.get({
                    fields: [
                        "given_name",
                    ],
                    include_fields: "true",
                });
            }
            main();
        - lang: javascript
          label: Get the authenticated user's profile.
          source: |
            import { MyAccountClient } from "@auth0/myaccount-js";

            async function main() {
                const client = new MyAccountClient({
                    domain: "{YOUR_DOMAIN}",
                    token: "<token>",
                });
                await client.profile.get({
                    fields: [
                        "given_name",
                    ],
                    include_fields: "true",
                });
            }
            main();
components:
  parameters:
    HeaderCorrelationId:
      in: header
      name: x-correlation-id
      required: false
      schema:
        type: string
      description: >-
        Un identifiant unique fourni par le client pour une opération donnée,
        utilisé pour corréler la requête dans les systèmes Auth0. La valeur
        apparaît sous `references.correlation_id` dans les journaux du locataire
        et est renvoyée dans l’en-tête `x-correlation-id` de la réponse. Les
        valeurs non valides ou trop longues sont ignorées silencieusement et
        remplacées par un UUID v4 généré. Évitez d’inclure des renseignements
        personnels identifiables (RPI).
    HeaderTraceparent:
      in: header
      name: traceparent
      required: false
      schema:
        type: string
      description: "Un en-tête [W3C Trace Context](https://www.w3.org/TR/trace-context/) utilisé pour corréler la requête dans les traces distribuées. Lorsqu’il est fourni, la trace entrante est poursuivie et un nouveau span enfant est renvoyé dans l’en-tête `traceparent` de la réponse\_; l’ID de trace apparaît aussi sous `references.trace_id` dans les journaux du locataire. Les valeurs malformées sont ignorées."
    QueryFields:
      name: fields
      in: query
      required: false
      description: >-
        Liste des noms de champs à inclure ou à exclure, séparés par des
        virgules (selon include_fields).
      style: form
      explode: false
      schema:
        $ref: '#/components/schemas/ProfileFields'
    QueryIncludeFields:
      name: include_fields
      in: query
      required: false
      description: >-
        Si la valeur est true (par défaut), retourner uniquement les champs
        indiqués dans fields. Si la valeur est false, retourner tous les champs
        sauf ceux indiqués dans fields. Ce paramètre est ignoré si fields est
        absent.
      schema:
        $ref: '#/components/schemas/IncludeFieldsEnum'
  schemas:
    GetProfileResponseContent:
      description: >-
        Attributs du profil de l’utilisateur authentifié accessibles en
        libre-service, avec une politique d’accès par champ indiquant les droits
        de lecture et d’écriture.
      allOf:
        - $ref: '#/components/schemas/ProfileContent'
    ProfileFields:
      type: array
      items:
        $ref: '#/components/schemas/ProfileFieldEnum'
    IncludeFieldsEnum:
      type: string
      enum:
        - 'true'
        - 'false'
      default: 'true'
      description: >-
        Si la valeur est true (par défaut), retourner uniquement les champs
        indiqués dans fields. Si la valeur est false, retourner tous les champs
        sauf ceux indiqués dans fields.
    ProfileContent:
      type: object
      additionalProperties: false
      properties:
        given_name:
          type: string
          description: Prénom de cet utilisateur.
        family_name:
          type: string
          description: Nom de famille de cet utilisateur.
        name:
          type: string
          description: Nom de cet utilisateur.
        nickname:
          type: string
          description: Pseudonyme ou alias préféré de cet utilisateur.
        picture:
          type: string
          description: >-
            URL de l’image de profil, de la photo ou de l’avatar de cet
            utilisateur.
        email:
          type: string
          format: email
          readOnly: true
          description: >-
            Lecture seule. Pour gérer l’adresse courriel, utiliser
            /me/v1/identifiers.
        phone_number:
          type: string
          readOnly: true
          description: >-
            Lecture seule. Pour gérer le numéro de téléphone, utiliser
            /me/v1/identifiers.
        username:
          type: string
          readOnly: true
          description: >-
            Lecture seule. Pour gérer le nom d’utilisateur, utiliser
            /me/v1/identifiers.
        user_metadata:
          $ref: '#/components/schemas/UserMetadata'
          description: >-
            Métadonnées définies par l’utilisateur. Lors de l’écriture, les clés
            de premier niveau sont fusionnées avec les métadonnées existantes.
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: Date et heure de création de cet utilisateur.
        updated_at:
          type: string
          format: date-time
          readOnly: true
          description: >-
            Date et heure de la dernière mise à jour ou modification de cet
            utilisateur.
        profile_policy:
          $ref: '#/components/schemas/ProfilePolicy'
          readOnly: true
    ErrorResponse:
      properties:
        type:
          type: string
        status:
          type: number
        title:
          type: string
        detail:
          type: string
        validation_errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
      required:
        - type
        - status
        - title
        - detail
      type: object
      additionalProperties: false
    ProfileFieldEnum:
      type: string
      enum:
        - given_name
        - family_name
        - name
        - nickname
        - picture
        - email
        - phone_number
        - username
        - user_metadata
        - created_at
        - updated_at
        - profile_policy
    UserMetadata:
      type: object
      description: >-
        Données relatives à l’utilisateur qui n’ont aucune incidence sur les
        fonctionnalités de base de l’application. Seul le sous-ensemble de clés
        accessible en libre-service est renvoyé.
      additionalProperties: true
    ProfilePolicy:
      type: object
      description: >-
        Droits d’écriture par champ, définis par un pointeur JSON RFC 6901 (p.
        ex. /email).
      additionalProperties:
        $ref: '#/components/schemas/ProfilePolicyEntry'
    ValidationError:
      type: object
      properties:
        detail:
          type: string
        field:
          type: string
        pointer:
          type: string
        source:
          type: string
      required:
        - detail
      additionalProperties: false
    ProfilePolicyEntry:
      type: object
      description: Descripteur des droits d’écriture pour un champ de profil.
      required:
        - access
        - source
      additionalProperties: false
      properties:
        access:
          $ref: '#/components/schemas/ProfileFieldAccessEnum'
        source:
          $ref: '#/components/schemas/ProfileFieldSourceEnum'
        reason:
          type: string
          description: >-
            Présent uniquement lorsque l’accès est read_only. Explique pourquoi
            le champ n’est pas inscriptible.
    ProfileFieldAccessEnum:
      type: string
      enum:
        - read_write
        - read_only
      description: Indique si l’utilisateur authentifié peut écrire dans ce champ.
    ProfileFieldSourceEnum:
      type: string
      enum:
        - user
        - idp
        - system
      description: Indique la source faisant autorité pour la valeur de ce champ.
  headers:
    XRateLimitLimitHeader:
      required: true
      description: Le nombre maximal de requêtes autorisées pendant la fenêtre de la limite
      schema:
        type: number
    XRateLimitResetHeader:
      required: true
      description: >-
        Le moment prévu (sous forme d’horodatage UNIX, en secondes) auquel le
        bucket sera réapprovisionné
      schema:
        type: number
    XRateLimitRemainingHeader:
      required: true
      description: >-
        Le nombre de requêtes restantes dans la fenêtre en cours avant le rejet
        des requêtes
      schema:
        type: number
    CorrelationIdHeader:
      required: false
      description: >-
        Renvoie l’`x-correlation-id` validé fourni dans la requête, ou un UUID
        v4 généré si aucun n’a été fourni.
      schema:
        type: string
    TraceparentHeader:
      required: false
      description: >-
        Un en-tête [W3C Trace Context](https://www.w3.org/TR/trace-context/) qui
        renvoie l’ID de la trace entrante avec un nouvel ID de span enfant.
      schema:
        type: string
    RetryAfterHeader:
      required: true
      description: >-
        Le nombre de secondes que le client doit attendre avant d’effectuer une
        nouvelle requête
      schema:
        type: number
    XAuth0ErrorKindHeader:
      description: >-
        Indique si la limite de débit dépassée est une limite globale (par
        tenant).
      schema:
        type: string
        const: global-rate-limit
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Entrée invalide selon le schéma.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Non autorisé.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Interdit.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Gone:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Disparu.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Trop de requêtes.
      headers:
        retry-after:
          $ref: '#/components/headers/RetryAfterHeader'
        x-ratelimit-limit:
          $ref: '#/components/headers/XRateLimitLimitHeader'
        x-ratelimit-reset:
          $ref: '#/components/headers/XRateLimitResetHeader'
        x-ratelimit-remaining:
          $ref: '#/components/headers/XRateLimitRemainingHeader'
        x-auth0-error-kind:
          $ref: '#/components/headers/XAuth0ErrorKindHeader'
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
  securitySchemes:
    Bearer-DPoP:
      type: http
      scheme: bearer
      description: >-
        Les jetons Bearer et DPoP sont pris en charge selon la configuration de
        l’API

````