# Infoisinfo Business Directory Scraper (`crawlerbros/infoisinfo-scraper`) Actor

Scrape Infoisinfo, a leading Spain business directory. Search by category and city, or fetch business profile pages directly by URL. Get name, category, address, phone, website, coordinates, description and more -- no login required.

- **URL**: https://apify.com/crawlerbros/infoisinfo-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Lead generation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Infoisinfo Business Directory Scraper

Scrape [Infoisinfo](https://www.infoisinfo.es), a leading Spain business directory covering 300+ cities. Search by category and city, or fetch specific business profile pages directly — no login, no cookies, no API key required.

### What this actor does

- **Two modes:** `search` (category + city, paginated) and `byUrl` (fetch specific business profile pages)
- **Rich business data:** name, category, address (street/city/province/postal code), GPS coordinates, phone (unmasked via infoisinfo.es's own reveal endpoint), website, description, and review count
- **52 curated categories** and **147 curated major cities/provincial capitals**, both with free-text override — any of infoisinfo.es's 300+ city subdomains or category slugs works even if not in the dropdown
- **Empty fields are omitted** — every record only contains data actually found for that business
- **Full Spanish UTF-8 diacritics support** — city names, addresses, and descriptions are preserved exactly (Alcalá de Henares, Logroño, Cádiz, etc.)

### Output per business

- `businessId`, `sourceUrl` — unique ID and canonical infoisinfo.es business profile ("ficha") URL
- `businessName`
- `category` — e.g. `Restaurante`, `Bar` *(profile page only)*
- `streetAddress`, `city`, `province`, `postalCode`
- `latitude`, `longitude` — read directly from the search-results page for every business (no extra request needed); refined from the profile page's own geo data when `fetchDetails` is enabled
- `phone` — real, unmasked phone number *(profile page only, when `fetchPhone` is enabled)*
- `website` *(profile page only)*
- `reviewCount` — only present when the business has 1+ reviews
- `description`
- `recordType: "business"`, `scrapedAt`

*(profile page only)* fields are only populated when `fetchDetails: true` is set (the default for `search` mode), or always for `byUrl` mode.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byUrl` |
| `category` | string (enum) | `restaurantes` | One of 52 curated categories (mode=search) |
| `customCategory` | string | – | Free-text category override, takes priority over `category` |
| `city` | string (enum) | `madrid` | One of 147 curated major cities (mode=search) |
| `customCity` | string | – | Free-text city override, takes priority over `city` |
| `urls` | array | – | infoisinfo.es business profile URLs (mode=byUrl) |
| `cityFilter` | string | – | Keep only results whose city field contains this text (diacritics-insensitive) |
| `keyword` | string | – | Keep only results whose name/description/category contain this text |
| `minReviewCount` | integer | – | Drop businesses with fewer reviews than this |
| `fetchDetails` | boolean | `true` | Visit each business's profile page for category/website/coordinates/description (1 extra request per business) |
| `fetchPhone` | boolean | `true` | Reveal the real phone number via infoisinfo.es's own endpoint (requires `fetchDetails`, 1 extra request per business) |
| `maxItems` | integer | `20` | Hard cap (1-500) |
| `proxyConfiguration` | object | – | Optional; infoisinfo.es works without a proxy, the actor auto-escalates to the free AUTO group on 403/429 |

#### Example: search a category + city

```json
{
  "mode": "search",
  "category": "restaurantes",
  "city": "madrid",
  "maxItems": 30
}
````

#### Example: search a custom category + city, fast (no detail enrichment)

```json
{
  "mode": "search",
  "customCategory": "optica",
  "customCity": "Alcalá de Henares",
  "fetchDetails": false,
  "maxItems": 25
}
```

#### Example: fetch specific business profiles

```json
{
  "mode": "byUrl",
  "urls": [
    "https://madrid.infoisinfo.es/ficha/strawberry_fields_hamburguesas_y_musica/3547328"
  ]
}
```

### Use cases

- **Lead generation** — build prospect lists of local Spanish businesses by category and city
- **Market research** — analyze business density and coverage by city or category
- **Directory aggregation** — mirror or cross-reference Spanish business listings
- **Local SEO audits** — check a business's own directory data (address, phone, website) for accuracy
- **Competitive analysis** — compare review counts across competitors in a category

### FAQ

**Do I need an infoisinfo.es login?** No. Category/city search and business profile pages are all publicly accessible without an account.

**Why don't most businesses have a `rating` field?** infoisinfo.es's business profile pages don't reliably expose a computed average-rating value in the page markup — only a review *count*. To avoid fabricating data, this actor only emits `reviewCount` (and only when it's greater than 0); it never emits a guessed or default `rating`.

**Can I search categories or cities not in the dropdown?** Yes — type any category slug into `customCategory` (e.g. `opticas`) or any Spanish city/town name into `customCity` (e.g. `San Sebastián de los Reyes`); both are automatically converted to infoisinfo.es's URL-slug format. The dropdowns list the most common ~52 categories and ~147 major cities for convenience; infoisinfo.es itself covers 300+ cities.

**Why does `website` sometimes fail a plain `curl -I` check?** The `website` field links to each business's own external site, not to infoisinfo.es. Some small-business sites block simple bot requests (shared hosting/WAF) while working fine in a browser. `sourceUrl` (the infoisinfo.es business profile) is always directly verifiable.

**How does phone reveal work, and can it fail?** infoisinfo.es masks phone numbers on the page and unmasks them via a small internal endpoint. This actor calls that endpoint automatically when `fetchPhone` is enabled. On the rare occasion the endpoint doesn't return a number, the `phone` field is simply omitted from that record rather than showing a fake or masked value.

**Is this actor affiliated with Infoisinfo?** No. This is an independent, third-party actor that reads Infoisinfo's publicly available pages. It is not affiliated with, endorsed by, or sponsored by Infoisinfo.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `category` (type: `string`):

Business category to search. Pick one of the curated categories, or select "Custom category" and type any category slug in `customCategory` (any valid infoisinfo.es /busqueda/{slug} value works even if not listed here).

## `customCategory` (type: `string`):

Free-text category name or infoisinfo.es slug (e.g. "opticas", "clinicas veterinarias"). Takes priority over `category` when set. Accented/spaced text is automatically slugified.

## `city` (type: `string`):

City to search within. Pick one of the 147 curated major Spanish cities/provincial capitals, or select "Custom city" and type any city name in `customCity` (any of the 300+ city subdomains infoisinfo.es supports works even if not listed here).

## `customCity` (type: `string`):

Free-text Spanish city/town name (e.g. "Alcalá de Henares", "San Sebastián de los Reyes"). Takes priority over `city` when set. Accented/spaced text is automatically slugified to match infoisinfo.es city subdomains.

## `urls` (type: `array`):

Full infoisinfo.es ficha (business profile) URLs, e.g. `https://madrid.infoisinfo.es/ficha/strawberry_fields_hamburguesas_y_musica/3547328`.

## `cityFilter` (type: `string`):

Only keep results whose city field contains this text (case- and diacritics-insensitive). Useful with mode=byUrl or to double-check mode=search results.

## `keyword` (type: `string`):

Only keep results whose name, description, or category contain this text (case- and diacritics-insensitive).

## `minReviewCount` (type: `integer`):

Drop businesses with fewer than this many reviews. Most infoisinfo.es listings have 0 reviews, so leave empty to keep everything.

## `fetchDetails` (type: `boolean`):

For mode=search: visit each business profile (ficha) page to also collect category, website, postal code, coordinates, and description. Slower (1 extra request per business) but recommended -- most fields require it.

## `fetchPhone` (type: `boolean`):

Call infoisinfo.es's phone-reveal endpoint to fetch the real, unmasked phone number for each business. Requires `fetchDetails`. Adds 1 extra request per business.

## `maxItems` (type: `integer`):

Hard cap on emitted records.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Leave empty to use no proxy -- infoisinfo.es is publicly accessible without one. The actor automatically escalates to the free AUTO datacenter proxy group if it hits a 403/429.

## Actor input object example

```json
{
  "mode": "search",
  "category": "restaurantes",
  "city": "madrid",
  "urls": [],
  "fetchDetails": true,
  "fetchPhone": true,
  "maxItems": 20
}
```

# Actor output Schema

## `businesses` (type: `string`):

Dataset containing all scraped infoisinfo.es businesses.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "category": "restaurantes",
    "city": "madrid",
    "urls": [],
    "fetchDetails": true,
    "fetchPhone": true,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/infoisinfo-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "category": "restaurantes",
    "city": "madrid",
    "urls": [],
    "fetchDetails": True,
    "fetchPhone": True,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/infoisinfo-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "category": "restaurantes",
  "city": "madrid",
  "urls": [],
  "fetchDetails": true,
  "fetchPhone": true,
  "maxItems": 20
}' |
apify call crawlerbros/infoisinfo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/infoisinfo-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Infoisinfo Business Directory Scraper",
        "description": "Scrape Infoisinfo, a leading Spain business directory. Search by category and city, or fetch business profile pages directly by URL. Get name, category, address, phone, website, coordinates, description and more -- no login required.",
        "version": "1.0",
        "x-build-id": "8kE8DaBZfAibhYEbp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~infoisinfo-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-infoisinfo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~infoisinfo-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-infoisinfo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~infoisinfo-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-infoisinfo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byUrl"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "category": {
                        "title": "Category (mode=search)",
                        "enum": [
                            "custom",
                            "restaurantes",
                            "bares",
                            "bar",
                            "cafeteria",
                            "cafe",
                            "cervecerias",
                            "hamburguesas",
                            "tapas",
                            "catering",
                            "pizzerias",
                            "pastelerias",
                            "hoteles",
                            "moteles",
                            "agencias-de-viajes",
                            "abogados",
                            "notarios",
                            "arquitectos",
                            "psicologos",
                            "fisioterapeutas",
                            "dentistas",
                            "clinicas-dentales",
                            "farmacias",
                            "hospitales",
                            "clinicas",
                            "veterinarios",
                            "peluquerias",
                            "centros-de-estetica",
                            "gimnasios",
                            "talleres",
                            "autoescuelas",
                            "electricistas",
                            "fontaneros",
                            "inmobiliarias",
                            "supermercados",
                            "panaderias",
                            "carnicerias",
                            "pescaderias",
                            "fruterias",
                            "zapaterias",
                            "joyerias",
                            "papelerias",
                            "librerias",
                            "ferreterias",
                            "muebles",
                            "decoracion",
                            "informatica",
                            "colegios",
                            "academias",
                            "guarderias",
                            "bancos",
                            "aseguradoras",
                            "tintorerias"
                        ],
                        "type": "string",
                        "description": "Business category to search. Pick one of the curated categories, or select \"Custom category\" and type any category slug in `customCategory` (any valid infoisinfo.es /busqueda/{slug} value works even if not listed here).",
                        "default": "restaurantes"
                    },
                    "customCategory": {
                        "title": "Custom category override (mode=search)",
                        "type": "string",
                        "description": "Free-text category name or infoisinfo.es slug (e.g. \"opticas\", \"clinicas veterinarias\"). Takes priority over `category` when set. Accented/spaced text is automatically slugified."
                    },
                    "city": {
                        "title": "City (mode=search)",
                        "enum": [
                            "custom",
                            "madrid",
                            "barcelona",
                            "valencia",
                            "sevilla",
                            "zaragoza",
                            "malaga",
                            "murcia",
                            "palma-de-mallorca",
                            "las-palmas-de-gran-canaria",
                            "bilbao",
                            "alicante",
                            "cordoba",
                            "valladolid",
                            "vigo",
                            "gijon",
                            "granada",
                            "a-coruna",
                            "vitoria",
                            "elche",
                            "oviedo",
                            "santa-cruz-de-tenerife",
                            "badalona",
                            "cartagena",
                            "terrassa",
                            "jerez-de-la-frontera",
                            "sabadell",
                            "santander",
                            "pamplona",
                            "almeria",
                            "san-sebastian",
                            "burgos",
                            "albacete",
                            "getafe",
                            "salamanca",
                            "logrono",
                            "badajoz",
                            "huelva",
                            "marbella",
                            "tarragona",
                            "leon",
                            "cadiz",
                            "lleida",
                            "mataro",
                            "santiago-de-compostela",
                            "torrejon-de-ardoz",
                            "alcala-de-henares",
                            "fuenlabrada",
                            "leganes",
                            "mostoles",
                            "alcorcon",
                            "reus",
                            "telde",
                            "torrevieja",
                            "girona",
                            "lugo",
                            "caceres",
                            "guadalajara",
                            "toledo",
                            "cuenca",
                            "segovia",
                            "avila",
                            "soria",
                            "teruel",
                            "zamora",
                            "palencia",
                            "ourense",
                            "pontevedra",
                            "huesca",
                            "ceuta",
                            "melilla",
                            "benidorm",
                            "torremolinos",
                            "fuengirola",
                            "estepona",
                            "dos-hermanas",
                            "mijas",
                            "sanlucar-de-barrameda",
                            "algeciras",
                            "granollers",
                            "manresa",
                            "mollet-del-valles",
                            "rubi",
                            "sant-cugat-del-valles",
                            "sant-boi-de-llobregat",
                            "viladecans",
                            "castelldefels",
                            "cornella-de-llobregat",
                            "el-prat-de-llobregat",
                            "l-hospitalet-de-llobregat",
                            "santa-coloma-de-gramenet",
                            "aviles",
                            "merida",
                            "talavera-de-la-reina",
                            "ponferrada",
                            "aranjuez",
                            "alcobendas",
                            "las-rozas-de-madrid",
                            "pozuelo-de-alarcon",
                            "majadahonda",
                            "collado-villalba",
                            "coslada",
                            "parla",
                            "valdemoro",
                            "aranda-de-duero",
                            "miranda-de-ebro",
                            "irun",
                            "eibar",
                            "barakaldo",
                            "getxo",
                            "portugalete",
                            "torrelavega",
                            "linares",
                            "jaen",
                            "motril",
                            "antequera",
                            "ronda",
                            "lorca",
                            "cieza-murcia",
                            "yecla",
                            "gandia",
                            "sagunto",
                            "paterna",
                            "torrent-girona",
                            "figueres",
                            "blanes",
                            "lloret-de-mar",
                            "sitges",
                            "vilanova-i-la-geltru",
                            "igualada",
                            "vic",
                            "calvia",
                            "inca",
                            "manacor",
                            "eivissa",
                            "ciutadella-de-menorca",
                            "mao",
                            "arrecife",
                            "puerto-del-rosario",
                            "san-bartolome-de-tirajana",
                            "adeje",
                            "arona",
                            "la-orotava",
                            "puerto-de-la-cruz",
                            "san-cristobal-de-la-laguna",
                            "ecija",
                            "utrera",
                            "alcala-de-guadaira"
                        ],
                        "type": "string",
                        "description": "City to search within. Pick one of the 147 curated major Spanish cities/provincial capitals, or select \"Custom city\" and type any city name in `customCity` (any of the 300+ city subdomains infoisinfo.es supports works even if not listed here).",
                        "default": "madrid"
                    },
                    "customCity": {
                        "title": "Custom city override (mode=search)",
                        "type": "string",
                        "description": "Free-text Spanish city/town name (e.g. \"Alcalá de Henares\", \"San Sebastián de los Reyes\"). Takes priority over `city` when set. Accented/spaced text is automatically slugified to match infoisinfo.es city subdomains."
                    },
                    "urls": {
                        "title": "Business profile URLs (mode=byUrl)",
                        "type": "array",
                        "description": "Full infoisinfo.es ficha (business profile) URLs, e.g. `https://madrid.infoisinfo.es/ficha/strawberry_fields_hamburguesas_y_musica/3547328`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "cityFilter": {
                        "title": "City name filter",
                        "type": "string",
                        "description": "Only keep results whose city field contains this text (case- and diacritics-insensitive). Useful with mode=byUrl or to double-check mode=search results."
                    },
                    "keyword": {
                        "title": "Keyword filter",
                        "type": "string",
                        "description": "Only keep results whose name, description, or category contain this text (case- and diacritics-insensitive)."
                    },
                    "minReviewCount": {
                        "title": "Minimum review count",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Drop businesses with fewer than this many reviews. Most infoisinfo.es listings have 0 reviews, so leave empty to keep everything."
                    },
                    "fetchDetails": {
                        "title": "Fetch full business profile page",
                        "type": "boolean",
                        "description": "For mode=search: visit each business profile (ficha) page to also collect category, website, postal code, coordinates, and description. Slower (1 extra request per business) but recommended -- most fields require it.",
                        "default": true
                    },
                    "fetchPhone": {
                        "title": "Reveal phone numbers",
                        "type": "boolean",
                        "description": "Call infoisinfo.es's phone-reveal endpoint to fetch the real, unmasked phone number for each business. Requires `fetchDetails`. Adds 1 extra request per business.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy settings. Leave empty to use no proxy -- infoisinfo.es is publicly accessible without one. The actor automatically escalates to the free AUTO datacenter proxy group if it hits a 403/429."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
