> ## Documentation Index
> Fetch the complete documentation index at: https://gologin.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK para Node.js

> Execute perfis do Gologin de forma programática com o SDK para Node.js

### Instalação

```bash theme={null}
npm i gologin
```

### Uso básico

```javascript theme={null}
import GoLogin from 'gologin';

const GL = new GoLogin({
  token: 'your-api-token',
  profile_id: 'your-profile-id',
});

const { status, wsUrl } = await GL.start();
// Connect Puppeteer or Playwright using wsUrl
// ... your automation code ...
await GL.stop();
```

### Principais parâmetros

| Parâmetro | Padrão | Descrição |
| - | - | - |
| `token` | obrigatório | Seu token de API do Gologin |
| `profile_id` | obrigatório | ID do perfil a ser iniciado |
| `executablePath` | automático | Caminho do binário do navegador Orbita |
| `uploadCookiesToServer` | `false` | Envia os cookies para a nuvem ao parar o perfil. Defina como `true` se precisar manter a sessão entre dispositivos. |
| `checkBrowserUpdate` | `true` | Verifica atualizações do Orbita para a versão deste perfil ao iniciar. Defina como `false` para fixar a versão atual. |
| `autoUpdateBrowser` | `true` | Baixa automaticamente novas versões do Orbita. Defina como `false` para evitar atualizações inesperadas. |
| `extra_params` | `[]` | Flags adicionais do Chromium passadas ao navegador |

### Parando perfis

```javascript theme={null}
// Stop and sync to cloud (default)
await GL.stop();

// Stop without syncing any data to cloud
await GL.stop({ posting: false });
```

Observação: `posting: false` impede que os dados do perfil sejam enviados aos servidores do Gologin. Use essa opção ao executar em servidores nos quais você não deseja a sincronização com a nuvem.

### Gerenciando versões do navegador Orbita

```javascript theme={null}
import { checkAndDownloadBrowserByOpts } from 'gologin';

// Pre-download the latest Orbita version
await checkAndDownloadBrowserByOpts({ lastActualCount: 1 });

// Pre-download specific versions
await checkAndDownloadBrowserByOpts({ majorVersions: [142, 143] });
```

Use `checkAndDownloadBrowserByOpts` antes de iniciar perfis em paralelo para evitar vários downloads simultâneos.

### Executando mais de 100 perfis em paralelo

Ao executar muitos perfis simultaneamente em um servidor:

```javascript theme={null}
// Use a queue to limit concurrent launches
const CONCURRENCY = 10;
const queue = [...profileIds];
const active = new Set();

async function launchProfile(profileId) {
  const gl = new GoLogin({ token, profile_id: profileId });
  try {
    const { wsUrl } = await gl.start();
    // ... your automation ...
  } finally {
    await gl.stop();
  }
}

async function processQueue() {
  while (queue.length > 0) {
    while (active.size >= CONCURRENCY) {
      await new Promise(r => setTimeout(r, 1000));
    }
    const id = queue.shift();
    active.add(id);
    launchProfile(id).finally(() => active.delete(id));
  }
}
```

**Importante para servidores:**

* Limite o número de perfis iniciados simultaneamente (recomendamos começar com 10-20)
* Baixe previamente as versões do Orbita antes de iniciar os perfis
* No Linux: instale o Xvfb e defina `DISPLAY=:99`
* Aumente os limites de descritores de arquivo: `ulimit -n 65536`
* Monitore a RAM: cada perfil usa cerca de 300-500 MB

### Depuração

Defina a variável de ambiente para ativar logs detalhados:

```bash theme={null}
DEBUG=gologin node your-script.js
```

### GitHub e Changelog

* Código-fonte: [https://github.com/gologinapp/gologin](https://github.com/gologinapp/gologin)
* [Changelog](https://gologin.com/docs/pt/api-reference/sdks/nodejs-changelog.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.