# OpenScraper API Playground

*HTML page: https://openscraper.ai/playground · Agent index: https://openscraper.ai/llms.txt*

> Pick a crawler to test it live in the browser. Each run is billed against your credit balance, and the Playground shows the exact request body — plus copy-paste curl, Python and JavaScript snippets — for the call it makes.

## What it is

The Playground at <https://openscraper.ai/playground> renders a form for each module's parameters, runs it against the real API, and displays the returned rows. A module can also be opened directly at `https://openscraper.ai/playground/<slug>`, and a finished run at `https://openscraper.ai/playground/<slug>/<taskId>`.

New accounts get $5 of free credit, so a first run costs nothing.

## What you get from a run

- The rows the module returned, in the same shape as the API response.
- A cost estimate before you launch, computed from the module's credit schema.
- Generated code for the exact payload: `curl`, Python (`requests`) and JavaScript (`fetch`). Pasting your API key fills the snippets with it.

## The equivalent API call

Everything the Playground does is one `POST /runs`:

```bash
curl -X POST https://api.openscraper.ai/runs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "module": "unlocker_matrix",
  "params": {
    "url": "https://example.com",
    "geo": "France"
  },
  "sync": true
}'
```

```python
import requests

response = requests.post(
    "https://api.openscraper.ai/runs",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "module": "unlocker_matrix",
        "params": {"url": "https://example.com", "geo": "France"},
        "sync": True,
    },
    timeout=600,
)
print(response.json())
```

Modules that return many rows (Google Maps, Shein) are submitted with `"sync": false` and polled on `GET /runs/{task_id}`. Full reference: <https://openscraper.ai/docs.md>.
