> 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/es/ai-studio-integrations/javascript-sdk.md).

# SDK de JavaScript

Ofrecemos un SDK de JavaScript para interactuar sin problemas con [la API de Oxylabs AI Studio](https://aistudio.oxylabs.io/) servicios, incluidos AI-Scraper, AI-Crawler, AI-Browser-Agent y otras herramientas de extracción de datos.

## Instalación

Instala el SDK:

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

Agrega `OXYLABS_AI_STUDIO_API_URL` y `OXYLABS_AI_STUDIO_API_KEY` valores al `.env` archivo, o como variables de entorno:

```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('Testing schema generation...');
    const schema = await sdk.aiScraper.generateSchema({
      user_prompt: 'Extrae el título de la página'
    });
    console.log('Schema:', schema);
  } catch (error) {
    console.error('Schema generation error:', 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('Testing synchronous scraping with JSON output...');
    
    const options = {
      url: 'https://www.freelancer.com',
      user_prompt: 'Extrae todos los enlaces',
      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('Sync scraping results:', results);
  } catch (error) {
    console.error('Sync scraping error:', error.message);
  }
}

testScrapeOutputJson();
```

#### Parámetros de entrada

* `url` (*string*): La URL de destino a procesar.
* `user_prompt` (*string*): Instrucciones sobre qué datos extraer. Esto se usa para generar automáticamente el `openapi_schema` al usar el método `scrapeWithAutoSchema` .
* `output_format` (*string*): El formato deseado para la salida. Puede ser `markdown` o `json`. El valor predeterminado es `markdown`.
* `render_html` (*boolean*): Especifica si se debe renderizar JavaScript en la página antes de la extracción. El valor predeterminado es `false`.
* `openapi_schema` (*Record\<string, any>*): Un objeto de JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*string*): Especifica la ubicación geográfica (formato ISO2) desde la que se debe simular la solicitud.

### 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('Testing crawling with JSON output...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Obtén páginas de anuncios de trabajo',
      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('Crawling results:', JSON.stringify(results, null, 2));      
  } catch (error) {
    console.error('Crawling error:', error.message);
  }
}

testCrawlOutputJson();
```

#### Parámetros de entrada

* `url` (*string*): La URL inicial para el rastreo.
* `crawl_prompt` (*string*): Instrucciones que definen los tipos de páginas que se deben encontrar y rastrear.
* `parse_prompt` (*string*): Instrucciones sobre qué datos extraer de las páginas rastreadas. Esto se usa para generar automáticamente el `openapi_schema` al usar el método `crawlWithAutoSchema` .
* `output_format` (*string*): El formato deseado para la salida. Puede ser `markdown` o `json`. El valor predeterminado es `markdown`.
* `max_pages` (*integer*): El número máximo de páginas o fuentes a devolver. El valor predeterminado es `25`.
* `render_html` (*boolean*): Especifica si se debe renderizar JavaScript en las páginas antes de la extracción. El valor predeterminado es `false`.
* `openapi_schema` (*Record\<string, any>*): Un objeto de JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*string*): Especifica la ubicación geográfica (formato ISO2) desde la que se debe simular la solicitud.

### 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('Testing synchronous browsing with JSON output...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Navega hasta el primer anuncio de trabajo que puedas encontrar.',
      geo_location: "US",
      schema: {
        type: 'object',
        properties: {
          job_title: { type: 'string' }
        }
      }
    };
    
    const results = await sdk.browserAgent.browse(options);
    console.log('Sync browsing results:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Sync browsing error:', error.message);
  }
}

testBrowseOutputJson();
```

#### Parámetros de entrada

* `url` (*string*): La URL de destino inicial para que el agente de navegador comience.
* `browse_prompt` (*string*): Instrucciones que definen las acciones que debe realizar el agente de navegador.
* `parse_prompt` (*string*): Instrucciones sobre qué datos extraer después de realizar las acciones del navegador. Esto se usa para generar automáticamente el `openapi_schema` al usar el método `browseWithAutoSchema` .
* `output_format` (*string*): El formato deseado para la salida. Puede ser `markdown`, `html`, `json`, o `screenshot`. El valor predeterminado es `markdown`.
* `render_html` (*boolean*): Especifica si se debe renderizar JavaScript en la página. Aunque es un agente de navegador, este indicador podría influir en ciertos comportamientos. El valor predeterminado es `false`.
* `openapi_schema` (*Record\<string, any>*): Un objeto de JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*string*): Especifica la ubicación geográfica (formato ISO2) desde la que se debe simular la solicitud.

### 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('Testing search...');

    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('Search results:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Search error:', error.message);
  }
}

testSearch();
```

#### Parámetros de entrada

* `query` (*string*): La consulta de búsqueda.
* `limit` (*integer*): El número máximo de resultados de búsqueda a devolver. Máximo: 50.
* `render_javascript` (*boolean*): Si se debe renderizar JavaScript en la página. El valor predeterminado es `false`.
* `return_content` (*boolean*): Si se debe devolver el contenido en markdown de cada resultado de búsqueda. El valor predeterminado es `true`.
* `geo_location` (*string*): Especifica la ubicación geográfica (formato ISO2) desde la que se debe simular la solicitud.

### 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('Testing map...');
    
    const options = {
      url: 'https://www.freelancer.com/jobs',
      user_prompt: 'Extrae anuncios de trabajo tecnológicos',
      return_sources_limit: 10,
      geo_location: 'US',
      render_javascript: false
    };
    
    const results = await sdk.aiMap.map(options);
    console.log('Map results:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Map error:', error.message);
  }
}

testMap();
```

#### Parámetros de entrada

* `url` (*string*): La URL de destino para mapear y extraer datos.
* `user_prompt` (*string*): Instrucciones sobre qué datos extraer de las páginas mapeadas.
* `return_sources_limit` (*integer*): El número máximo de fuentes/páginas a devolver del proceso de mapeo.
* `geo_location` (*string*): La ubicación geográfica que se usará para la solicitud de mapeo (por ejemplo, 'US', 'UK').
* `render_javascript` (*boolean*): Especifica si se debe renderizar JavaScript en las páginas antes de mapear. El valor predeterminado es `false`.

### Ejemplos de uso

Puedes encontrar más ejemplos de cada aplicación aquí:

* [Ejemplo de Browser-agent](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/browser-agent.js)
* [Ejemplo de AI-Crawler](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-crawler.js)
* [Ejemplo de AI-Scraper](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-scraper.js)
* [Ejemplo de AI-Search](https://github.com/oxylabs/oxylabs-ai-studio-js/blob/main/examples/ai-search.js)
* [Ejemplo 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/es/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.
