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

# Como usar a Pterodactyl API (JS)

Com o nosso painel Apollo podes interagir com a API que te dá a possibilidade de controlares o teu servidor usando o teu bot de Discord ou a tua aplicação JavaScript. Vamos-te mostrar o processo de como fazer isso através do método HTTP.

Aprende como usar a API Pterodactyl em JS!

### Como usar a Pterodactyl API (JS)

1. Primeiro precisamos criar uma “API key”. Vamos precisar dela pois é esta que permite a comunicação entre o teu servidor e o painel. Para fazermos isso clica em “API Credentials” que fica no menu lateral da página principal.

Escolhe uma descrição customizada para identificares a tua API e os IPs que tem permissão de usar a API. Isto é útil te quiseres assegurar que só pessoas selecionadas por ti é que podem ter acesso à tua API key. Podes deixar o campo vazio se quiseres que qualquer pessoa possa usar a tua key.

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

A key é mostrada apenas **uma vez. Guarda um backup da tua key! **

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

2. Agora estamos prontos para começar com o nosso código! Vais precisar de uma biblioteca HTTP, neste caso vamos usar a [axios](https://www.npmjs.com/package/axios). Vais conseguir ver todos os endpoints da pterodactyl [aqui](https://dashflo.net/docs/api/pterodactyl/v1/). Não te esqueças que a página de documentação não é oficial. 


Neste exemplo vamos mostrar como usar os endpoints mais uteis.

**Como verificar a integridade e informação do servidor**

Para verificares a integridade do teu servidor, vais precisar de fazer uma “request” (pedido) para `/api/client/servers/<server id>`. Obviamente, tendo em conta que tens de substituir onde que está escrito <server id> pelo id do teu servidor.

Aqui está um exemplo de como fazer esta request:

```js

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);
  })
```

Resultado:

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

**Como receber informação em tempo real sobre o teu servidor (ex.: inputs da consola, estado do servidor)
**

Para isto vais precisar de usar outra biblioteca chamada ws. A Pterodactyl usa sockets para enviar e receber informação em tempo real. Podes usar este código para isso:

```js
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_bxw05t.png)

Vê mais informações sobre web socket requests [aqui](https://dashflo.net/docs/api/pterodactyl/v1/#req_2c867e1e1f6b448b9e99f9daeebb7e9a).

---


Se precisares de mais ajuda cria um ticket [aqui](https://billing.sparkedhost.com/submitticket.php).

---

Criado por: Greg K
Traduzido por: David S.