> 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

Oferecemos um SDK JavaScript para interagir perfeitamente com [a 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
```

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 de 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 de schema:', error.message);
  }
}

testGenerateSchema();
```

#### Uso básico

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

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

async function testScrapeOutputJson() {
  try {
    console.log('Testando scraping síncrono 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 do scraping síncrono:', results);
  } catch (error) {
    console.error('Erro no scraping síncrono:', error.message);
  }
}

testScrapeOutputJson();
```

#### Parâmetros de entrada

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

### AI-Crawler

#### Uso básico

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

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

async function testCrawlOutputJson() {
  try {
    console.log('Testando crawling com saída JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Obtenha páginas de anúncios de vagas',
      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 do crawling:', JSON.stringify(results, null, 2));      
  } catch (error) {
    console.error('Erro no crawling:', error.message);
  }
}

testCrawlOutputJson();
```

#### Parâmetros de entrada

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

### Browser-Agent

#### Uso básico

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

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

async function testBrowseOutputJson() {
  try {
    console.log('Testando 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 vaga que 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` (*string*): A URL de destino em que o browser agent deve começar.
* `browse_prompt` (*string*): Instruções que definem as ações que o browser agent deve executar.
* `parse_prompt` (*string*): Instruções sobre quais dados extrair após executar as ações do navegador. Isso é usado para gerar automaticamente o `openapi_schema` ao usar o método `browseWithAutoSchema` .
* `output_format` (*string*): O formato desejado para a saída. Pode ser `markdown`, `html`, `json`, ou `screenshot`. O padrão é `markdown`.
* `render_html` (*boolean*): Especifica se o JavaScript deve ser renderizado na página. Embora seja um browser agent, essa flag pode influenciar certos comportamentos. O padrão é `false`.
* `openapi_schema` (*Record\<string, any>*): Um objeto JSON Schema que define a estrutura dos dados de saída. Isso é necessário quando `output_format` está definido como `json`.
* `geo_location` (*string*): Especifica a localização geográfica (formato ISO2) de onde 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 busca...');

    const options = {
      query: 'weather in London',
      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` (*string*): A consulta de busca.
* `limit` (*integer*): O número máximo de resultados de busca a retornar. Máximo: 50.
* `render_javascript` (*boolean*): Se deve renderizar o JavaScript na página. O padrão é `false`.
* `return_content` (*boolean*): Se deve retornar o conteúdo em Markdown de cada resultado de busca. O padrão é `true`.
* `geo_location` (*string*): Especifica a localização geográfica (formato ISO2) de onde 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 mapa...');
    
    const options = {
      url: 'https://www.freelancer.com/jobs',
      user_prompt: 'Extraia anúncios de vagas 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` (*string*): A URL de destino para mapear e extrair dados.
* `user_prompt` (*string*): Instruções sobre quais dados extrair das páginas mapeadas.
* `return_sources_limit` (*integer*): O número máximo de fontes/páginas a retornar do processo de mapeamento.
* `geo_location` (*string*): A localização geográfica a ser usada para a solicitação de mapeamento (por exemplo, 'US', 'UK').
* `render_javascript` (*boolean*): Especifica se o JavaScript deve ser renderizado nas páginas antes do mapeamento. O 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:

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

The question should be specific, self-contained, and written in natural language.
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.
