> ## 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 e CLI da Scraping API

O Gologin Web Unlocker é uma **Scraping API de endpoint único** para sites protegidos e com muito JavaScript.

Você envia uma URL, recebe o HTML/texto renderizado da página e o processa no seu próprio pipeline de extração.

## Por que usar como Scraping API

* Um único endpoint para qualquer URL de destino
* Autenticação por chave de API, sem necessidade de orquestrar navegadores
* Resposta focada em HTML, que se encaixa nos parsers já existentes
* Ideal para ETL, monitoramento, ingestão para IA e pipelines de dados

## Endpoint

`GET https://parsing.webunlocker.gologin.com/v1/scrape?url={encoded_url}`

## Autenticação

Envie sua chave de API nos headers:

```http theme={null}
apikey: <API_KEY>
```

## Modelo de requisição

| Nome | Onde | Tipo | Obrigatório | Descrição |
| - | - | - | - | - |
| `url` | query | string (URL absoluta) | sim | URL de destino a ser extraída |

## Início rápido

### cURL

```bash theme={null}
curl "https://parsing.webunlocker.gologin.com/v1/scrape?url=https%3A%2F%2Fexample.com" \
  -H "apikey: YOUR_API_KEY"
```

### Python

```python theme={null}
import requests

response = requests.get(
    "https://parsing.webunlocker.gologin.com/v1/scrape",
    params={"url": "https://example.com"},
    headers={"apikey": "YOUR_API_KEY"}
)

print(response.status_code)
print(response.text[:500])
```

### JavaScript (fetch)

```js theme={null}
const response = await fetch(
  "https://parsing.webunlocker.gologin.com/v1/scrape?url=" +
    encodeURIComponent("https://example.com"),
  { headers: { apikey: "YOUR_API_KEY" } }
);

const html = await response.text();
console.log(response.status, html.slice(0, 500));
```

## Comportamento da resposta

Atualmente, o corpo da resposta é **HTML/texto renderizado bruto**.

* `200` -> sucesso, o corpo contém o HTML/texto da página
* `401` / `403` -> chave de API inválida ou ausente
* `422` -> `url` inválida ou ausente
* `429` -> limite de requisições atingido
* `500+` -> erro temporário do lado do servidor

## Orientações para novas tentativas

Tente novamente com backoff exponencial nos seguintes casos:

* erros de rede
* `408`, `429`, `500`, `502`, `503`, `504`

## Observação sobre o escopo

O endpoint público atual é focado em HTML. Não presuma a existência de outros endpoints de backend (por exemplo, captura de tela, rastreamento, busca ou uso), a menos que estejam explicitamente documentados e habilitados para a sua conta.

## SDK oficial para Node.js

Instalação:

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

### Início rápido do SDK

```ts theme={null}
import { WebUnlocker } from "gologin-webunlocker";

const client = new WebUnlocker({
  apiKey: process.env.GOLOGIN_WEBUNLOCKER_API_KEY!
});

const result = await client.scrape("https://example.com");
console.log(result.status);
console.log(result.content.slice(0, 500));
```

### Opções do construtor

```ts theme={null}
new WebUnlocker({
  apiKey: "wu_live_xxx",
  baseUrl: "https://parsing.webunlocker.gologin.com",
  timeoutMs: 15000,
  maxRetries: 2
});
```

### Métodos principais do SDK

* `scrape(url)` -> objeto de resposta normalizado
* `scrapeRaw(url)` -> `Response` nativo
* `buildScrapeUrl(url)` -> URL completa da requisição

### Métodos derivados no SDK (a partir do HTML retornado)

Eles **não são endpoints de backend separados**; são derivados no SDK a partir do HTML retornado pela API:

* `scrapeText(url)` -> texto simples
* `scrapeMarkdown(url)` -> markdown
* `scrapeJSON(url)` -> metadados estruturados (`title`, `meta`, `links`, `headings`)
* `batchScrape(urls, { concurrency })` -> auxiliar para várias chamadas de scrape

### Erros tipados

* `WebUnlockerError`
* `AuthenticationError`
* `RateLimitError`
* `APIError`
* `TimeoutError`
* `NetworkError`

Mapeamento:

* `401` / `403` -> `AuthenticationError`
* `429` -> `RateLimitError`
* `500+` -> `APIError`
* timeout/abort -> `TimeoutError`
* falha de fetch/rede -> `NetworkError`

## CLI

```bash theme={null}
gologin-webunlocker <command> <url> [options]
```

Comandos:

* `scrape` (HTML/texto bruto)
* `text` (texto derivado)
* `markdown` (markdown derivado)
* `json` (metadados derivados)

Exemplos:

```bash theme={null}
gologin-webunlocker scrape https://example.com --api-key wu_live_xxx
GOLOGIN_WEBUNLOCKER_API_KEY=wu_live_xxx gologin-webunlocker text https://example.com
GOLOGIN_WEBUNLOCKER_API_KEY=wu_live_xxx gologin-webunlocker json https://example.com
```

## Casos de uso típicos de scraping

* monitoramento de preços e catálogos
* enriquecimento de leads e diretórios
* pipelines de inteligência de mercado
* agregação e indexação de conteúdo
* fluxos de ingestão e extração para LLMs

## Gologin Web Access CLI (unificada)

Para uma CLI mais poderosa, que combina o Web Unlocker com o Cloud Browser em uma única interface de comandos, use o `gologin-web-access`:

```bash theme={null}
npm install -g gologin-web-access

export GOLOGIN_WEB_UNLOCKER_API_KEY="wu_..."

# all scraping commands from gologin-webunlocker, plus:
gologin-web-access batch-scrape url1 url2 url3 --format text --summary
gologin-web-access search "query" --limit 10
gologin-web-access map https://example.com --limit 50
gologin-web-access crawl https://docs.example.com --format markdown --limit 20
gologin-web-access extract https://example.com --schema ./schema.json
gologin-web-access change-track https://example.com --format markdown

# plus cloud browser interaction (requires GOLOGIN_TOKEN)
gologin-web-access open https://example.com
gologin-web-access snapshot
gologin-web-access click e3
```

Veja a [Gologin Web Access CLI](https://gologin.com/docs/pt/cli-tools/web-access.md) para a referência completa.

## Documentação relacionada

* [O que é o Web Unlocker](https://gologin.com/docs/pt/what-is-web-unlocker.md)
* [Início rápido do Web Unlocker](https://gologin.com/docs/pt/web-unlocker-quick-start.md)
* [Casos de uso do Web Unlocker](https://gologin.com/docs/pt/web-unlocker-use-cases.md)


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