> ## Documentation Index
> Fetch the complete documentation index at: https://trophy-ci-i18n-auto-translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticación

> Integra de forma segura con la Admin API utilizando claves de API de administrador a nivel de cuenta transmitidas en el encabezado `X-API-KEY`.

<Tip>
  Para acceso del lado del cliente o de usuarios finales a la Application API, crea
  [claves de API de aplicación](/es/api-reference/authentication) con alcance limitado a un solo usuario
  en su lugar.
</Tip>

<h2 id="admin-api-keys">
  Claves de API de administrador
</h2>

Las claves de API de administrador son credenciales a nivel de cuenta con permisos amplios. Úsalas para autenticar solicitudes a la Admin API y, opcionalmente, a la [Application API](/es/api-reference/authentication) desde entornos de servidor confiables.

Cada cuenta puede crear un máximo de 3 claves de API de administrador desde la [página de integración](https://app.trophy.so/integration) del panel de Trophy.

Trophy realiza un seguimiento y muestra cuándo se creó cada clave de API de administrador en tu cuenta y cuándo se usó por última vez, para que puedas supervisar fácilmente su uso.

<Frame>
  <img height="200" noZoom src="https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/api/authentication/api_keys.png?fit=max&auto=format&n=kq20NZCpkjuLyTvG&q=85&s=756e3b146aed6ce01c917dd913b6e500" data-path="assets/api/authentication/api_keys.png" />
</Frame>

<Warning>
  Las claves de API de administrador pueden acceder a cualquier usuario y cualquier operación de administrador en tu cuenta.
  Nunca las expongas en código del lado del cliente, aplicaciones móviles o repositorios públicos.
</Warning>

<h3 id="anatomy-of-an-admin-api-key">
  Anatomía de una clave de API de administrador
</h3>

Cada clave de API de administrador está compuesta por 2 partes separadas por un punto:

```bash theme={null}
{prefix}.{body}
```

* El *prefijo* son los primeros 8 caracteres. Es legible y siempre permanecerá igual, por lo que es fácilmente reconocible.
* El *cuerpo* es la parte secreta y solo se te muestra una vez cuando creas la clave.

<Note>
  Al usar la API, ambas partes de tu clave de API de administrador deben enviarse en el
  encabezado `X-API-KEY`.
</Note>

<h3 id="authenticating-requests">
  Autenticación de solicitudes
</h3>

Al realizar solicitudes al Admin API, incluye ambas partes de tu clave de admin API en el encabezado `X-API-KEY`, o pásala al inicializar un cliente SDK:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://admin.trophy.so/v1/metrics \
       -H "X-API-KEY: YOUR_API_KEY"
  ```

  ```typescript Node theme={null}
  import { TrophyApiClient } from "@trophyso/node";

  const trophy = new TrophyApiClient({
    apiKey: "YOUR_API_KEY",
  });
  ```

  ```python Python theme={null}
  from trophy import TrophyApi

  client = TrophyApi(
      api_key="YOUR_API_KEY",
  )
  ```

  ```php PHP theme={null}
  use Trophy\TrophyClient;

  $trophy = new TrophyClient("YOUR_API_KEY");
  ```

  ```java Java theme={null}
  TrophyApiClient client = TrophyApiClient.builder()
      .apiKey("YOUR_API_KEY")
      .build();
  ```

  ```go Go theme={null}
  import (
    trophyclient "github.com/trophyso/trophy-go/client"
    "github.com/trophyso/trophy-go/option"
  )

  client := trophyclient.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
  )
  ```

  ```csharp C# theme={null}
  var trophy = new TrophyApiClient(
      apiKey: "YOUR_API_KEY"
  );
  ```

  ```ruby Ruby theme={null}
  client = Trophy::Client.new(
    api_key: "YOUR_API_KEY"
  )
  ```
</CodeGroup>

La misma clave autentica las solicitudes del Application API cuando utilizas una clave de admin API desde un entorno del lado del servidor:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.trophy.so/v1/users/user_123/metrics/<key> \
       -H "X-API-KEY: YOUR_API_KEY"
  ```

  ```typescript Node theme={null}
  import { TrophyApiClient } from "@trophyso/node";

  const trophy = new TrophyApiClient({
    apiKey: "YOUR_API_KEY",
  });
  ```

  ```python Python theme={null}
  from trophy import TrophyApi

  client = TrophyApi(
      api_key="YOUR_API_KEY",
  )
  ```

  ```php PHP theme={null}
  use Trophy\TrophyClient;

  $trophy = new TrophyClient("YOUR_API_KEY");
  ```

  ```java Java theme={null}
  TrophyApiClient client = TrophyApiClient.builder()
      .apiKey("YOUR_API_KEY")
      .build();
  ```

  ```go Go theme={null}
  import (
    trophyclient "github.com/trophyso/trophy-go/client"
    "github.com/trophyso/trophy-go/option"
  )

  client := trophyclient.NewClient(
    option.WithApiKey("YOUR_API_KEY"),
  )
  ```

  ```csharp C# theme={null}
  var trophy = new TrophyApiClient(
      apiKey: "YOUR_API_KEY"
  );
  ```

  ```ruby Ruby theme={null}
  client = Trophy::Client.new(
    api_key: "YOUR_API_KEY"
  )
  ```
</CodeGroup>

Si no proporcionas una clave API o tu clave API no es válida, recibirás un código de respuesta `401`.

<h2 id="managing-admin-api-keys">
  Administración de claves de admin API
</h2>

Existen varias operaciones que puedes realizar sobre las claves de admin API desde tu panel de Trophy para gestionar tu integración.

<Frame>
  <img height="200" noZoom src="https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/api/authentication/api_key_options.png?fit=max&auto=format&n=kq20NZCpkjuLyTvG&q=85&s=5eb712ee199bdf8e76352b24b8ae1c83" data-path="assets/api/authentication/api_key_options.png" />
</Frame>

<h3 id="rotating-keys">
  Rotación de claves
</h3>

Las claves de admin API pueden rotarse si deseas cambiarlas por cualquier motivo. En el momento de la rotación, la clave API original dejará de funcionar y cualquier solicitud que aún la utilice comenzará a recibir respuestas `401` de inmediato.

<Note>
  Ten en cuenta que al rotar claves, tanto el prefijo como el cuerpo cambiarán.
</Note>

<h3 id="revoking-keys">
  Revocación de claves
</h3>

Las claves de admin API también pueden revocarse por completo, momento en el cual pasan a estar *Inactivas*. En el momento de la revocación, la clave API dejará de funcionar y cualquier solicitud que aún la utilice comenzará a recibir respuestas `401` de inmediato.

Una vez revocada, puedes reactivar la clave API en cualquier momento.

<Note>
  Ni el prefijo ni el cuerpo de la clave cambian cuando se revoca o se reactiva.
</Note>

<h3 id="deleting-api-keys">
  Eliminación de claves API
</h3>

Si estás 100% seguro de que ya no necesitas una clave de admin API, pueden eliminarse.

<Error>Una vez que se eliminan las claves de API, no se pueden recuperar.</Error>

<h2 id="get-support">
  Obtener Soporte
</h2>

¿Quieres ponerte en contacto con el equipo de Trophy? Contáctanos por [correo electrónico](mailto:support@trophy.so). ¡Estamos aquí para ayudarte!
