> 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/python-sdk.md).

# SDK de Python

Ofrecemos un SDK simple de Python 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.

## Requisitos

* `python 3.10` y superiores
* clave de API de AI Studio

## Instalación

```
pip install oxylabs-ai-studio
```

## Uso

### Crawl (`AiCrawler.crawl`)

```python
from oxylabs_ai_studio.apps.ai_crawler import AiCrawler

crawler = AiCrawler(api_key="<API_KEY>")

url = "https://oxylabs.io"
result = crawler.crawl(
    url=url,
    user_prompt="Encuentra todas las páginas con precios de productos de proxy",
    output_format="markdown",
    render_javascript=False,
    return_sources_limit=3,
    geo_location="US",
)
print("Resultados:")
for item in result.data:
    print(item, "\n")
```

#### **Parámetros de entrada**

* `url` (str): URL inicial para rastrear (**requerido**)
* `user_prompt` (str): indicación en lenguaje natural para guiar la extracción (**requerido**)
* `output_format` (Literal\["json", "markdown"]): formato de salida (predeterminado: "markdown")
* `schema` (dict | None): esquema OpenAPI para extracción estructurada (requerido si output\_format es "json")
* `render_javascript` (bool): Renderizar JavaScript (predeterminado: False)
* `return_sources_limit` (int): número máximo de fuentes a devolver (predeterminado: 25)
* `geo_location` (str): ubicación del proxy en formato ISO2.

### Scrape (`AiScraper.scrape`)

```python
from oxylabs_ai_studio.apps.ai_scraper import AiScraper

scraper = AiScraper(api_key="<API_KEY>")

schema = scraper.generate_schema(prompt="quiere analizar developer, platform, type, price game title, genre (array) y description")
print(f"Esquema generado: {schema}")

url = "https://sandbox.oxylabs.io/products/3"
result = scraper.scrape(
    url=url,
    output_format="json",
    schema=schema,
    render_javascript=False,
)
print(result)
```

#### **Parámetros de entrada**

* `url` (str): URL objetivo para extraer (**requerido**)
* `output_format` (Literal\["json", "markdown"]): formato de salida (predeterminado: "markdown")
* `schema` (dict | None): esquema OpenAPI para extracción estructurada (requerido si output\_format es "json")
* `render_javascript` (bool): Renderizar JavaScript (predeterminado: False)
* `geo_location` (str): ubicación del proxy en formato ISO2.

### Browser Agent (`BrowserAgent.run`)

```python
from oxylabs_ai_studio.apps.browser_agent import BrowserAgent

browser_agent = BrowserAgent(api_key="<API_KEY>")

schema = browser_agent.generate_schema(
    prompt="nombre del juego, plataforma, estrellas de reseñas y precio"
)
print("schema: ", schema)

prompt = "Find if there is game 'super mario odyssey' in the store. If there is, find the price. Use search bar to find the game."
url = "https://sandbox.oxylabs.io/"
result = browser_agent.run(
    url=url,
    user_prompt=prompt,
    output_format="json",
    schema=schema,
)
print(result.data)
```

#### **Parámetros de entrada**

* `url` (str): URL inicial para navegar (**requerido**)
* `user_prompt` (str): indicación en lenguaje natural para la extracción (**requerido**)
* `output_format` (Literal\["json", "markdown", "html", "screenshot"]): formato de salida (predeterminado: "markdown")
* `schema` (dict | None): esquema OpenAPI para extracción estructurada (requerido si output\_format es "json")
* `geo_location` (str): ubicación del proxy en formato ISO2.

### Search (`AiSearch.search`)

```python
from oxylabs_ai_studio.apps.ai_search import AiSearch


search = AiSearch(api_key="<API_KEY>")

query = "receta de lasaña"
result = search.search(
    query=query,
    limit=5,
    render_javascript=False,
    return_content=True,
)
print(result.data)
```

#### **Parámetros de entrada**

* `query` (str): qué buscar (**requerido**)
* `limit` (int): número máximo de resultados a devolver (predeterminado: 10, máximo: 50)
* `render_javascript` (bool): Renderizar JavaScript (predeterminado: False)
* `return_content` (bool): si devolver el contenido en Markdown en los resultados (predeterminado: True)
* `geo_location` (str): ubicación del proxy de búsqueda en formato ISO2.

#### Map (`AiMap.map`)

```python
from oxylabs_ai_studio.apps.ai_map import AiMap


ai_map = AiMap(api_key="<API_KEY>")
payload = {
    "url": "https://career.oxylabs.io",
    "user_prompt": "páginas de anuncios de empleo",
    "return_sources_limit": 10,
    "geo_location": None,
    "render_javascript": False,
}
result = ai_map.map(**payload)
print(result.data)
```

#### **Parámetros de entrada**

* `url` (str): URL inicial para rastrear (**requerido**)
* `user_prompt` (str): indicación en lenguaje natural para guiar la extracción (**requerido**)
* `render_javascript` (bool): Renderizar JavaScript (predeterminado: False)
* `return_sources_limit` (int): número máximo de fuentes a devolver (predeterminado: 25)
* `geo_location` (str): ubicación del proxy en formato ISO2.

### Ejemplos de uso

Consulta la [carpeta de ejemplos](https://github.com/oxylabs/oxylabs-ai-studio-py/tree/main/examples) en nuestro GitHub para ver ejemplos detallados de uso de cada método (cada método tiene una `async` versión).


---

# 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/python-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.
