{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "riddle-site-v486-playground-async-workflow-har-artifact",
  "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-v486-playground-async-workflow-har-artifact-desktop",
      "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-ready",
      "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-result-expanded",
      "riddle-site-v486-playground-async-workflow-har-artifact-phone",
      "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-ready",
      "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-result-expanded",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-ready",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-result-expanded",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-ready",
      "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-result-expanded"
    ],
    "console": "console.json",
    "proof_json": "proof.json",
    "dom_summary": "dom-summary.json",
    "riddle_artifacts": [
      {
        "name": "proof.json",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/proof.json.json",
        "source": "artifacts"
      },
      {
        "name": "console.json",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/console.json.json",
        "source": "artifacts"
      },
      {
        "name": "dom-summary.json",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/dom-summary.json.json",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-desktop.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-desktop.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-phone.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-phone.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v486-playground-async-workflow-har-artifact-ipad.png",
        "url": "https://cdn.riddledc.com/scripts/job_3fc1124e/riddle-site-v486-playground-async-workflow-har-artifact-ipad.png",
        "source": "artifacts"
      }
    ]
  },
  "checks": [
    {
      "type": "network_mocks_succeeded",
      "label": "network mocks succeeded",
      "status": "passed",
      "evidence": {
        "mock_count": 3,
        "required_count": 2,
        "hit_count": 8,
        "hits_by_label": {
          "playground-workflow-v486-submit-har-artifacts": 4,
          "playground-workflow-v486-explicit-artifacts-files-har": 4,
          "playground-workflow-v486-forbidden-default-artifacts-url": 0
        },
        "required_hits_by_label": {
          "playground-workflow-v486-submit-har-artifacts": 4,
          "playground-workflow-v486-explicit-artifacts-files-har": 4
        },
        "max_hits_by_label": {
          "playground-workflow-v486-submit-har-artifacts": 4,
          "playground-workflow-v486-explicit-artifacts-files-har": 4,
          "playground-workflow-v486-forbidden-default-artifacts-url": 0
        },
        "response_hits_by_label": {},
        "failed": []
      }
    },
    {
      "type": "setup_actions_succeeded",
      "label": "setup actions succeeded",
      "status": "passed",
      "evidence": {
        "action_count": 28,
        "viewports": [
          {
            "name": "desktop",
            "expected_action_count": 28,
            "ok": true,
            "result_count": 28
          },
          {
            "name": "phone",
            "expected_action_count": 28,
            "ok": true,
            "result_count": 28
          },
          {
            "name": "ipad-mini",
            "expected_action_count": 28,
            "ok": true,
            "result_count": 28
          },
          {
            "name": "ipad",
            "expected_action_count": 28,
            "ok": true,
            "result_count": 28
          }
        ],
        "setup_summary": {
          "viewport_count": 4,
          "action_count": 28,
          "viewports": [
            {
              "name": "desktop",
              "expected_action_count": 28,
              "ok": true,
              "result_count": 28,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 5,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-ready",
                "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(3)",
                  "frame_selector": null,
                  "text": "Workflow"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Workflow"
                },
                {
                  "ordinal": 21,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 25,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "rp486-workflow-before"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 20,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 23,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp486 workflow har console log"
                },
                {
                  "ordinal": 24,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-playground@example.com Sign Out API Playground Tes... (516 chars)"
                },
                {
                  "ordinal": 26,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-playground@example.com Sign Out API Playground Tes... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "phone",
              "expected_action_count": 28,
              "ok": true,
              "result_count": 28,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 5,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-ready",
                "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(3)",
                  "frame_selector": null,
                  "text": "Workflow"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Workflow"
                },
                {
                  "ordinal": 21,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 25,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "rp486-workflow-before"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 20,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 23,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp486 workflow har console log"
                },
                {
                  "ordinal": 24,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 26,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad-mini",
              "expected_action_count": 28,
              "ok": true,
              "result_count": 28,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 5,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-ready",
                "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(3)",
                  "frame_selector": null,
                  "text": "Workflow"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Workflow"
                },
                {
                  "ordinal": 21,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 25,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "rp486-workflow-before"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 20,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 23,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp486 workflow har console log"
                },
                {
                  "ordinal": 24,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 26,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad",
              "expected_action_count": 28,
              "ok": true,
              "result_count": 28,
              "observed_path": "/playground/",
              "final_url": "https://riddledc.com/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 3,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 5,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-ready",
                "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(3)",
                  "frame_selector": null,
                  "text": "Workflow"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Workflow"
                },
                {
                  "ordinal": 21,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 25,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 18,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "rp486-workflow-before"
                },
                {
                  "ordinal": 19,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 20,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log"
                },
                {
                  "ordinal": 23,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp486 workflow har console log"
                },
                {
                  "ordinal": 24,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 26,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 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_rp486_workflow_har_artifacts",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".screenshots-section",
        "text": "rp486-workflow-before",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "rp486-workflow-before"
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "rp486-workflow-before"
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "rp486-workflow-before"
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "rp486-workflow-before"
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".console-output",
        "text": "rp486 workflow har console log",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp486 workflow har console log"
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp486 workflow har console log"
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp486 workflow har console log"
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp486 workflow har console log"
            ]
          }
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Network HAR",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "rp486-workflow-resource",
        "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": "No console output captured",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "No network requests 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": ".error-warning",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "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": 2,
        "counts": [
          2,
          2,
          2,
          2
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".console-entry.console-log",
        "expected_count": 2,
        "counts": [
          2,
          2,
          2,
          2
        ]
      }
    },
    {
      "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": []
      }
    },
    {
      "type": "no_console_warnings",
      "label": "no_console_warnings",
      "status": "passed",
      "evidence": {
        "console_warning_count": 0,
        "total_console_warning_count": 0,
        "allowed_console_warning_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "unallowed_console_warning_samples": [],
        "allowed_console_warning_samples": []
      }
    }
  ],
  "summary": "riddle-site-v486-playground-async-workflow-har-artifact passed 25 check(s) across 4 viewport(s) (desktop, phone, ipad-mini, ipad).",
  "captured_at": "2026-05-17T11:33:32.590Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "riddle-site-v486-playground-async-workflow-har-artifact",
    "target_url": "https://riddledc.com/playground/",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-17T11:33:32.590Z",
    "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": 1832,
        "body_text_sample": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step types in docs Timeout: 1 minute 2 minutes (default) 3 minutes 5 minutes 10 minutes Max time before job stops Run Workflow Result Time: 1.0s Billed: ~33s Cost: ~$0.00458 Success Job ID job_rp486_workflow_har_artifacts rp486-workflow-before ▼ Console Output 1 log [LOG] rp486 workflow har console log ▼ Network HAR 1 requests 200 GET https://example.com/rp486-workflow-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"steps\": [ { \"goto\": \"https://example.com/rp486-workflow-har\" }, { \"screenshot\": \"rp486-workflow-before\" }, { \"waitForTimeout\": 100 }], \"sync\": false, \"timeout_sec\": 120 }' 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": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry.console-log": {
            "count": 2,
            "visible_count": 2
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".screenshots-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "rp486-workflow-before"
            ],
            "visible_texts": [
              "rp486-workflow-before"
            ],
            "match_texts": [
              "rp486-workflow-before"
            ],
            "visible_match_texts": [
              "rp486-workflow-before"
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:job_rp486_workflow_har_artifacts": true,
          "text:Network HAR": true,
          "text:rp486-workflow-resource": true,
          "text:No screenshots captured": false,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "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.rp484-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-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.rp484-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 content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifact... (1157 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(3)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 28s max, screenshots included Include in response: Console Logs Network HAR Example Workflows: Simple Screensho... (1271 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 content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON... (1211 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": 132
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-ready",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 17,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON... (1743 chars)",
            "target_index": 0,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".screenshots-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "rp486-workflow-before",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 22,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 23,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp486 workflow har console log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 24,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON... (1780 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 25,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 26,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp484-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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON... (1832 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 27,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-result-expanded",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-desktop-workflow-async-har-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-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": 1733,
        "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step types in docs Timeout: 1 minute 2 minutes (default) 3 minutes 5 minutes 10 minutes Max time before job stops Run Workflow Result Time: 1.0s Billed: ~33s Cost: ~$0.00458 Success Job ID job_rp486_workflow_har_artifacts rp486-workflow-before ▼ Console Output 1 log [LOG] rp486 workflow har console log ▼ Network HAR 1 requests 200 GET https://example.com/rp486-workflow-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"steps\": [ { \"goto\": \"https://example.com/rp486-workflow-har\" }, { \"screenshot\": \"rp486-workflow-before\" }, { \"waitForTimeout\": 100 }], \"sync\": false, \"timeout_sec\": 120 }' 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": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry.console-log": {
            "count": 2,
            "visible_count": 2
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".screenshots-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "rp486-workflow-before"
            ],
            "visible_texts": [
              "rp486-workflow-before"
            ],
            "match_texts": [
              "rp486-workflow-before"
            ],
            "visible_match_texts": [
              "rp486-workflow-before"
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:job_rp486_workflow_har_artifacts": true,
          "text:Network HAR": true,
          "text:rp486-workflow-resource": true,
          "text:No screenshots captured": false,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "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.rp484-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-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.rp484-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 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 URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 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(3)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 28s max, screenshots included Include in response: Console Logs Network HAR Example Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click... (1172 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 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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1112 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": 132
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-ready",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 17,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1644 chars)",
            "target_index": 0,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".screenshots-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "rp486-workflow-before",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 22,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 23,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp486 workflow har console log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 24,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1681 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 25,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 26,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1733 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 27,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-result-expanded",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-phone-workflow-async-har-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-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": 1733,
        "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step types in docs Timeout: 1 minute 2 minutes (default) 3 minutes 5 minutes 10 minutes Max time before job stops Run Workflow Result Time: 1.0s Billed: ~33s Cost: ~$0.00458 Success Job ID job_rp486_workflow_har_artifacts rp486-workflow-before ▼ Console Output 1 log [LOG] rp486 workflow har console log ▼ Network HAR 1 requests 200 GET https://example.com/rp486-workflow-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"steps\": [ { \"goto\": \"https://example.com/rp486-workflow-har\" }, { \"screenshot\": \"rp486-workflow-before\" }, { \"waitForTimeout\": 100 }], \"sync\": false, \"timeout_sec\": 120 }' 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": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry.console-log": {
            "count": 2,
            "visible_count": 2
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".screenshots-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "rp486-workflow-before"
            ],
            "visible_texts": [
              "rp486-workflow-before"
            ],
            "match_texts": [
              "rp486-workflow-before"
            ],
            "visible_match_texts": [
              "rp486-workflow-before"
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:job_rp486_workflow_har_artifacts": true,
          "text:Network HAR": true,
          "text:rp486-workflow-resource": true,
          "text:No screenshots captured": false,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "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.rp484-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-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.rp484-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 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 URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 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(3)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 28s max, screenshots included Include in response: Console Logs Network HAR Example Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click... (1172 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 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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1112 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": 132
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-ready",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 17,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1644 chars)",
            "target_index": 0,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".screenshots-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "rp486-workflow-before",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 22,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 23,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp486 workflow har console log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 24,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1681 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 25,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 26,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1733 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 27,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-result-expanded",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-mini-workflow-async-har-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-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": 1733,
        "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step types in docs Timeout: 1 minute 2 minutes (default) 3 minutes 5 minutes 10 minutes Max time before job stops Run Workflow Result Time: 1.0s Billed: ~33s Cost: ~$0.00458 Success Job ID job_rp486_workflow_har_artifacts rp486-workflow-before ▼ Console Output 1 log [LOG] rp486 workflow har console log ▼ Network HAR 1 requests 200 GET https://example.com/rp486-workflow-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"steps\": [ { \"goto\": \"https://example.com/rp486-workflow-har\" }, { \"screenshot\": \"rp486-workflow-before\" }, { \"waitForTimeout\": 100 }], \"sync\": false, \"timeout_sec\": 120 }' 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": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 1,
            "visible_count": 1
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry.console-log": {
            "count": 2,
            "visible_count": 2
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".screenshots-section": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "rp486-workflow-before"
            ],
            "visible_texts": [
              "rp486-workflow-before"
            ],
            "match_texts": [
              "rp486-workflow-before"
            ],
            "visible_match_texts": [
              "rp486-workflow-before"
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp486 workflow har console log",
              "200 GET https://example.com/rp486-workflow-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Success": true,
          "text:job_rp486_workflow_har_artifacts": true,
          "text:Network HAR": true,
          "text:rp486-workflow-resource": true,
          "text:No screenshots captured": false,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "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.rp484-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp484-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.rp484-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 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 URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 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(3)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 28s max, screenshots included Include in response: Console Logs Network HAR Example Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click... (1172 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 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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1112 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": 132
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-ready",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Workflow"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 17,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1644 chars)",
            "target_index": 0,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 18,
            "selector": ".screenshots-section",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "rp486-workflow-before",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 22,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 23,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp486 workflow har console log",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 24,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1681 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 25,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 26,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "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 Workflows: Simple Screenshot Multi-Page Flow Pagination Flow Form Fill JSON Steps: JSON array of steps. Available: goto, click, fill, screenshot, waitFor, waitForUrl, etc. See all step t... (1733 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 27,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "workflow-async-har-result-expanded",
            "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-ipad-workflow-async-har-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v486-playground-async-workflow-har-artifact-ipad"
      }
    ],
    "console": {
      "events": [],
      "fatal_count": 0
    },
    "page_errors": [],
    "dialogs": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "playground-workflow-v486-submit-har-artifacts",
        "response_label": "playground-workflow-v486-submit-har-artifacts",
        "hit_index": 0,
        "response_index": null,
        "response_selection": 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": 154,
        "request_body_sample": "{\"steps\":[{\"goto\":\"https://example.com/rp486-workflow-har\"},{\"screenshot\":\"rp486-workflow-before\"},{\"waitForTimeout\":100}],\"timeout_sec\":120,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-explicit-artifacts-files-har",
        "response_label": "playground-workflow-v486-explicit-artifacts-files-har",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp486_workflow_har_artifacts/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-submit-har-artifacts",
        "response_label": "playground-workflow-v486-submit-har-artifacts",
        "hit_index": 1,
        "response_index": null,
        "response_selection": 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": 154,
        "request_body_sample": "{\"steps\":[{\"goto\":\"https://example.com/rp486-workflow-har\"},{\"screenshot\":\"rp486-workflow-before\"},{\"waitForTimeout\":100}],\"timeout_sec\":120,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-explicit-artifacts-files-har",
        "response_label": "playground-workflow-v486-explicit-artifacts-files-har",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp486_workflow_har_artifacts/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-submit-har-artifacts",
        "response_label": "playground-workflow-v486-submit-har-artifacts",
        "hit_index": 2,
        "response_index": null,
        "response_selection": 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": 154,
        "request_body_sample": "{\"steps\":[{\"goto\":\"https://example.com/rp486-workflow-har\"},{\"screenshot\":\"rp486-workflow-before\"},{\"waitForTimeout\":100}],\"timeout_sec\":120,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-explicit-artifacts-files-har",
        "response_label": "playground-workflow-v486-explicit-artifacts-files-har",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp486_workflow_har_artifacts/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-submit-har-artifacts",
        "response_label": "playground-workflow-v486-submit-har-artifacts",
        "hit_index": 3,
        "response_index": null,
        "response_selection": 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": 154,
        "request_body_sample": "{\"steps\":[{\"goto\":\"https://example.com/rp486-workflow-har\"},{\"screenshot\":\"rp486-workflow-before\"},{\"waitForTimeout\":100}],\"timeout_sec\":120,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-workflow-v486-explicit-artifacts-files-har",
        "response_label": "playground-workflow-v486-explicit-artifacts-files-har",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp486_workflow_har_artifacts/custom-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": []
        }
      ],
      "http_status": [],
      "link_status": [],
      "route_inventory": [],
      "network_mock_count": 3,
      "network_mock_hit_count": 8,
      "dialog_count": 0,
      "dialog_accept_count": 0,
      "dialog_dismiss_count": 0
    }
  },
  "riddle": {
    "job_id": "job_3fc1124e",
    "status": "completed",
    "terminal": true
  }
}
