> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.sparkedhost.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Cómo usar la API de Pterodactyl (JS)

Con nuestro panel Apollo, podrás interactuar con la API y controlar tu servidor usando tu bot de discord o aplicación JavaScript. Estaremos mostrando el método HTTP.

Aprende cómo usar la API Pterodactyl en JavaScript!

### Cómo usar la API de Pterodactyl (JS)

1. Primero, necesitamos crear una llave API. Necesitamos esto para interactuar con el panel. Para hacer esto, haz click en “API Credentials” en la parte izquierda del Panel.

Coloca la descripción y las IP’s permitidas. Esto es útil si te gustaría asegurar el uso de la llave API. Déjalo en blanco si te gustaría permitir el acceso de cualquier dirección IP a la llave API.

![](https://storage.crisp.chat/users/helpdesk/website/a79efd0b48a91800/create_1qjxmih.png)

La llave API está mostrada. Sólo puedes ver la llave API **una vez. ¡ Mantén registro de la llave API! **

![](https://storage.crisp.chat/users/helpdesk/website/a79efd0b48a91800/key_1rctqnt.png)

2. Ahora podemos empezar a programar! Necesitaremos una librería HTTP. En este caso, vamos a usar [axios](https://www.npmjs.com/package/axios). Puedes ver todos los endpoints de pterodactyl [aquí](https://dashflo.net/docs/api/pterodactyl/v1/). ¡Por favor nota que la página de documentación no es oficial! 

En este ejemplo, cubriremos los endpoints más útiles.

__Cómo revisar la información de un servidor__

Para revisar el status de un servidor, puedes hacer una petición a `/api/client/servers/<server id>`. Por supuesto, reemplaza <server id> con el id de tu servidor.

Aquí está el ejemplo de la petición:

```javascript
const axios = require('axios');
const apiKey = 'My API Key'

axios.get('https://control.sparkedhost.us/api/client/servers/<server Id>, {
    headers: {
        'Accept': 'application/json',
        'content-type': 'application/json',
        'Authorization': 'Bearer ' + apiKey
    }
})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
```

![](https://storage.crisp.chat/users/helpdesk/website/a79efd0b48a91800/result1_cvsozq.png)

__Cómo recibir la estadísticas en vivo del servidor (e.g Ingreso en Consola, status)__

Para esto, necesitarás usar otra librería llamada ws. Pterodactyl usa sockets para enviar y recibir archivos en vivo. Puedes usar el código siguiente:

```javascript
const axios = require('axios');
const WebSocket = require('ws')

const apiKey = 'zvVLw6PAenoTczUyJTa2XPZYXiQHZ8DYkZwnmuKz7kcFZIF0';

axios.get('https://control.sparkedhost.us/api/client/servers/f7a7faee/websocket', {
    headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' + apiKey,
        }
    })
    .then(function (response) {
        const token = response.data.data.token;
        const ws = new WebSocket(response.data.data.socket);

        ws.on('open', function open() {
            ws.send(JSON.stringify({"event":"auth","args":[token]}));
          });
          
          ws.on('message', function message(data) {
            console.log(data);
          });
          
          ws.on('error', function error(err) {
              console.log(err);
          });
    })
    .catch(function (error) {
        console.log(error);
    });
```

Resultado:

![](https://storage.crisp.chat/users/helpdesk/website/a79efd0b48a91800/wss_1v3n36o.png)

Puedes ver más acerca de peticiones websocket [aquí](https://dashflo.net/docs/api/pterodactyl/v1/#req_2c867e1e1f6b448b9e99f9daeebb7e9a).

---

Si necesita más ayuda, por favor crea un ticket [aquí](https://billing.sparkedhost.com/submitticket.php).

---

Creado por: Daniel R.