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

# Criar um User Profile

> Crie um novo User Profile dentro do seu Primary Profile.

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} />

Crie um novo profile dentro do seu Primary Profile. Após a criação bem-sucedida do User Profile, a resposta da API incluirá o Profile Key associado ao profile recém-criado. Armazene o Profile Key com segurança em seu sistema, pois ele será necessário para fazer chamadas de API em nome do seu usuário.

Observe que, por questões de segurança, os Profile Keys são retornados apenas em dois casos específicos:

1. Criação do User Profile: quando um novo User Profile é criado.
2. No Painel do Ayrshare: você pode encontrar o Profile Key de cada profile no Painel do Ayrshare. Alterne para o User Profile e, em seguida, navegue até a página Profile Key.

Recomendamos que você armazene o Profile Key com segurança em seu sistema.

## Gerenciar redes sociais

Use o campo disableSocial para gerenciar (adicionar/remover) redes sociais da exibição. Consulte [Gerenciar contas sociais](/apis/profiles/overview#enable-or-disable-social-networks) para mais informações.

## Gerenciar User Profiles ativos

Consulte aqui algumas recomendações sobre [como gerenciar User Profiles ativos](/multiple-users/manage-user-profiles#managing-active-user-profiles).

## Considerações importantes de segurança

<Warning>
  <ul className="custom-bullets">
    <li>Evite compartilhar Profile Keys publicamente ou expô-los em código do lado do cliente ou em repositórios públicos.</li>
    <li>Profile Keys são credenciais sensíveis usadas para autenticar e autorizar o acesso aos User Profiles.</li>
    <li>É fundamental armazenar os Profile Keys com segurança em seu sistema, com controles de acesso adequados para manter a integridade e a confidencialidade dos dados dos seus usuários.</li>
    <li>Por questões de segurança, o Profile Key não pode ser recuperado novamente pela API. No entanto, você pode obter o Profile Key pelo [painel](/multiple-users/manage-user-profiles#get-the-profile-key).</li>
    <li>O `refId` também deve ser armazenado para associar um profile a um retorno de endpoint.</li>
  </ul>
</Warning>

## Parâmetros do cabeçalho

<HeaderAPI noProfileKey />

## Parâmetros do corpo

<ParamField body="title" type="string" required>
  Título do novo profile. Deve ser único. Este título será exibido na página de vinculação de contas sociais.
</ParamField>

<ParamField body="messagingActive" type="boolean" default={false}>
  Defina como true para ativar mensagens para este user profile. As mensagens devem estar habilitadas primeiro para a sua conta Ayrshare.
</ParamField>

<ParamField body="hideTopHeader" type="boolean" default={false}>
  Oculta o cabeçalho superior na página de vinculação de contas sociais.
</ParamField>

<ParamField body="hideLogo" type="boolean" default={false}>
  Oculta o logotipo da empresa na página de vinculação de contas sociais apenas para este user profile. O logotipo em nível de conta nos demais profiles não é afetado. Útil para white-label de profiles de parceiros individuais, mantendo a marca no restante.
</ParamField>

<ParamField body="topHeader" type="string">
  Altera o cabeçalho na página de vinculação de contas sociais. Se não for definido, exibe: "Social Accounts for "title", onde "title" é o título do profile.
</ParamField>

<ParamField body="disableSocial" type="array">
  Matriz de redes sociais que estão desativadas para o profile deste usuário. A lista de redes sociais desativadas do primary profile tem precedência.

  Redes disponíveis: `bluesky`, `facebook`, `gmb`, `instagram`, `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter` e `youtube`.

  Consulte [ativar ou desativar redes sociais](/apis/profiles/overview#enable-or-disable-social-networks) para mais informações.
</ParamField>

<ParamField body="team" type="boolean" default={false}>
  Crie um novo user profile como membro de equipe definindo `team: true`. O campo `email` será usado para enviar um e-mail de convite. Consulte [convidar um membro da equipe](/multiple-users/manage-user-profiles#invite-a-team-member) para detalhes sobre os requisitos.
</ParamField>

<ParamField body="email" type="string">
  Um endereço de e-mail válido para o qual o convite do membro da equipe será enviado. Obrigatório se `team: true`.
</ParamField>

<ParamField body="subHeader" type="string">
  Altera o subcabeçalho na página de vinculação de contas sociais. Atualmente exibe "Click an icon to link a social network". Defina como uma string vazia para remover.

  Veja como alterar o [link de ajuda](/multiple-users/manage-user-profiles#help-links-visible).
</ParamField>

<ParamField body="tags" type="array">
  Marque user profiles usando uma matriz de strings. Essas tags servem como uma ferramenta organizacional interna para categorizar e gerenciar seus user profiles de forma eficaz.
</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>
