Playground
The Playground (sidebar > Playground) lets you run live API requests against your real key without writing any code. It's the fastest way to try a new target site, debug a tricky response, or compare Single, Proxy, and Browser side by side.
Open it at foura.ai/dashboard#playground.
What It Does
One form. Three engines. Real traffic.
- Single: direct HTTP fetch with realistic browser-like wire characteristics
- Proxy: managed rotating proxy fetch
- Browser: opens the URL in a Chrome browser instance for JS-rendered sites
Requests run against the API key you pick at the top of the page. Usage counts against that key's quota the same way a production call would, so don't burn through your plan in testing.
Picking a Key
The API key dropdown shows every active key within your scope: personal keys, org keys you administer, and team-shared keys you can access. Pick the one you want the request to bill against. If you don't have any active keys yet, an inline prompt links you to the API Keys page to create one.
Choosing a Product
Three pills sit above the form: Single, Proxy, Browser. Switching pills swaps which fields are visible and which engine the request hits. The current selection is preserved when you reload the page.
| Product | When to use it |
|---|---|
| Single | Fast HTTP fetch. Best first pick for any URL. |
| Proxy | Same fetch with automatic proxy rotation. Use when Single keeps getting blocked. |
| Browser | Loads the page in a Chrome browser instance. Use when the data appears only after JavaScript runs. |
Building the Request
URL Row
The top row holds the HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), the target URL, and the Send button. Single + Proxy honor every method. Browser ignores the method (Chrome always issues GET for navigation) and the body.
Request Tabs
Below the URL row, five tabs let you fill in everything else:
| Tab | What it controls |
|---|---|
| UI | Form fields for timeouts, redirects, flags, proxy, browser-specific options, and validate rules |
| Body | Free-form body for POST / PUT / PATCH requests |
| Headers | Custom request headers as key-value pairs |
| Cookies | Cookies to send with the request |
| Raw | The exact JSON payload that will be sent, editable directly |
Whatever you change in UI / Body / Headers / Cookies is reflected in Raw. Editing Raw works too, with the other tabs updating to match.
UI Pane Sections
The UI tab groups settings into collapsible sections. Empty fields fall back to the engine's schema default.
- Timeouts:
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec - Redirects: toggle and set
followRedirects(0-20). Single + Proxy only. Browser follows redirects on its own. - Flags:
unblocker,tryJsonData,returnBuffer. Single + Proxy. - Proxy: pick a specific proxy ID for Single or Browser, or set
maxTries, the Proxy outer timeout, andignoreProxiesfor the Proxy engine. - Browser: browser-only options such as
checkStatusandcheckText. - Validate:
validate.status,validate.headers,validate.dataaccept / fail rules.
Fields that don't apply to the currently selected product are hidden.
Sending the Request
Click Send. The Send button shows a spinner while the request is in flight. The response renders in the right column when the call finishes (or fails). You can interrupt a long-running browser request by clicking Send again, which cancels and restarts.
Reading the Response
The response column mirrors the request layout with its own tabs:
| Tab | What it shows |
|---|---|
| Body | Parsed body. Switches between JSON, HTML, and Text views depending on what came back. |
| Headers | Response headers, one per line. |
| Cookies | Cookies returned by the target, in both parsed (host-grouped) and raw (Set-Cookie text) views. |
| Raw | The full JSON envelope returned by the API. |
A meta strip above the tabs shows the upstream HTTP status, the total time, and (for Proxy / single-with-proxy-id requests) the proxy ID that handled the call. Copy and download buttons sit on the top right of each pane, so you can pull the body or headers into a file with one click.
Saving Presets
If you find yourself reconfiguring the same target repeatedly, save it. Click Save on the request tabs row to store the current configuration as a named preset.
Open Saved in the toolbar to browse, rename, or delete your presets. Click any preset to load it back into the form.
| Preset field | What it stores |
|---|---|
| Name | A short label (up to 100 characters) |
| Description | Optional notes (up to 500 characters) |
| Endpoint | Which product the preset is for (single / proxy / browser) |
| Config | The full request payload, including UI fields, headers, cookies, and body |
Presets are scoped to your user account and aren't shared with team members.
Replaying from History
Every request you run is logged. Open History in the toolbar to see your last 20 runs, sorted newest first.
Each row shows the endpoint, target URL, status, and time. Click Replay on any row to load that request back into the form, then Send to run it again.
History is automatically scoped to your account: you only see your own runs.
Tips
- Start in Playground before writing code against a new target. You'll know within seconds whether Single is enough or whether you need Browser.
- Save a preset for every target you scrape regularly. Replaying a saved preset takes one click; reconstructing the request from memory takes longer.
- Use the Cookies tab to debug session-based scraping. The raw Set-Cookie view shows exactly what the target sent.
- Playground requests are billed against the key you pick. Use a dedicated low-quota key for casual exploration if you want to keep production usage clean.
Related
- API Endpoints: Full parameter reference for all three products
- Choosing the Right Endpoint: When to pick Single vs Proxy vs Browser
- API Keys: Manage the keys you authenticate Playground requests with
- Dashboard Overview: All sidebar sections