# Autenticación en la API REST

Puedes autenticarte en la API REST para acceder a más puntos de conexión y tener un límite de frecuencia más alto.

## Acerca de la autenticación

Muchos puntos de conexión de la API REST necesitan autenticación o devuelven información adicional si te autenticas. Además, cuando te autenticas, puedes realizar más solicitudes por hora.

Para autenticar la solicitud, deberás proporcionar un token de autenticación con los ámbitos o permisos necesarios. Hay varias maneras diferentes de obtener un token: puede crear un personal access token, generar un token con un GitHub App, o usar el integrado en un `GITHUB_TOKEN` flujo de trabajo GitHub Actions.

Después de crear un token, puedes autenticar la solicitud enviando un token en el encabezado `Authorization` de la solicitud. Por ejemplo, en la siguiente solicitud, reemplaza `YOUR-TOKEN` por una referencia al token:

```shell
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/octocat" \
--header "Authorization: Bearer YOUR-TOKEN" \
--header "X-GitHub-Api-Version: 2026-03-10"
```

> \[!NOTE]
> En la mayoría de los casos, puedes usar `Authorization: Bearer` o `Authorization: token` para pasar un token. Sin embargo, si vas a pasar un token web JSON (JWT), debes usar `Authorization: Bearer`.

### Límite de intentos de inicio de sesión fallidos

Si intentas usar un punto de conexión de la API REST sin un token o con un token que no tenga permisos suficientes, recibirás una respuesta `404 Not Found` o `403 Forbidden`. La autenticación con credenciales no válidas devolverá inicialmente una respuesta `401 Unauthorized`.

Después de detectar varias solicitudes con credenciales no válidas en un breve periodo de tiempo, la API rechazará temporalmente todos los intentos de autenticación para el usuario en cuestión (incluidos aquellos con credenciales válidas) con una respuesta `403 Forbidden`. Para más información, consulta [Límites de tasa de la API REST](/es/enterprise-server@3.22/rest/using-the-rest-api/rate-limits-for-the-rest-api).

## Autenticación con personal access token

Si desea usar la GitHub API REST para su uso personal, puede crear un personal access token. Si es posible, GitHub recomienda que use un fine-grained personal access token en lugar de un personal access token (classic). Para obtener más información sobre cómo crear un personal access token, vea [Administración de tokens de acceso personal](/es/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Si utiliza un fine-grained personal access token, su fine-grained personal access token requiere permisos específicos para acceder a cada extremo de la API REST. El documento de referencia de la API REST para cada punto de conexión indica si el punto de conexión funciona con fine-grained personal access tokens y indica qué permisos son necesarios para que el token use el punto de conexión. Algunos puntos de conexión pueden requerir varios permisos y algunos puntos de conexión pueden requerir uno de varios permisos. Para obtener información general sobre los puntos fine-grained personal access token de conexión de la API REST a los que puede acceder con cada permiso, consulte [Permisos necesarios para los tokens de acceso personal específicos](/es/enterprise-server@3.22/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens).

Si usa personal access token (classic), necesita permisos específicos para acceder a cada extremo de la API REST. Para obtener instrucciones generales sobre qué ámbitos elegir, consulta [Ámbitos para las aplicaciones de OAuth](/es/enterprise-server@3.22/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes).

Personal access tokens actúe como su identidad (limitada por los ámbitos o permisos seleccionados) al realizar solicitudes a la API REST. Por lo tanto, es importante mantener seguro su personal access tokens. Para obtener más información sobre cómo mantener la personal access tokens seguridad, consulte [Protección de las credenciales de API](/es/enterprise-server@3.22/rest/authentication/keeping-your-api-credentials-secure?apiVersion=2022-11-28).

### Personal access tokens y SAML SSO

## Autenticación con un token generado por una aplicación

Si desea usar la API para una organización o en nombre de otro usuario, GitHub recomienda usar .GitHub App Para más información, consulta [Acerca de la autenticación con una aplicación de GitHub](/es/enterprise-server@3.22/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app).

La documentación de referencia de la API REST para cada punto de conexión indica si el punto de conexión funciona con GitHub Apps y indica qué permisos se requieren para que la aplicación use el punto de conexión. Algunos puntos de conexión pueden requerir varios permisos y algunos puntos de conexión pueden requerir uno de varios permisos. Para obtener información general sobre los puntos GitHub App de conexión de la API REST a los que puede acceder con cada permiso, consulte [Permisos necesarios para aplicaciones de GitHub](/es/enterprise-server@3.22/rest/authentication/permissions-required-for-github-apps).

También puede crear un token de OAuth con OAuth app para acceder a la API REST. Sin embargo, GitHub recomienda que use un GitHub App en su lugar.
GitHub Apps permite un mayor control sobre el acceso y el permiso que tiene la aplicación.

### Uso de autenticación básica

Algunos puntos de conexión de la API REST para GitHub Apps y OAuth apps requieren que use la autenticación básica para acceder al punto de conexión. Usarás el Id. de cliente de la aplicación como nombre de usuario y el secreto de cliente como contraseña.

Por ejemplo:

```shell
curl --request POST \
--url "http(s)://HOSTNAME/api/v3/applications/YOUR_CLIENT_ID/token" \
--user "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2026-03-10" \
--data '{
  "access_token": "ACCESS_TOKEN_TO_CHECK"
}'
```

El identificador de cliente y el secreto de cliente están asociados a la aplicación, no al propietario de la aplicación o a un usuario que autorizó la aplicación. Se usan para realizar operaciones en nombre de la aplicación, como la creación de tokens de acceso.

Si es el propietario de un GitHub App o OAuth app, o si es gestor de aplicaciones de un GitHub App, puede encontrar el identificador de cliente y generar un secreto de cliente en la página de configuración de su aplicación. Para ir a la página de configuración de la aplicación:

1. En la esquina superior derecha de cualquier página de GitHub, haga clic en la imagen de perfil.
2. Navega a la configuración de tu cuenta.
   * Para una aplicación propiedad de una cuenta personal, haga clic en **Configuración**.
   * Para una aplicación propiedad de una organización:
     1. Haga clic en **Sus organizaciones**.
     2. A la derecha de la organización, haga clic en **Configuración**.
3. En la barra lateral de la izquierda, haz clic en **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Developer settings**.
4. En la barra lateral izquierda, haga clic en **GitHub Apps** o **OAuth apps**.
5. Para GitHub Apps, a la derecha de GitHub App al que desea acceder, haga clic en **Editar**. En OAuth apps, haga clic en la aplicación a la que desea acceder.
6. Junto a **Id. de cliente**, verás el Id. de cliente de tu aplicación.
7. Junto a **Secretos de cliente**, haga clic en **Generar un nuevo secreto de cliente** para generar un secreto de cliente para la aplicación.

## Autenticación en un GitHub Actions flujo de trabajo

Si desea usar la API en un GitHub Actions flujo de trabajo, GitHub recomienda autenticarse con la función integrada en `GITHUB_TOKEN` en vez de crear un token. Puedes conceder permisos a `GITHUB_TOKEN` con la clave `permissions`. Para más información, consulta [Uso de GITHUB\_TOKEN para la autenticación en flujos de trabajo](/es/enterprise-server@3.22/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token).

Si esto no es posible, puede guardar su token como un secreto y usar el nombre de su secreto en su flujo de trabajo GitHub Actions. Para obtener más información sobre secretos, consulta [Uso de secretos en Acciones de GitHub](/es/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).

### Autenticación en un GitHub Actions flujo de trabajo mediante GitHub CLI

Para realizar una solicitud autenticada a la API en un flujo de trabajo de GitHub Actions usando GitHub CLI, puede almacenar el valor de `GITHUB_TOKEN` como variable de entorno y usar la palabra clave `run` para ejecutar el subcomando GitHub CLI`api`. Para obtener más información sobre la palabra clave `run`, consulta [Sintaxis del flujo de trabajo para Acciones de GitHub](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsrun).

En el siguiente flujo de trabajo de ejemplo, reemplaza `PATH` por la ruta de acceso del punto de conexión. Para obtener más información sobre la ruta de acceso, consulte [Introducción a la API REST](/es/enterprise-server@3.22/rest/using-the-rest-api/getting-started-with-the-rest-api?tool=cli#path). Reemplace por `HOSTNAME` el nombre de tu instancia de GitHub Enterprise Server.

```yaml
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions: {}
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh api /PATH
```

### Autenticación en un GitHub Actions flujo de trabajo mediante `curl`

Para realizar una solicitud autenticada a la API en un flujo de trabajo GitHub Actions usando `curl`, puede almacenar el valor de `GITHUB_TOKEN` como una variable de entorno y usar la palabra clave `run` para realizar una solicitud `curl` a la API. Para obtener más información sobre la palabra clave `run`, consulta [Sintaxis del flujo de trabajo para Acciones de GitHub](/es/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsrun).

En el siguiente flujo de trabajo de ejemplo, reemplaza `PATH` por la ruta de acceso del punto de conexión. Para obtener más información sobre la ruta de acceso, consulte [Introducción a la API REST](/es/enterprise-server@3.22/rest/using-the-rest-api/getting-started-with-the-rest-api?tool=cli#path). Reemplace por `HOSTNAME` el nombre de tu instancia de GitHub Enterprise Server.

```yaml copy
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions: {}
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          curl --request GET \
          --url "http(s)://HOSTNAME/api/v3/PATH" \
          --header "Authorization: Bearer $GH_TOKEN"
```

### Autenticación en un GitHub Actions flujo de trabajo mediante JavaScript

Para obtener un ejemplo de cómo autenticarse en un GitHub Actions flujo de trabajo mediante JavaScript, consulte [Scripting con la API de REST y JavaScript](/es/enterprise-server@3.22/rest/guides/scripting-with-the-rest-api-and-javascript#authenticating-in-github-actions).

## Autenticación con nombre de usuario y contraseña

GitHub recomienda usar un token para autenticarse en la API REST en lugar de la contraseña. Tienes más control sobre lo que puede hacer un token y puedes revocar un token en cualquier momento. Pero también te puedes autenticar en la API REST mediante el nombre de usuario y la contraseña para la autenticación básica. Para ello, tendrás que pasar el nombre de usuario y la contraseña con la opción `--user`:

```shell
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/user" \
--user USERNAME:PASSWORD \
--header "X-GitHub-Api-Version: 2026-03-10"
```

## Información adicional

* [Protección de las credenciales de API](/es/enterprise-server@3.22/rest/authentication/keeping-your-api-credentials-secure)
* [Introducción a la API REST](/es/enterprise-server@3.22/rest/using-the-rest-api/getting-started-with-the-rest-api#authentication)