# Todo Está En Madrid Scraper by URL

Extract data from Todo Está En Madrid

- Template page: [https://www.octoparse.com/template/todoestaenmadrid-scraper-url](https://www.octoparse.com/template/todoestaenmadrid-scraper-url)
- Categories: Directories, Lead Generation
- Status: `PUBLISHED`
- Run mode: `BOTH`

## Pricing

Free.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from general web pages.

## Output

The current workflow extracts 9 fields, including `Correo`, `Descripción`, `Domicilio`, `Nombre`, `RedSocial1`, `RedSocial2`, `RedSocial3`, `SitioWeb`, `Teléfono`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete URLs and start the template in local or cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### URLs

Required. urls Constraints: minItems=1; maxItems=1000; items.minLength=0; items.maxLength=10000.

## How to Use

# Todo Está En Madrid Scraper by URL

Collects public listing data from [Todo Está En Madrid](https://todoestaenmadrid.com/).  
Returns structured fields from detail pages: Nombre, Descripción, Domicilio, Correo, Teléfono, SitioWeb, RedSocial1, RedSocial2, RedSocial3.

## Input

- **URLs** (required): One or more detail‑page URLs, one per line.

## How to Use

1. Open the template and select **Try it** or **Start**.
2. Enter one or more URLs in the input field.
3. Choose a local or cloud run.
4. Review the returned rows. Export to CSV, Excel, JSON, or other formats.

## Limitations

- Only collects the fields listed above from detail pages. Empty fields (e.g., RedSocial1, RedSocial2, RedSocial3) are returned when the source does not provide them.
- No reviews, comments, or data beyond what the source page displays.

## Tips

- Start with one or a few URLs to validate the output before scaling.
- Use the most specific valid URLs to reduce unrelated or duplicate records.
- Use an identifier like Nombre or SitioWeb as a deduplication key when available.

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Google Local Service Scraper (by URL)](https://www.octoparse.com/template/google-business-local-services-scraper)
- [Twitter Scraper (by Account URL)](https://www.octoparse.com/template/twitter-scraper-by-account-url)
- [Etsy Product Scraper (by URL)](https://www.octoparse.com/template/etsy-product-scraper-by-url)
- [Zillow Listing Scraper (by URL)](https://www.octoparse.com/template/zillow-scraper)
- [Rikunabi NEXT Job Scraper by URL](https://www.octoparse.com/template/rikunabi-next-job-scraper)

## Input Schema

```json
{
  "title": "Todo Está En Madrid Scraper by URL input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "uRLs": {
      "title": "URLs",
      "description": "urls",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 0,
        "maxLength": 10000
      },
      "minItems": 1,
      "maxItems": 1000,
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": [
    "uRLs"
  ]
}
```

## Input JSON Example

Example 1

```json
{
  "uRLs": [
    "https://todoestaenmadrid.com/es/areas/retiro",
    "https://todoestaenmadrid.com/es/areas/arganzuela",
    "https://todoestaenmadrid.com/es/categories/centros-comerciales"
  ]
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "Correo": {
      "type": "string",
      "description": ""
    },
    "Descripción": {
      "type": "string",
      "description": ""
    },
    "Domicilio": {
      "type": "string",
      "description": ""
    },
    "Nombre": {
      "type": "string",
      "description": ""
    },
    "RedSocial1": {
      "type": "string",
      "description": ""
    },
    "RedSocial2": {
      "type": "string",
      "description": ""
    },
    "RedSocial3": {
      "type": "string",
      "description": ""
    },
    "SitioWeb": {
      "type": "string",
      "description": ""
    },
    "Teléfono": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Todo Está En Madrid Scraper by URL output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

Example 1

```json
{
  "Correo": "mnad@cultura.gob.es",
  "Descripción": "\n              \n\n  \n\n  El Museo Nacional de Artes Decorativas está dedicado a la vida cotidiana del pasado y del presente. Fundado en 1912 como Museo Nacional de Artes Industriales, siguiendo las líneas del Victoria and Albert Museum y el Musée des Arts Decoratives de París\n  \n    ... \n    \n      En la actualidad cuenta con una amplísima colección de artes decorativas y diseño, de la que se exhibe cerca de un 20%, formada por mobiliario, diseño contemporáneo, cerámica, artes orientales, vidrio y cristal, artes textiles e indumentaria, relojes, joyería y adornos personales, platería y un largo etcétera. \nLas exposiciones temporales están dedicadas preferentemente al diseño contemporáneo, y a los diseñadores y artistas, consagrados o jóvenes, que crean nuestro entorno. \"Diseñar nuestro entorno\" es nuestro lema. Queremos interpretar la cultura material y las ideas, así como los valores y actitudes a ella asociados, pasados y presentes, para difundir y contribuir activamente a crear un entorno vital de calidad, desde la responsabilidad social.Martes a sábado: de 9.30 a 15:00 h / Tardes: jueves de 17:00 a 20:00 h  / Domingos y festivos: de 10 a 15:00 h (Festivos: 15/03, 12/10, 1/11, 9/11, 6/12 y 8/12) \n      Leer menos\n    \n\n    Leer más\n\n            ",
  "Domicilio": "\n                  \n                  Montalbán, 12\n                ",
  "Nombre": "Museo Nacional de Artes Decorativas",
  "RedSocial1": "https://facebook.com/MuseoNacionalArtesDecorativas/",
  "RedSocial2": "https://www.instagram.com/mnad_madrid/",
  "RedSocial3": "https://twitter.com/MNAD_Madrid",
  "SitioWeb": "\n                    \n                    www.culturaydeporte.gob.es/mnartesdecorativas/portada.html\n",
  "Teléfono": "915 32 64 99"
}
```

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

```json
{
  "templateName": "todoestaenmadrid-scraper-url",
  "taskName": "Todo Está En Madrid Scraper by URL",
  "parameters": "{\"uRLs\":[\"https://todoestaenmadrid.com/es/areas/retiro\",\"https://todoestaenmadrid.com/es/areas/arganzuela\",\"https://todoestaenmadrid.com/es/categories/centros-comerciales\"]}"
}
```

## Python Example

```python
import json
import requests

OPENAPI_BASE = "https://openapi.octoparse.com"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"

parameters = json.loads("{\"uRLs\":[\"https://todoestaenmadrid.com/es/areas/retiro\",\"https://todoestaenmadrid.com/es/areas/arganzuela\",\"https://todoestaenmadrid.com/es/categories/centros-comerciales\"]}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "todoestaenmadrid-scraper-url",
        "taskName": "Todo Está En Madrid Scraper by URL",
        "parameters": json.dumps(parameters, ensure_ascii=False),
    },
    timeout=60,
)
print(response.status_code)
print(response.json())
```

## HTTP/cURL Example

```bash
curl -X POST "https://openapi.octoparse.com/api/agentTools/executeTask" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "templateName": "todoestaenmadrid-scraper-url",
  "taskName": "Todo Está En Madrid Scraper by URL",
  "parameters": "{\"uRLs\":[\"https://todoestaenmadrid.com/es/areas/retiro\",\"https://todoestaenmadrid.com/es/areas/arganzuela\",\"https://todoestaenmadrid.com/es/categories/centros-comerciales\"]}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `todoestaenmadrid-scraper-url`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/todoestaenmadrid-scraper-url.json)
- [Manifest](https://www.octoparse.com/templates/todoestaenmadrid-scraper-url-manifest.json)
