{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "riddle-site-v356-playground-script-job-receipt",
  "runner": "riddle",
  "status": "passed",
  "baseline_policy": "invariant_only",
  "route": {
    "requested": "https://riddledc.com/playground/",
    "observed": "/playground/",
    "expected_path": "/playground/",
    "matched": true,
    "http_status": 200
  },
  "artifacts": {
    "screenshots": [
      "riddle-site-v356-playground-script-job-receipt-desktop",
      "riddle-site-v356-playground-script-job-receipt-desktop-script-receipt-ready",
      "riddle-site-v356-playground-script-job-receipt-desktop-script-job-receipt-result",
      "riddle-site-v356-playground-script-job-receipt-phone",
      "riddle-site-v356-playground-script-job-receipt-phone-script-receipt-ready",
      "riddle-site-v356-playground-script-job-receipt-phone-script-job-receipt-result",
      "riddle-site-v356-playground-script-job-receipt-ipad-mini",
      "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-receipt-ready",
      "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-job-receipt-result",
      "riddle-site-v356-playground-script-job-receipt-ipad",
      "riddle-site-v356-playground-script-job-receipt-ipad-script-receipt-ready",
      "riddle-site-v356-playground-script-job-receipt-ipad-script-job-receipt-result"
    ],
    "console": "console.json",
    "proof_json": "proof.json",
    "dom_summary": "dom-summary.json"
  },
  "checks": [
    {
      "type": "network_mocks_succeeded",
      "label": "network mocks succeeded",
      "status": "passed",
      "evidence": {
        "mock_count": 2,
        "required_count": 2,
        "hit_count": 8,
        "hits_by_label": {
          "playground-script-v356-submit": 4,
          "playground-script-v356-artifacts": 4
        },
        "required_hits_by_label": {
          "playground-script-v356-submit": 4,
          "playground-script-v356-artifacts": 4
        },
        "max_hits_by_label": {
          "playground-script-v356-submit": 4
        },
        "response_hits_by_label": {},
        "failed": []
      }
    },
    {
      "type": "setup_actions_succeeded",
      "label": "setup actions succeeded",
      "status": "passed",
      "evidence": {
        "action_count": 21,
        "viewports": [
          {
            "name": "desktop",
            "expected_action_count": 21,
            "ok": true,
            "result_count": 21
          },
          {
            "name": "phone",
            "expected_action_count": 21,
            "ok": true,
            "result_count": 21
          },
          {
            "name": "ipad-mini",
            "expected_action_count": 21,
            "ok": true,
            "result_count": 21
          },
          {
            "name": "ipad",
            "expected_action_count": 21,
            "ok": true,
            "result_count": 21
          }
        ],
        "setup_summary": {
          "viewport_count": 4,
          "action_count": 21,
          "viewports": [
            {
              "name": "desktop",
              "expected_action_count": 21,
              "ok": true,
              "result_count": 21,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 2,
                "clear_console": 1,
                "click": 3,
                "assert_text_visible": 3,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v356-playground-script-job-receipt-desktop-script-receipt-ready",
                "riddle-site-v356-playground-script-job-receipt-desktop-script-job-receipt-result"
              ],
              "clicked_total": 3,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.1sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.1sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "phone",
              "expected_action_count": 21,
              "ok": true,
              "result_count": 21,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 2,
                "clear_console": 1,
                "click": 3,
                "assert_text_visible": 3,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v356-playground-script-job-receipt-phone-script-receipt-ready",
                "riddle-site-v356-playground-script-job-receipt-phone-script-job-receipt-result"
              ],
              "clicked_total": 3,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad-mini",
              "expected_action_count": 21,
              "ok": true,
              "result_count": 21,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 2,
                "clear_console": 1,
                "click": 3,
                "assert_text_visible": 3,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-receipt-ready",
                "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-job-receipt-result"
              ],
              "clicked_total": 3,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad",
              "expected_action_count": 21,
              "ok": true,
              "result_count": 21,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 2,
                "clear_console": 1,
                "click": 3,
                "assert_text_visible": 3,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v356-playground-script-job-receipt-ipad-script-receipt-ready",
                "riddle-site-v356-playground-script-job-receipt-ipad-script-job-receipt-result"
              ],
              "clicked_total": 3,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 13,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs an... (517 chars)"
                },
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.ri... (515 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            }
          ]
        },
        "failed": []
      }
    },
    {
      "type": "route_loaded",
      "label": "route_loaded",
      "status": "passed",
      "evidence": {
        "expected_path": "/playground/",
        "observed_paths": [
          "/playground/",
          "/playground/",
          "/playground/",
          "/playground/"
        ],
        "http_statuses": [
          200,
          200,
          200,
          200
        ]
      }
    },
    {
      "type": "selector_visible",
      "label": "selector_visible",
      "status": "passed",
      "evidence": {
        "selector": ".playground-page",
        "visible_counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "API Playground",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Result",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Success",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Job ID",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "job_rp356_script_receipt",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Console Output",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "1 log",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "No screenshots captured",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Failed at step",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Application error",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".screenshots-section .screenshot-item",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".console-section",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".loading-state",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "type": "no_horizontal_overflow",
      "label": "no_horizontal_overflow",
      "status": "passed",
      "evidence": {
        "max_overflow_px": 1,
        "overflow_px": [
          0,
          0,
          0,
          0
        ],
        "bounds_overflow_px": [
          0,
          0,
          0,
          0
        ],
        "overflow_offender_counts": [
          0,
          0,
          0,
          0
        ],
        "viewports": [
          "desktop",
          "phone",
          "ipad-mini",
          "ipad"
        ]
      }
    },
    {
      "type": "no_fatal_console_errors",
      "label": "no_fatal_console_errors",
      "status": "passed",
      "evidence": {
        "console_fatal_count": 0,
        "page_error_count": 0,
        "total_console_fatal_count": 0,
        "total_page_error_count": 0,
        "allowed_console_fatal_count": 0,
        "explicitly_allowed_console_fatal_count": 0,
        "allowed_expected_network_mock_console_count": 0,
        "allowed_expected_network_mock_console_events": [],
        "allowed_page_error_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "allowed_page_error_texts": [],
        "allowed_page_error_patterns": []
      }
    }
  ],
  "summary": "riddle-site-v356-playground-script-job-receipt passed 19 check(s) across 4 viewport(s) (desktop, phone, ipad-mini, ipad).",
  "captured_at": "2026-05-15T23:13:58.322Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "riddle-site-v356-playground-script-job-receipt",
    "target_url": "https://riddledc.com/playground/",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-15T23:13:58.322Z",
    "viewports": [
      {
        "name": "desktop",
        "width": 1280,
        "height": 900,
        "url": "https://riddledc.com/playground/",
        "route": {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1843,
        "body_text_sample": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp356-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.1s Billed: ~30s Cost: ~$0.00417 Success Job ID job_rp356_script_receipt ▶ Console Output 1 log curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 1280,
        "client_width": 1280,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:Job ID": true,
          "text:job_rp356_script_receipt": true,
          "text:Console Output": true,
          "text:1 log": true,
          "text:No screenshots captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.idToken",
            "value_length": 353,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.accessToken",
            "value_length": 329,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptURL to Screenshot:Options:Full PageMobile View (375x667)Include in response:Console LogsNetwork HARGet debugging artifacts with your screenshotTimeo... (13465 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsync28s max, 1 screenshotInclude in response:Console LogsNetwork HARExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for Cont... (13815 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsyncAll screenshotsExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for ContentConsole LoggingDogfood (Screenshot Riddle)Play... (13766 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 124
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-receipt-ready",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-desktop-script-receipt-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.1sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.1sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 20,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-job-receipt-result",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-desktop-script-job-receipt-result"
          }
        ],
        "screenshot_label": "riddle-site-v356-playground-script-job-receipt-desktop"
      },
      {
        "name": "phone",
        "width": 390,
        "height": 844,
        "url": "https://riddledc.com/playground/",
        "route": {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1744,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~30s Cost: ~$0.00417 Success Job ID job_rp356_script_receipt ▶ Console Output 1 log curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 390,
        "client_width": 390,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:Job ID": true,
          "text:job_rp356_script_receipt": true,
          "text:Console Output": true,
          "text:1 log": true,
          "text:No screenshots captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.idToken",
            "value_length": 353,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.accessToken",
            "value_length": 329,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptURL to Screenshot:Options:Full PageMobile View (375x667)Include in response:Console LogsNetwork HARGet debugging artifacts with your screenshotTimeo... (13465 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsync28s max, 1 screenshotInclude in response:Console LogsNetwork HARExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for Cont... (13815 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsyncAll screenshotsExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for ContentConsole LoggingDogfood (Screenshot Riddle)Play... (13766 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 124
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-receipt-ready",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-phone-script-receipt-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 20,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-job-receipt-result",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-phone-script-job-receipt-result"
          }
        ],
        "screenshot_label": "riddle-site-v356-playground-script-job-receipt-phone"
      },
      {
        "name": "ipad-mini",
        "width": 768,
        "height": 1024,
        "url": "https://riddledc.com/playground/",
        "route": {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1744,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~30s Cost: ~$0.00417 Success Job ID job_rp356_script_receipt ▶ Console Output 1 log curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 768,
        "client_width": 768,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:Job ID": true,
          "text:job_rp356_script_receipt": true,
          "text:Console Output": true,
          "text:1 log": true,
          "text:No screenshots captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.idToken",
            "value_length": 353,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.accessToken",
            "value_length": 329,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptURL to Screenshot:Options:Full PageMobile View (375x667)Include in response:Console LogsNetwork HARGet debugging artifacts with your screenshotTimeo... (13465 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsync28s max, 1 screenshotInclude in response:Console LogsNetwork HARExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for Cont... (13815 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsyncAll screenshotsExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for ContentConsole LoggingDogfood (Screenshot Riddle)Play... (13766 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 124
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-receipt-ready",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-receipt-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 20,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-job-receipt-result",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad-mini-script-job-receipt-result"
          }
        ],
        "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad-mini"
      },
      {
        "name": "ipad",
        "width": 820,
        "height": 1180,
        "url": "https://riddledc.com/playground/",
        "route": {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 1744,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~30s Cost: ~$0.00417 Success Job ID job_rp356_script_receipt ▶ Console Output 1 log curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 820,
        "client_width": 820,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:Job ID": true,
          "text:job_rp356_script_receipt": true,
          "text:Console Output": true,
          "text:1 log": true,
          "text:No screenshots captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.idToken",
            "value_length": 353,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.accessToken",
            "value_length": 329,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp356-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptURL to Screenshot:Options:Full PageMobile View (375x667)Include in response:Console LogsNetwork HARGet debugging artifacts with your screenshotTimeo... (13465 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsync28s max, 1 screenshotInclude in response:Console LogsNetwork HARExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for Cont... (13815 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp356-playground@example.comSign OutAPI PlaygroundTest the APIs and generate integration code for your applicationEach request uses 30s minimum (~$0.004 per job). View pricing | Optimize costsFull Documentation•For AI Agents•Authenticated PagesScreenshotBatchWorkflowScriptMode:SyncAsyncAll screenshotsExample Scripts:Simple ScreenshotMulti-Page FlowForm FillWait for ContentConsole LoggingDogfood (Screenshot Riddle)Play... (13766 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 124
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-receipt-ready",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad-script-receipt-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".result-state",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "ResultTime: 1.0sBilled: ~30sCost: ~$0.00417SuccessJob IDjob_rp356_script_receipt▶ Console Output1 logcurl Command:Copycurl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\", \"sync\": false, \"timeout_sec\": 180 }'Next StepsFull API DocumentationOptimize Costs with BatchingManage Your A... (506 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 20,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-job-receipt-result",
            "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad-script-job-receipt-result"
          }
        ],
        "screenshot_label": "riddle-site-v356-playground-script-job-receipt-ipad"
      }
    ],
    "console": {
      "events": [],
      "fatal_count": 0
    },
    "page_errors": [],
    "dialogs": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "playground-script-v356-submit",
        "response_label": "playground-script-v356-submit",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 170,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v356-artifacts",
        "response_label": "playground-script-v356-artifacts",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp356_script_receipt/artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v356-submit",
        "response_label": "playground-script-v356-submit",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 170,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v356-artifacts",
        "response_label": "playground-script-v356-artifacts",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp356_script_receipt/artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v356-submit",
        "response_label": "playground-script-v356-submit",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 170,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v356-artifacts",
        "response_label": "playground-script-v356-artifacts",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp356_script_receipt/artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v356-submit",
        "response_label": "playground-script-v356-submit",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 170,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com');\\nconsole.log('rp356 receipt script complete');\\nawait saveScreenshot('rp356-receipt');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v356-artifacts",
        "response_label": "playground-script-v356-artifacts",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp356_script_receipt/artifacts",
        "method": "GET",
        "status": 200
      }
    ],
    "dom_summary": {
      "expected_viewport_count": 4,
      "viewport_count": 4,
      "partial": false,
      "routes": [
        {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/playground/",
          "observed": "/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        }
      ],
      "titles": [
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents"
      ],
      "overflow_px": [
        0,
        0,
        0,
        0
      ],
      "bounds_overflow_px": [
        0,
        0,
        0,
        0
      ],
      "overflow_offender_counts": [
        0,
        0,
        0,
        0
      ],
      "frames": [
        {
          "viewport": "desktop",
          "selectors": []
        },
        {
          "viewport": "phone",
          "selectors": []
        },
        {
          "viewport": "ipad-mini",
          "selectors": []
        },
        {
          "viewport": "ipad",
          "selectors": []
        }
      ],
      "route_inventory": [],
      "network_mock_count": 2,
      "network_mock_hit_count": 8,
      "dialog_count": 0,
      "dialog_accept_count": 0,
      "dialog_dismiss_count": 0
    }
  }
}