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

# SDK Python

Oferecemos um SDK Python simples para interagir de forma contínua 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.

## Requisitos

* `python 3.10` e superior
* chave da API do AI Studio

## Instalação

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

## Uso

### Rastreamento (`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="Encontre todas as páginas com preços de produtos 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 (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para orientar a extração (**obrigatório**)
* `output_format` (Literal\["json", "markdown"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_sources_limit` (int): Número máximo de fontes a retornar (padrão: 25)
* `geo_location` (str): localização do proxy no formato ISO2.

### Extração (`AiScraper.scrape`)

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

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

schema = scraper.generate_schema(prompt="quero extrair developer, platform, type, price game title, genre (array) e description")
print(f"Schema gerado: {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 de destino para extrair (**obrigatório**)
* `output_format` (Literal\["json", "markdown"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `geo_location` (str): localização do proxy no 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="nome do jogo, plataforma, estrelas da avaliação e preço"
)
print("schema: ", schema)

prompt = "Descubra se existe o jogo 'super mario odyssey' na loja. Se existir, encontre o preço. Use a barra de pesquisa para encontrar o jogo."
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 (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para extração (**obrigatório**)
* `output_format` (Literal\["json", "markdown", "html", "screenshot"]): Formato de saída (padrão: "markdown")
* `schema` (dict | None): esquema OpenAPI para extração estruturada (obrigatório se output\_format for "json")
* `geo_location` (str): localização do proxy no formato ISO2.

### Pesquisa (`AiSearch.search`)

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


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

query = "lasagna recipe"
result = search.search(
    query=query,
    limit=5,
    render_javascript=False,
    return_content=True,
)
print(result.data)
```

#### **Parâmetros de entrada**

* `query` (str): O que pesquisar (**obrigatório**)
* `limit` (int): Número máximo de resultados a retornar (padrão: 10, máximo: 50)
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_content` (bool): Se deve retornar o conteúdo em markdown nos resultados (padrão: True)
* `geo_location` (str): localização do proxy de busca no formato ISO2.

#### Mapa (`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 vagas de emprego",
    "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 (**obrigatório**)
* `user_prompt` (str): Prompt em linguagem natural para orientar a extração (**obrigatório**)
* `render_javascript` (bool): Renderizar JavaScript (padrão: False)
* `return_sources_limit` (int): Número máximo de fontes a retornar (padrão: 25)
* `geo_location` (str): localização do proxy no formato ISO2.

### Exemplos de uso

Veja a pasta [examples](https://github.com/oxylabs/oxylabs-ai-studio-py/tree/main/examples) no nosso GitHub para exemplos detalhados de uso de cada método (cada método tem uma `versão assíncrona` ).


---

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