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

# Créer un profil d'utilisateur

> Créez un nouveau profil d'utilisateur sous votre profil principal.

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["business"]} maxPackRequired={false} />

Créez un nouveau profil sous votre profil principal. Après la création réussie du profil d'utilisateur, la réponse de l'API inclura la clé de profil associée au profil nouvellement créé. Stockez la clé de profil de manière sécurisée dans votre système, car elle sera nécessaire pour effectuer des appels API au nom de votre utilisateur.

Veuillez noter que pour des raisons de sécurité, les clés de profil ne sont retournées que dans deux cas spécifiques :

1. Création du profil d'utilisateur : lorsqu'un nouveau profil d'utilisateur est créé.
2. Dans le tableau de bord Ayrshare : vous pouvez trouver la clé de profil pour chaque profil dans le tableau de bord Ayrshare. Basculez vers le profil d'utilisateur puis accédez à la page Clé de profil.

Nous vous recommandons de stocker la clé de profil de manière sécurisée dans votre système.

## Gérer les réseaux sociaux

Utilisez le champ disableSocial pour gérer (ajouter/supprimer) les réseaux sociaux depuis l'affichage. Veuillez consulter [Gérer les comptes sociaux](/apis/profiles/overview#enable-or-disable-social-networks) pour plus d'informations.

## Gérer les profils d'utilisateur actifs

Veuillez consulter ici pour obtenir des recommandations sur la [gestion des profils d'utilisateur actifs](/multiple-users/manage-user-profiles#managing-active-user-profiles).

## Considérations de sécurité importantes

<Warning>
  <ul className="custom-bullets">
    <li>Évitez de partager les clés de profil publiquement ou de les exposer dans du code côté client ou dans des dépôts publics.</li>
    <li>Les clés de profil sont des informations d'identification sensibles utilisées pour authentifier et autoriser l'accès aux profils d'utilisateur.</li>
    <li>Il est crucial de stocker les clés de profil en toute sécurité dans votre système avec des contrôles d'accès appropriés pour maintenir l'intégrité et la confidentialité des données de vos utilisateurs.</li>
    <li>Pour des raisons de sécurité, la clé de profil ne peut pas être récupérée à nouveau à l'aide de l'API. Cependant, vous pouvez récupérer la clé de profil depuis le [tableau de bord](/multiple-users/manage-user-profiles#get-the-profile-key).</li>
    <li>Le `refId` doit également être stocké pour associer un profil à un retour de point de terminaison.</li>
  </ul>
</Warning>

## Paramètres d'en-tête

<HeaderAPI noProfileKey />

## Paramètres du corps

<ParamField body="title" type="string" required>
  Titre du nouveau profil. Doit être unique. Ce titre sera affiché sur la page de liaison des comptes sociaux.
</ParamField>

<ParamField body="messagingActive" type="boolean" default={false}>
  Définir sur true pour activer la messagerie pour ce profil d'utilisateur. La messagerie doit d'abord être activée pour votre compte Ayrshare.
</ParamField>

<ParamField body="hideTopHeader" type="boolean" default={false}>
  Masque l'en-tête supérieur sur la page de liaison des comptes sociaux.
</ParamField>

<ParamField body="hideLogo" type="boolean" default={false}>
  Masque le logo de l'entreprise sur la page de liaison des comptes sociaux pour ce profil d'utilisateur uniquement. Le logo à l'échelle du compte sur les autres profils n'est pas affecté. Utile pour appliquer une marque blanche aux profils partenaires individuels tout en conservant l'image de marque sur le reste.
</ParamField>

<ParamField body="topHeader" type="string">
  Modifie l'en-tête de la page de liaison des comptes sociaux. S'il n'est pas défini, alors s'affiche : « Social Accounts for "title" » où "title" est le titre du profil.
</ParamField>

<ParamField body="disableSocial" type="array">
  Tableau des réseaux sociaux désactivés pour le profil de cet utilisateur. La liste des réseaux sociaux désactivés du profil principal a priorité.

  Réseaux disponibles : `bluesky`, `facebook`, `gmb`, `instagram`, `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter` et `youtube`.

  Voir [activer ou désactiver les réseaux sociaux](/apis/profiles/overview#enable-or-disable-social-networks) pour plus d'informations.
</ParamField>

<ParamField body="team" type="boolean" default={false}>
  Créez un nouveau profil d'utilisateur en tant que membre d'équipe en définissant `team: true`. Le champ `email` sera utilisé pour envoyer un e-mail d'invitation. Consultez [inviter un membre d'équipe](/multiple-users/manage-user-profiles#invite-a-team-member) pour plus de détails sur les exigences.
</ParamField>

<ParamField body="email" type="string">
  Une adresse e-mail valide où sera envoyée l'invitation du membre d'équipe. Requis si `team: true`
</ParamField>

<ParamField body="subHeader" type="string">
  Modifie le sous-en-tête sur la page de liaison des comptes sociaux. Affiche actuellement « Click an icon to link a social network ». Définir sur une chaîne vide pour le supprimer.

  Voir comment modifier le [lien d'aide](/multiple-users/manage-user-profiles#help-links-visible).
</ParamField>

<ParamField body="tags" type="array">
  Étiquetez les profils d'utilisateur à l'aide d'un tableau de chaînes. Ces étiquettes servent d'outil d'organisation interne pour catégoriser et gérer efficacement vos profils d'utilisateur.
</ParamField>

<RequestExample>
  ```javascript cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"title": "ACME Profile"}' \
  -X POST https://api.ayrshare.com/api/profiles
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/profiles", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "Authorization": `Bearer ${API_KEY}`
        },
        body: JSON.stringify({
          title: "ACME Profile", // required
        }),
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  payload = {'title': 'ACME Profile'}
  headers = {'Content-Type': 'application/json',
          'Authorization': 'Bearer API_KEY'}

  r = requests.post('https://api.ayrshare.com/api/profiles',
      json=payload,
      headers=headers)

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php
  require 'vendor/autoload.php';    // Composer auto-loader using Guzzle. See .../guzzlephp.org/en/stable/overview.html

  $client = new GuzzleHttp\Client();
  $res = $client->request(
      'POST',
      'https://api.ayrshare.com/api/profiles',
      [
          'headers' => [
              'Content-Type'      => 'application/json',
              'Authorization'     => 'Bearer API_KEY'
          ],
          'title' => ['ACME Profile'],
      ]
  );

  echo json_encode(json_decode($res->getBody()), JSON_PRETTY_PRINT);
  ```

  ```go Go theme={"system"}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"log"
  	"net/http"
  )

  func main() {
  	message := map[string]interface{}{
  		"title": "ACME Profile"
  	}

  	bytesRepresentation, err := json.Marshal(message)
  	if err != nil {
  		log.Fatalln(err)
  	}

  	req, _ := http.NewRequest("POST", "https://api.ayrshare.com/api/profiles",
  		bytes.NewBuffer(bytesRepresentation))

  	req.Header.Add("Content-Type", "application/json; charset=UTF-8")
  	req.Header.Add("Authorization", "Bearer API_KEY")

  	res, err := http.DefaultClient.Do(req)
  	if err != nil {
  		log.Fatal("Error:", err)
  	}

  	res.Body.Close()
  }
  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Text;
  using System.Threading.Tasks;

  namespace CreateProfilePOSTRequest_csharp 
  {
    class CreateProfile
    {
        static async Task Main(string[] args)
        {
            string API_KEY = "API_KEY";
            string url = "https://api.ayrshare.com/api/profiles";
            string json = "{\"title\": \"ACME Profile\"}";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

                try
                {
                    var content = new StringContent(json, Encoding.UTF8, "application/json");
                    HttpResponseMessage response = await client.PostAsync(url, content);
                    
                    response.EnsureSuccessStatusCode();
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
                catch (HttpRequestException e)
                {
                    Console.WriteLine($"Error: {e.Message}");
                }
            }
        }
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
      "status": "success",
      "title": "Digg It",
      "refId": "140b8709bd6ade099b242d895e268fb886130c53",
      "profileKey": "7TVRLEZ-24A43C0-NJW0Z82-F11984N",
      "messagingActive": true // true if messaging for this user profile is active
  }
  ```

  ```json 400: Profile Title Already Exists theme={"system"}
  {
    "action": "create",
    "status": "error",
    "code": 146,
    "message": "Profile title already exists."
  }
  ```
</ResponseExample>
