> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.easyminecrafthosting.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)

Artigos sobre: [Host de Bots de Discord](/pt/category/host-de-bots-de-discord-2gwyz5/)

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)

  
  
*   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/ddb73bb7b9600800/1dec0d96-06f7-447e-8eb0-96d3a5_xazaon.png)  
  
A key é mostrada apenas uma vez. Guarda um backup da tua key!  
  
![](https://storage.crisp.chat/users/helpdesk/website/78de421584fd9c00/64081eec-7850-4e66-af48-95cf52_vmg70g.png)  
  
*   Agora estamos prontos para começar com o nosso código! Vais precisar de uma biblioteca HTTP, neste caso vamos usar a axios. Vais conseguir ver todos os endpoints da pterodactyl aqui. 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/`

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

``` const axios = require('axios'); const apiKey = 'My API Key' axios.get('https://control.sparkedhost.us/api/client/servers/, { 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/4c32c40923a35800/8d4cabe6-777e-405d-8f80-fdc0cf_1xl5jc8.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:  
  

``` 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/628ab8b1769ae800/00aec86b-3c77-4d0e-9a6a-c73588_a45vhy.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.

Actualizado em: 06/03/2023