{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "riddle-site-v317-dashboard-job-status",
  "runner": "riddle",
  "status": "product_regression",
  "baseline_policy": "invariant_only",
  "route": {
    "requested": "https://riddledc.com/dashboard/",
    "observed": "/dashboard/",
    "expected_path": "/dashboard/",
    "matched": true,
    "http_status": 200
  },
  "artifacts": {
    "screenshots": [
      "riddle-site-v317-dashboard-job-status-desktop",
      "riddle-site-v317-dashboard-job-status-desktop-dashboard-loaded",
      "riddle-site-v317-dashboard-job-status-desktop-mcp-token-revealed",
      "riddle-site-v317-dashboard-job-status-phone",
      "riddle-site-v317-dashboard-job-status-phone-dashboard-loaded",
      "riddle-site-v317-dashboard-job-status-phone-mcp-token-revealed",
      "riddle-site-v317-dashboard-job-status-ipad-mini",
      "riddle-site-v317-dashboard-job-status-ipad-mini-dashboard-loaded",
      "riddle-site-v317-dashboard-job-status-ipad-mini-mcp-token-revealed",
      "riddle-site-v317-dashboard-job-status-ipad",
      "riddle-site-v317-dashboard-job-status-ipad-dashboard-loaded",
      "riddle-site-v317-dashboard-job-status-ipad-mcp-token-revealed"
    ],
    "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": 3,
        "required_count": 3,
        "hit_count": 21,
        "hits_by_label": {
          "dashboard-balance-v317": 7,
          "dashboard-jobs-v317": 7,
          "dashboard-api-keys-v317": 7
        },
        "required_hits_by_label": {
          "dashboard-balance-v317": 4,
          "dashboard-jobs-v317": 4,
          "dashboard-api-keys-v317": 4
        },
        "max_hits_by_label": {},
        "response_hits_by_label": {},
        "failed": []
      }
    },
    {
      "type": "setup_actions_succeeded",
      "label": "setup actions succeeded",
      "status": "passed",
      "evidence": {
        "action_count": 13,
        "viewports": [
          {
            "name": "desktop",
            "ok": true,
            "result_count": 13
          },
          {
            "name": "phone",
            "ok": true,
            "result_count": 13
          },
          {
            "name": "ipad-mini",
            "ok": true,
            "result_count": 13
          },
          {
            "name": "ipad",
            "ok": true,
            "result_count": 13
          }
        ],
        "setup_summary": {
          "viewport_count": 4,
          "action_count": 13,
          "viewports": [
            {
              "name": "desktop",
              "ok": true,
              "result_count": 13,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 3,
                "screenshot": 2,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v317-dashboard-job-status-desktop-dashboard-loaded",
                "riddle-site-v317-dashboard-job-status-desktop-mcp-token-revealed"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mcp-token-btn",
                  "frame_selector": null,
                  "text": "Reveal"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 7,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZ... (381 chars)"
                }
              ],
              "failed": []
            },
            {
              "name": "phone",
              "ok": true,
              "result_count": 13,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 3,
                "screenshot": 2,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v317-dashboard-job-status-phone-dashboard-loaded",
                "riddle-site-v317-dashboard-job-status-phone-mcp-token-revealed"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mcp-token-btn",
                  "frame_selector": null,
                  "text": "Reveal"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 7,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZ... (381 chars)"
                }
              ],
              "failed": []
            },
            {
              "name": "ipad-mini",
              "ok": true,
              "result_count": 13,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 3,
                "screenshot": 2,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v317-dashboard-job-status-ipad-mini-dashboard-loaded",
                "riddle-site-v317-dashboard-job-status-ipad-mini-mcp-token-revealed"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mcp-token-btn",
                  "frame_selector": null,
                  "text": "Reveal"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 7,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZ... (381 chars)"
                }
              ],
              "failed": []
            },
            {
              "name": "ipad",
              "ok": true,
              "result_count": 13,
              "observed_path": "/dashboard/",
              "final_url": "https://riddledc.com/dashboard/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 1,
                "wait_for_text": 3,
                "screenshot": 2,
                "click": 1
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v317-dashboard-job-status-ipad-dashboard-loaded",
                "riddle-site-v317-dashboard-job-status-ipad-mcp-token-revealed"
              ],
              "clicked_total": 1,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mcp-token-btn",
                  "frame_selector": null,
                  "text": "Reveal"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 7,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 8,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAv... (517 chars)"
                },
                {
                  "ordinal": 11,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZ... (381 chars)"
                }
              ],
              "failed": []
            }
          ]
        },
        "failed": []
      }
    },
    {
      "type": "route_loaded",
      "label": "route_loaded",
      "status": "passed",
      "evidence": {
        "expected_path": "/dashboard/",
        "observed_paths": [
          "/dashboard/",
          "/dashboard/",
          "/dashboard/",
          "/dashboard/"
        ],
        "http_statuses": [
          200,
          200,
          200,
          200
        ]
      }
    },
    {
      "type": "selector_visible",
      "label": "selector_visible",
      "status": "passed",
      "evidence": {
        "selector": ".dashboard-content",
        "visible_counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Browser Time Balance",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "2h 15m",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Recent Jobs",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "job_rp317_failed",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "failed",
      "evidence": {
        "text": "Failed",
        "matches": [
          false,
          false,
          false,
          false
        ]
      },
      "message": "Text assertion failed in 4 viewport(s)."
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "API Keys",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Production Observatory Browser Proof Key",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "MCP Login Token",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "NaN",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "undefined",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".jobs-list tbody tr",
        "expected_count": 3,
        "counts": [
          3,
          3,
          3,
          3
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".api-keys-list tbody tr",
        "expected_count": 2,
        "counts": [
          2,
          2,
          2,
          2
        ]
      }
    },
    {
      "type": "no_horizontal_overflow",
      "label": "no_horizontal_overflow",
      "status": "failed",
      "evidence": {
        "max_overflow_px": 1,
        "overflow_px": [
          0,
          293,
          0,
          0
        ],
        "bounds_overflow_px": [
          0,
          293,
          0,
          0
        ],
        "overflow_offender_counts": [
          0,
          10,
          0,
          0
        ],
        "viewports": [
          "desktop",
          "phone",
          "ipad-mini",
          "ipad"
        ]
      },
      "message": "Horizontal bounds overflow exceeded 1px in 1 viewport(s)."
    },
    {
      "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,
        "allowed_page_error_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "allowed_page_error_texts": [],
        "allowed_page_error_patterns": []
      }
    }
  ],
  "summary": "riddle-site-v317-dashboard-job-status failed 2 product invariant(s) across 4 viewport(s).",
  "captured_at": "2026-05-15T05:05:17.974Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "riddle-site-v317-dashboard-job-status",
    "target_url": "https://riddledc.com/dashboard/",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-15T05:05:17.974Z",
    "viewports": [
      {
        "name": "desktop",
        "width": 1280,
        "height": 900,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2238,
        "body_text_sample": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp317-dashboard@example.com Sign Out Dashboard Browser Time Balance Available: 2h 15m ~$1.13 Reserved: 1m 15s 2 active Total: 2h 16m 15s ~$1.14 ~270 jobs (30s minimum each) Buy Browser Time Account Summary 2h 15m Browser Time $1.13 Value 2 Active Jobs Recent Jobs JOB ID STATUS RUNTIME DATE job_rp317_completed Completed 42s 5/15/2026, 5:17:00 AM job_rp317_failed Queued 19s 5/15/2026, 5:18:00 AM job_rp317_running Running N/A 5/15/2026, 5:19:00 AM API Keys Use API keys to authenticate requests to the Screenshot API Create API Key Name Key Created Last Used Status Actions Production Observatory Browser Proof Key rdc_live_•••317A 5/12/2026 5/15/2026 Active Revoke Revoked Legacy Key rdc_live_•••317Z 5/1/2026 Never Revoked MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof Hide Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples 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": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 3,
            "visible_count": 3
          },
          ".api-keys-list tbody tr": {
            "count": 2,
            "visible_count": 2
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Browser Time Balance": true,
          "text:2h 15m": true,
          "text:Recent Jobs": true,
          "text:job_rp317_failed": true,
          "text:Failed": false,
          "text:API Keys": true,
          "text:Production Observatory Browser Proof Key": true,
          "text:MCP Login Token": true,
          "text:NaN": false,
          "text:undefined": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.idToken",
            "value_length": 381,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.accessToken",
            "value_length": 360,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "label": "dashboard-loaded",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-desktop-dashboard-loaded"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mcp-token-btn",
            "frame_selector": null,
            "count": 2,
            "target_index": 0,
            "text": "Reveal"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": ".mcp-token-value",
            "frame_selector": null,
            "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 12,
            "selector": null,
            "frame_selector": null,
            "label": "mcp-token-revealed",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-desktop-mcp-token-revealed"
          }
        ],
        "screenshot_label": "riddle-site-v317-dashboard-job-status-desktop"
      },
      {
        "name": "phone",
        "width": 390,
        "height": 844,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2140,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 2h 15m ~$1.13 Reserved: 1m 15s 2 active Total: 2h 16m 15s ~$1.14 ~270 jobs (30s minimum each) Buy Browser Time Account Summary 2h 15m Browser Time $1.13 Value 2 Active Jobs Recent Jobs JOB ID STATUS RUNTIME DATE job_rp317_completed Completed 42s 5/15/2026, 5:17:00 AM job_rp317_failed Queued 19s 5/15/2026, 5:18:00 AM job_rp317_running Running N/A 5/15/2026, 5:19:00 AM API Keys Use API keys to authenticate requests to the Screenshot API Create API Key Name Key Created Last Used Status Actions Production Observatory Browser Proof Key rdc_live_•••317A 5/12/2026 5/15/2026 Active Revoke Revoked Legacy Key rdc_live_•••317Z 5/1/2026 Never Revoked MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof Hide Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples 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": 683,
        "client_width": 390,
        "overflow_px": 293,
        "bounds_overflow_px": 293,
        "overflow_offenders": [
          {
            "selector": "table",
            "tag": "table",
            "text": "NameKeyCreatedLast UsedStatusActionsProduction Observatory Browser Proof Keyrdc_live_•••317A5/12/20265/15/2026ActiveRevo",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "thead",
            "tag": "thead",
            "text": "NameKeyCreatedLast UsedStatusActions",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "tr",
            "tag": "tr",
            "text": "NameKeyCreatedLast UsedStatusActions",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "th",
            "tag": "th",
            "text": "Actions",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 591.84375,
              "right": 682.84375,
              "width": 91
            }
          },
          {
            "selector": "tbody",
            "tag": "tbody",
            "text": "Production Observatory Browser Proof Keyrdc_live_•••317A5/12/20265/15/2026ActiveRevokeRevoked Legacy Keyrdc_live_•••317Z",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "tr",
            "tag": "tr",
            "text": "Production Observatory Browser Proof Keyrdc_live_•••317A5/12/20265/15/2026ActiveRevoke",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "td",
            "tag": "td",
            "text": "Revoke",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 591.84375,
              "right": 682.84375,
              "width": 91
            }
          },
          {
            "selector": "tr",
            "tag": "tr",
            "text": "Revoked Legacy Keyrdc_live_•••317Z5/1/2026NeverRevoked",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 34,
              "right": 682.84375,
              "width": 648.84375
            }
          },
          {
            "selector": "td",
            "tag": "td",
            "text": "",
            "overflow": 292.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 292.84375,
            "viewport_width": 390,
            "rect": {
              "left": 591.84375,
              "right": 682.84375,
              "width": 91
            }
          },
          {
            "selector": "button.revoke-btn",
            "tag": "button",
            "text": "Revoke",
            "overflow": 280.84375,
            "left_overflow_px": 0,
            "right_overflow_px": 280.84375,
            "viewport_width": 390,
            "rect": {
              "left": 603.84375,
              "right": 670.84375,
              "width": 67
            }
          }
        ],
        "selectors": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 3,
            "visible_count": 3
          },
          ".api-keys-list tbody tr": {
            "count": 2,
            "visible_count": 2
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Browser Time Balance": true,
          "text:2h 15m": true,
          "text:Recent Jobs": true,
          "text:job_rp317_failed": true,
          "text:Failed": false,
          "text:API Keys": true,
          "text:Production Observatory Browser Proof Key": true,
          "text:MCP Login Token": true,
          "text:NaN": false,
          "text:undefined": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.idToken",
            "value_length": 381,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.accessToken",
            "value_length": 360,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "label": "dashboard-loaded",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-phone-dashboard-loaded"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mcp-token-btn",
            "frame_selector": null,
            "count": 2,
            "target_index": 0,
            "text": "Reveal"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": ".mcp-token-value",
            "frame_selector": null,
            "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 12,
            "selector": null,
            "frame_selector": null,
            "label": "mcp-token-revealed",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-phone-mcp-token-revealed"
          }
        ],
        "screenshot_label": "riddle-site-v317-dashboard-job-status-phone"
      },
      {
        "name": "ipad-mini",
        "width": 768,
        "height": 1024,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2140,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 2h 15m ~$1.13 Reserved: 1m 15s 2 active Total: 2h 16m 15s ~$1.14 ~270 jobs (30s minimum each) Buy Browser Time Account Summary 2h 15m Browser Time $1.13 Value 2 Active Jobs Recent Jobs JOB ID STATUS RUNTIME DATE job_rp317_completed Completed 42s 5/15/2026, 5:17:00 AM job_rp317_failed Queued 19s 5/15/2026, 5:18:00 AM job_rp317_running Running N/A 5/15/2026, 5:19:00 AM API Keys Use API keys to authenticate requests to the Screenshot API Create API Key Name Key Created Last Used Status Actions Production Observatory Browser Proof Key rdc_live_•••317A 5/12/2026 5/15/2026 Active Revoke Revoked Legacy Key rdc_live_•••317Z 5/1/2026 Never Revoked MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof Hide Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples 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": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 3,
            "visible_count": 3
          },
          ".api-keys-list tbody tr": {
            "count": 2,
            "visible_count": 2
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Browser Time Balance": true,
          "text:2h 15m": true,
          "text:Recent Jobs": true,
          "text:job_rp317_failed": true,
          "text:Failed": false,
          "text:API Keys": true,
          "text:Production Observatory Browser Proof Key": true,
          "text:MCP Login Token": true,
          "text:NaN": false,
          "text:undefined": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.idToken",
            "value_length": 381,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.accessToken",
            "value_length": 360,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "label": "dashboard-loaded",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad-mini-dashboard-loaded"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mcp-token-btn",
            "frame_selector": null,
            "count": 2,
            "target_index": 0,
            "text": "Reveal"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": ".mcp-token-value",
            "frame_selector": null,
            "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 12,
            "selector": null,
            "frame_selector": null,
            "label": "mcp-token-revealed",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad-mini-mcp-token-revealed"
          }
        ],
        "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad-mini"
      },
      {
        "name": "ipad",
        "width": 820,
        "height": 1180,
        "url": "https://riddledc.com/dashboard/",
        "route": {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2140,
        "body_text_sample": "Skip to main content Riddle Dashboard Browser Time Balance Available: 2h 15m ~$1.13 Reserved: 1m 15s 2 active Total: 2h 16m 15s ~$1.14 ~270 jobs (30s minimum each) Buy Browser Time Account Summary 2h 15m Browser Time $1.13 Value 2 Active Jobs Recent Jobs JOB ID STATUS RUNTIME DATE job_rp317_completed Completed 42s 5/15/2026, 5:17:00 AM job_rp317_failed Queued 19s 5/15/2026, 5:18:00 AM job_rp317_running Running N/A 5/15/2026, 5:19:00 AM API Keys Use API keys to authenticate requests to the Screenshot API Create API Key Name Key Created Last Used Status Actions Production Observatory Browser Proof Key rdc_live_•••317A 5/12/2026 5/15/2026 Active Revoke Revoked Legacy Key rdc_live_•••317Z 5/1/2026 Never Revoked MCP Login Token MCP setup Use this short-lived login token for hosted MCP. It expires in about 1 hour. eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof Hide Copy token Never share this token. Anyone with it can run jobs on your account. Quick Actions Test Playground Try the APIs and generate code API Documentation Integration guides and reference Buy Credits Add browser time to your account Optimize Costs Batch to get <$0.001 per screenshot Use Case Guides AI Agents Vision for LLMs, cookie injection Serverless Lambda, Vercel, Cloudflare Workers Authenticated Pages Screenshots behind login Pricing Details Cost breakdown and examples 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": {
          ".dashboard-content": {
            "count": 1,
            "visible_count": 1
          },
          ".jobs-list tbody tr": {
            "count": 3,
            "visible_count": 3
          },
          ".api-keys-list tbody tr": {
            "count": 2,
            "visible_count": 2
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Browser Time Balance": true,
          "text:2h 15m": true,
          "text:Recent Jobs": true,
          "text:job_rp317_failed": true,
          "text:Failed": false,
          "text:API Keys": true,
          "text:Production Observatory Browser Proof Key": true,
          "text:MCP Login Token": true,
          "text:NaN": false,
          "text:undefined": false
        },
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 27,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.idToken",
            "value_length": 381,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.accessToken",
            "value_length": 360,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp317-dashboard@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".dashboard-content",
            "frame_selector": null,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 7,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "text": "Skip to main contentRiddleDocsProofMCPPricingBlogPlaygroundDashboardBuy Creditsrp317-dashboard@example.comSign OutDashboardBrowser Time BalanceAvailable:2h 15m~$1.13Reserved:1m 15s2 activeTotal:2h 16m 15s~$1.14~270 jobs (30s minimum each)Buy Browser TimeAccount Summary2h 15mBrowser Time$1.13Value2Active JobsRecent JobsJob IDStatusRuntimeDatejob_rp317_completedCompleted42s5/15/2026, 5:17:00 AMjob_rp317_failedQueued19s5/15/2026, 5:18:00 AMjob_rp317_runningRunningN/A5/15/2026, 5:19:00 AMAPI KeysUse... (14083 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "label": "dashboard-loaded",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad-dashboard-loaded"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mcp-token-btn",
            "frame_selector": null,
            "count": 2,
            "target_index": 0,
            "text": "Reveal"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": ".mcp-token-value",
            "frame_selector": null,
            "text": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJyaWRkbGUtcHJvb2YtdjMxNyIsImVtYWlsIjoicnAzMTctZGFzaGJvYXJkQGV4YW1wbGUuY29tIiwiY29nbml0bzp1c2VybmFtZSI6InJwMzE3LWRhc2hib2FyZEBleGFtcGxlLmNvbSIsImV4cCI6NDEwMjQ0NDgwMCwiaWF0IjoxNzY3MjI1NjAwLCJhdWQiOiI3dTFidDNyMjB2NjEzanNha2k5ZGtiaHZlIiwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS91cy1lYXN0LTFfdlNxc0oycnVEIn0.proof",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 12,
            "selector": null,
            "frame_selector": null,
            "label": "mcp-token-revealed",
            "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad-mcp-token-revealed"
          }
        ],
        "screenshot_label": "riddle-site-v317-dashboard-job-status-ipad"
      }
    ],
    "console": {
      "events": [],
      "fatal_count": 0
    },
    "page_errors": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 4,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 4,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 4,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 5,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 5,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 5,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-balance-v317",
        "response_label": "dashboard-balance-v317",
        "hit_index": 6,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/balance",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-jobs-v317",
        "response_label": "dashboard-jobs-v317",
        "hit_index": 6,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs?limit=10",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "dashboard-api-keys-v317",
        "response_label": "dashboard-api-keys-v317",
        "hit_index": 6,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/billing/api-keys",
        "method": "GET",
        "status": 200
      }
    ],
    "dom_summary": {
      "expected_viewport_count": 4,
      "viewport_count": 4,
      "partial": false,
      "routes": [
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://riddledc.com/dashboard/",
          "observed": "/dashboard/",
          "expected_path": "/dashboard/",
          "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,
        293,
        0,
        0
      ],
      "bounds_overflow_px": [
        0,
        293,
        0,
        0
      ],
      "overflow_offender_counts": [
        0,
        10,
        0,
        0
      ],
      "frames": [
        {
          "viewport": "desktop",
          "selectors": []
        },
        {
          "viewport": "phone",
          "selectors": []
        },
        {
          "viewport": "ipad-mini",
          "selectors": []
        },
        {
          "viewport": "ipad",
          "selectors": []
        }
      ],
      "route_inventory": [],
      "network_mock_count": 3,
      "network_mock_hit_count": 21
    }
  }
}