> 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

Aprende a usar el SDK de JavaScript de AI Studio.

Ofrecemos un SDK de JavaScript para interactuar de forma fluida con [Oxylabs AI Studio API](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
```

O bien añade `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('Probando la generación del esquema...');
    const schema = await sdk.aiScraper.generateSchema({
      user_prompt: 'Extrae el título de la página'
    });
    console.log('Esquema:', schema);
  } catch (error) {
    console.error('Error en la generación del esquema:', 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('Probando el scraping síncrono con salida JSON...');
    
    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('Resultados del scraping síncrono:', results);
  } catch (error) {
    console.error('Error del scraping síncrono:', error.message);
  }
}

testScrapeOutputJson();
```

#### Parámetros de entrada

* `url` (*cadena*): La URL de destino a procesar.
* `user_prompt` (*cadena*): Instrucciones sobre qué datos extraer. Esto se usa para generar automáticamente el `openapi_schema` al usar el `scrapeWithAutoSchema` método.
* `output_format` (*cadena*): El formato deseado para la salida. Puede ser `markdown` o `json`. El valor predeterminado es `markdown`.
* `render_html` (*booleano*): 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 JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*cadena*): 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('Probando el rastreo con salida JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Obtén páginas de anuncios de empleo',
      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 del rastreo:', JSON.stringify(results, null, 2));      
  } catch (error) {
    console.error('Error del rastreo:', error.message);
  }
}

testCrawlOutputJson();
```

#### Parámetros de entrada

* `url` (*cadena*): La URL inicial para el rastreo.
* `crawl_prompt` (*cadena*): Instrucciones que definen los tipos de páginas que se deben encontrar y rastrear.
* `parse_prompt` (*cadena*): Instrucciones sobre qué datos extraer de las páginas rastreadas. Esto se usa para generar automáticamente el `openapi_schema` al usar el `crawlWithAutoSchema` método.
* `output_format` (*cadena*): El formato deseado para la salida. Puede ser `markdown` o `json`. El valor predeterminado es `markdown`.
* `max_pages` (*entero*): El número máximo de páginas o fuentes a devolver. El valor predeterminado es `25`.
* `render_html` (*booleano*): 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 JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*cadena*): 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('Probando la navegación síncrona con salida JSON...');
    
    const options = {
      url: 'https://www.freelancer.com',
      output_format: OutputFormat.JSON,
      user_prompt: 'Navega al primer anuncio de empleo que puedas encontrar.',
      geo_location: "US",
      schema: {
        type: 'object',
        properties: {
          job_title: { type: 'string' }
        }
      }
    };
    
    const results = await sdk.browserAgent.browse(options);
    console.log('Resultados de la navegación síncrona:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Error de la navegación síncrona:', error.message);
  }
}

testBrowseOutputJson();
```

#### Parámetros de entrada

* `url` (*cadena*): La URL de destino para que el agente del navegador comience.
* `browse_prompt` (*cadena*): Instrucciones que definen las acciones que debe realizar el agente del navegador.
* `parse_prompt` (*cadena*): 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 `browseWithAutoSchema` método.
* `output_format` (*cadena*): El formato deseado para la salida. Puede ser `markdown`, `html`, `json`, o `screenshot`. El valor predeterminado es `markdown`.
* `render_html` (*booleano*): Especifica si se debe renderizar JavaScript en la página. Aunque se trata de un agente del navegador, este indicador podría influir en ciertos comportamientos. El valor predeterminado es `false`.
* `openapi_schema` (*Record\<string, any>*): Un objeto JSON Schema que define la estructura de los datos de salida. Esto es obligatorio cuando `output_format` está establecido en `json`.
* `geo_location` (*cadena*): 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('Probando la búsqueda...');

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

    const results = await sdk.aiSearch.search(options);
    console.log('Resultados de la búsqueda:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Error de la búsqueda:', error.message);
  }
}

testSearch();
```

#### Parámetros de entrada

* `query` (*cadena*): La consulta de búsqueda.
* `limit` (*entero*): El número máximo de resultados de búsqueda a devolver. Máximo: 50.
* `render_javascript` (*booleano*): Si se debe renderizar JavaScript en la página. El valor predeterminado es `false`.
* `return_content` (*booleano*): Si se debe devolver el contenido en Markdown de cada resultado de búsqueda. El valor predeterminado es `true`.
* `geo_location` (*cadena*): 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('Probando el mapeo...');
    
    const options = {
      url: 'https://www.freelancer.com/jobs',
      user_prompt: 'Extrae anuncios de empleo de tecnología',
      return_sources_limit: 10,
      geo_location: 'US',
      render_javascript: false
    };
    
    const results = await sdk.aiMap.map(options);
    console.log('Resultados del mapeo:', JSON.stringify(results, null, 2));
  } catch (error) {
    console.error('Error del mapeo:', error.message);
  }
}

testMap();
```

#### Parámetros de entrada

* `url` (*cadena*): La URL de destino para mapear y extraer datos.
* `user_prompt` (*cadena*): Instrucciones sobre qué datos extraer de las páginas mapeadas.
* `return_sources_limit` (*entero*): El número máximo de fuentes/páginas a devolver del proceso de mapeo.
* `geo_location` (*cadena*): La ubicación geográfica que se usará para la solicitud de mapeo (por ejemplo, 'US', 'UK').
* `render_javascript` (*booleano*): Especifica si se debe renderizar JavaScript en las páginas antes del mapeo. 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, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/integrations/es/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.
