Riddle Distributed Computing
Your agent's browser
Send a Playwright script. Get screenshots, console logs, and network HAR.
No infrastructure. No browser launch. Just results.
New: Riddle Proof
Browser evidence your agent can hand back.
Riddle Proof turns previews, production URLs, and black-box browser flows into reviewable receipts: what was checked, what passed, what failed, and which artifacts prove it.
Good Catch Diary
Real bugs found by cheap browser proof: clipped iframes, preview route escapes, request-body leaks, async races, and auth-boundary failures.
Read the diary →Evidence manifest
Each catch includes the claim, browser checks, screenshots, run receipts, console captures, and the reusable proof pattern.
Source optional
Many browser-visible defects can be detected from the outside with a URL, viewports, and a repeatable proof profile.
The Script API
Write Playwright. Send it to Riddle. Get results.
Just write Playwright
const result = await fetch("https://api.riddledc.com/v1/run", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
script: `
await page.goto("https://example.com/login");
await page.fill("#email", "user@example.com");
await page.fill("#password", "secret");
await page.click("button[type=submit]");
await page.waitForURL("**/dashboard**");
`,
include: ["screenshot", "console", "har"]
})
}).then(r => r.json());
// result.screenshot — base64 PNG of the final page
// result.console — every console.log, warn, error
// result.har — full network traceRich results
Get back screenshots, console logs, network HAR, assertion results, and downloaded files—not just pixels.
Full Playwright API
Use any Playwright method—selectors, waits, assertions, network interception. No proprietary DSL to learn.
Pack work into sessions
30 seconds of browser time per job — run multiple navigations, screenshots, and actions in one call.
Assert without vision
Check selectors and URLs in your script before screenshotting. Cheaper than sending every page to a vision model.
Or just grab a screenshot
Same endpoint, simpler input
const response = await fetch("https://api.riddledc.com/v1/run", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ url: "https://example.com" })
});
const { screenshot } = await response.json();
// screenshot contains your PNGBuilt for agents
Vision when needed
Your agent thinks, then acts. Batch navigation, form fills, and checks into one job. Screenshot only at decision points.
Authenticated sessions
Inject cookies, headers, or localStorage. Log in once with your agent, reuse the session across calls.
Assertions without vision
Check if a selector exists or URL matches before deciding to screenshot. Cheaper than sending every page to a vision model.
Pay only for browser time. From $0.50/hr. See pricing →
Chromium on Lambda is painful—size limits, cold starts, memory errors. See why teams switch to Riddle →
Give your agent eyes
Create an account and start making API calls in minutes.