> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/integrations/pt-br/ai-studio-integrations/javascript-sdk.md).

# SDK JavaScript

Nós oferecemos um SDK JavaScript para interagir perfeitamente com [API do Oxylabs AI Studio](https://aistudio.oxylabs.io/) serviços, incluindo AI-Scraper, AI-Crawler, AI-Browser-Agent e outras ferramentas de extração de dados.

## Instalação

Instale o SDK:

```sh
npm install oxylabs-ai-studio
```

Ou adicione `OXYLABS_AI_STUDIO_API_URL` e `OXYLABS_AI_STUDIO_API_KEY` valores ao `.env` arquivo, ou como variáveis de ambiente:

```sh
export OXYLABS_AI_STUDIO_API_KEY=your_api_key_here
```

## <sup>Uso</sup>

### AI-Scraper

```javascript
import { 
  OxylabsAIStudioSDK
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testGenerateSchema() {
  try {
    console.log('Testando a geração do schema...');
    const schema = await sdk.aiScraper.generateSchema({
      user_prompt: 'Extraia o título da página'
    });
    console.log('Schema:', schema);
  } catch (error) {
    console.error('Erro na geração do schema:', error.message);
  }
}

testGenerateSchema();
```

#### Uso básico

```javascript
import { 
  OxylabsAIStudioSDK, 
  Formato de saída
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testScrapeOutputJson() {
  try {
    console.log('Testando a extração síncrona com saída JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      user_prompt: 'Extraia todos os links',
      output_format: OutputFormat.JSON,
      geo_location: "US",
      schema: {
        type: 'object',
        properties: {
          links: { type: 'array', items: { type: 'string' } }
        }
      }
    };
    
    const results = await sdk.aiScraper.scrape(options);
    console.log('Resultados da extração síncrona:', results);
  } catch (error) {
    console.error('Erro na extração síncrona:', error.message);
  }
}

testScrapeOutputJson();
```

#### Parâmetros de entrada

* `url` (*cadeia de caracteres*): A URL de destino a processar.
* `user_prompt` (*cadeia de caracteres*): Instruções sobre quais dados extrair. Isso é usado para gerar automaticamente o `openapi_schema` ao usar o `scrapeWithAutoSchema` método.
* `output_format` (*cadeia de caracteres*): O formato desejado para a saída. Pode ser `Markdown` ou `JSON`. Padrão: `Markdown`.
* `render_html` (*booleano*): Especifica se deve renderizar JavaScript na página antes da extração. Padrão: `false`.
* `openapi_schema` (*Record\<string, any>*): Um objeto JSON Schema que define a estrutura dos dados de saída. Isso é obrigatório quando `output_format` está definido como `JSON`.
* `geo_location` (*cadeia de caracteres*): Especifica a localização geográfica (formato ISO2) a partir da qual a solicitação deve ser simulada.

### AI-Crawler

#### Uso básico

```javascript
import { 
  OxylabsAIStudioSDK, 
  Formato de saída
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testCrawlOutputJson() {
  try {
    console.log('Testando a raspagem com saída JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Obtenha páginas de anúncios de emprego',
      return_sources_limit: 3,
      geo_location: "DE",
      schema: {
        type: "object",
        properties: {
          jobAd: {
            type: "object",
            properties: {
              position_title: {
                type: "string"
              },
              salary: {
                type: "string"
              }
            }
          }
        }
      }
    };
    
    const results = await sdk.aiCrawler.crawl(options);
    console.log('Resultados da raspagem:', JSON.stringify(results, null, 2));      
  } catch (error) {
    console.error('Erro na raspagem:', error.message);
  }
}

testCrawlOutputJson();
```

#### Parâmetros de entrada

* `url` (*cadeia de caracteres*): A URL inicial para o rastreamento.
* `crawl_prompt` (*cadeia de caracteres*): Instruções que definem os tipos de páginas a encontrar e rastrear.
* `parse_prompt` (*cadeia de caracteres*): Instruções sobre quais dados extrair das páginas rastreadas. Isso é usado para gerar automaticamente o `openapi_schema` ao usar o `crawlWithAutoSchema` método.
* `output_format` (*cadeia de caracteres*): O formato desejado para a saída. Pode ser `Markdown` ou `JSON`. Padrão: `Markdown`.
* `max_pages` (*inteiro*): O número máximo de páginas ou fontes a retornar. Padrão: `25`.
* `render_html` (*booleano*): Especifica se deve renderizar JavaScript nas páginas antes da extração. Padrão: `false`.
* `openapi_schema` (*Record\<string, any>*): Um objeto JSON Schema que define a estrutura dos dados de saída. Isso é obrigatório quando `output_format` está definido como `JSON`.
* `geo_location` (*cadeia de caracteres*): Especifica a localização geográfica (formato ISO2) a partir da qual a solicitação deve ser simulada.

### Browser-Agent

#### Uso básico

```javascript
import { 
  OxylabsAIStudioSDK, 
  Formato de saída
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testBrowseOutputJson() {
  try {
    console.log('Testando a navegação síncrona com saída JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Navegue até o primeiro anúncio de emprego que você encontrar.',
      geo_location: "US",
      schema: {
        type: 'object',
        properties: {
          job_title: { type: 'string' }
        }
      }
    };
    
    const results = await sdk.browserAgent.browse(options);
    console.log('Resultados da navegação síncrona:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Erro na navegação síncrona:', error.message);
  }
}

testBrowseOutputJson();
```

#### Parâmetros de entrada

* `url` (*cadeia de caracteres*): A URL de destino para o browser agent começar.
* `browse_prompt` (*cadeia de caracteres*): Instruções que definem as ações que o browser agent deve executar.
* `parse_prompt` (*cadeia de caracteres*): Instruções sobre quais dados extrair após executar as ações do browser agent. Isso é usado para gerar automaticamente o `openapi_schema` ao usar o `browseWithAutoSchema` método.
* `output_format` (*cadeia de caracteres*): O formato desejado para a saída. Pode ser `Markdown`, `html`, `JSON`, ou `captura de tela`. Padrão: `Markdown`.
* `render_html` (*booleano*): Especifica se deve renderizar JavaScript na página. Embora este seja um browser agent, essa flag pode influenciar certos comportamentos. Padrão: `false`.
* `openapi_schema` (*Record\<string, any>*): Um objeto JSON Schema que define a estrutura dos dados de saída. Isso é obrigatório quando `output_format` está definido como `JSON`.
* `geo_location` (*cadeia de caracteres*): Especifica a localização geográfica (formato ISO2) a partir da qual a solicitação deve ser simulada.

### AI-Search

#### Uso básico

```javascript
import {
  OxylabsAIStudioSDK,
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testSearch() {
  try {
    console.log('Testando a busca...');

    const options = {
      query: 'clima em Londres',
      limit: 3,
      return_content: true,
      render_javascript: false,
      geo_location: "IT",
    };

    const results = await sdk.aiSearch.search(options);
    console.log('Resultados da busca:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Erro na busca:', error.message);
  }
}

testSearch();
```

#### Parâmetros de entrada

* `query` (*cadeia de caracteres*): A consulta de busca.
* `limit` (*inteiro*): O número máximo de resultados de busca a retornar. Máximo: 50.
* `render_javascript` (*booleano*): Se deve renderizar JavaScript na página. Padrão: `false`.
* `return_content` (*booleano*): Se deve retornar o conteúdo em Markdown de cada resultado da busca. Padrão: `true`.
* `geo_location` (*cadeia de caracteres*): Especifica a localização geográfica (formato ISO2) a partir da qual a solicitação deve ser simulada.

### AI-Map

#### Uso básico

```javascript
import { 
  OxylabsAIStudioSDK
} from 'oxylabs-ai-studio';

const sdk = new OxylabsAIStudioSDK({
  apiKey: 'your_api_key_here',
  timeout: 120000,
  retryAttempts: 3,
});

async function testMap() {
  try {
    console.log('Testando o mapa...');
    
    const options = {
      url: 'https://www.freelancer.com/jobs',
      user_prompt: 'Extraia anúncios de emprego de tecnologia',
      return_sources_limit: 10,
      geo_location: 'US',
      render_javascript: false
    };
    
    const results = await sdk.aiMap.map(options);
    console.log('Resultados do mapa:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Erro no mapa:', error.message);
  }
}

testMap();
```

#### Parâmetros de entrada

* `url` (*cadeia de caracteres*): A URL de destino para mapear e extrair dados.
* `user_prompt` (*cadeia de caracteres*): Instruções sobre quais dados extrair das páginas mapeadas.
* `return_sources_limit` (*inteiro*): O número máximo de fontes/páginas a retornar do processo de mapeamento.
* `geo_location` (*cadeia de caracteres*): A localização geográfica a usar na solicitação de mapeamento (por exemplo, 'US', 'UK').
* `render_javascript` (*booleano*): Especifica se deve renderizar JavaScript nas páginas antes do mapeamento. Padrão: `false`.

### Exemplos de uso

Você pode encontrar mais exemplos de cada aplicação aqui:

* [Exemplo de Browser-Agent](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/browser-agent.js)
* [Exemplo de AI-Crawler](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-crawler.js)
* [Exemplo de AI-Scraper](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-scraper.js)
* [Exemplo de AI-Search](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-search.js)
* [Exemplo de AI-Map](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-map.js)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/integrations/pt-br/ai-studio-integrations/javascript-sdk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
