{ "openapi": "3.1.0", "info": { "title": "Pry", "description": "Pry open any website. Web scraping + browser automation + document parsing. Self-hosted, free, better than Firecrawl.", "version": "3.0.0" }, "paths": { "/v1/auth/credentials": { "get": { "tags": [ "Auth" ], "summary": "List stored credentials", "description": "List all stored credentials (without exposing secrets).", "operationId": "list_credentials_endpoint_v1_auth_credentials_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Credentials Endpoint V1 Auth Credentials Get" } } } } } }, "post": { "tags": [ "Auth" ], "summary": "Store credentials in the vault", "description": "Store credentials in the encrypted vault for authenticated scraping.\n\nCredential types: password, api_key, cookie, token, sso", "operationId": "store_credentials_v1_auth_credentials_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_store_credentials_v1_auth_credentials_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Store Credentials V1 Auth Credentials Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/auth/credentials/{credential_id}": { "delete": { "tags": [ "Auth" ], "summary": "Delete stored credentials", "description": "Delete stored credentials from the vault.", "operationId": "delete_credentials_endpoint_v1_auth_credentials__credential_id__delete", "parameters": [ { "name": "credential_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Credential Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Delete Credentials Endpoint V1 Auth Credentials Credential Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/auth/sso": { "post": { "tags": [ "Auth" ], "summary": "Generate SSO login script", "description": "Generate a browser automation script for SSO login.\n\nSupports: okta, azure_ad, google_workspace, onelogin", "operationId": "generate_sso_v1_auth_sso_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_generate_sso_v1_auth_sso_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Generate Sso V1 Auth Sso Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/auth/captcha": { "post": { "tags": [ "Auth" ], "summary": "Solve a CAPTCHA using third-party service", "description": "Solve a CAPTCHA using Capsolver or 2Captcha.\n\nProvide either:\n- image_base64: Base64-encoded CAPTCHA image\n- site_key + page_url: For reCAPTCHA v2", "operationId": "solve_captcha_endpoint_v1_auth_captcha_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_solve_captcha_endpoint_v1_auth_captcha_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Solve Captcha Endpoint V1 Auth Captcha Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/auth/session/health": { "post": { "tags": [ "Auth" ], "summary": "Check authenticated session health", "description": "Check the health of an authenticated session.\n\nReports cookie validity, session age, and whether re-auth is needed.", "operationId": "check_session_v1_auth_session_health_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Check Session V1 Auth Session Health Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health": { "get": { "tags": [ "Health" ], "summary": "Full health check with dependency status", "description": "Comprehensive health check \u2014 probes Ollama, FlareSolverr, Redis.", "operationId": "health_check_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/live": { "get": { "tags": [ "Health" ], "summary": "Kubernetes liveness probe", "description": "Simple liveness \u2014 always returns 200 if the process is running.", "operationId": "live_live_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Live Live Get" } } } } } } }, "/ready": { "get": { "tags": [ "Health" ], "summary": "Kubernetes readiness probe", "description": "Readiness \u2014 checks critical dependencies.", "operationId": "ready_ready_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/scrape": { "post": { "tags": [ "Scraping" ], "summary": "Scrape a single URL", "description": "Scrape a URL. Auto-bypasses Cloudflare. Returns markdown or JSON.", "operationId": "scrape_v1_scrape_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScrapeRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Scrape V1 Scrape Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/detect-block": { "post": { "tags": [ "Scraping" ], "summary": "Detect if a site is blocking the scraper", "description": "Detect what kind of anti-bot protection a site is using.\n\nReturns detection tier, vendor (Cloudflare/DataDome/etc.), and confidence.\nUseful for debugging scraping issues.", "operationId": "detect_block_v1_detect_block_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Detect Block V1 Detect Block Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/capture/lazy": { "post": { "tags": [ "Scraping" ], "summary": "Detect and handle lazy-loaded content", "description": "Detect lazy loading and infinite scroll patterns on a page.\n\nOptionally generate JS to auto-scroll and load all content.", "operationId": "detect_lazy_content_v1_capture_lazy_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_detect_lazy_content_v1_capture_lazy_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Detect Lazy Content V1 Capture Lazy Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/crawl": { "post": { "tags": [ "Scraping" ], "summary": "Crawl multiple pages from a URL", "description": "Crawl multiple pages from a URL. Supports async webhooks.", "operationId": "crawl_v1_crawl_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Crawl V1 Crawl Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/map": { "post": { "tags": [ "Scraping" ], "summary": "Discover URLs on a site", "description": "Discover URLs on a site.", "operationId": "map_pages_v1_map_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MapRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Map Pages V1 Map Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/batch": { "post": { "tags": [ "Scraping" ], "summary": "Scrape multiple URLs in parallel", "description": "Scrape multiple URLs in parallel. Firecrawl charges extra for batch.", "operationId": "batch_scrape_v1_batch_post", "parameters": [ { "name": "timeout", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Timeout" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Urls" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Batch Scrape V1 Batch Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/templates": { "get": { "tags": [ "Templates" ], "summary": "List all pre-built scraper templates", "description": "List all available pre-built scraper templates.\n\nTemplates are one-click extractors for popular websites:\nAmazon, Walmart, Target, Best Buy, LinkedIn, Indeed, GitHub, etc.", "operationId": "list_templates_endpoint_v1_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Templates Endpoint V1 Templates Get" } } } } } } }, "/v1/templates/{template_id}": { "get": { "tags": [ "Templates" ], "summary": "Get a scraper template", "description": "Get a specific scraper template with full schema details.", "operationId": "get_template_endpoint_v1_templates__template_id__get", "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Template Endpoint V1 Templates Template Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/templates/execute": { "post": { "tags": [ "Templates" ], "summary": "Execute a scraper template against a URL", "description": "Execute a pre-built scraper template against any URL.\n\nExample: use \"amazon_product\" template with an Amazon product URL\nto get structured title, price, rating, description, etc.\n\nTemplates auto-detect the page structure using pre-configured CSS selectors.", "operationId": "execute_template_endpoint_v1_templates_execute_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_execute_template_endpoint_v1_templates_execute_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Execute Template Endpoint V1 Templates Execute Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/templates/batch": { "post": { "tags": [ "Templates" ], "summary": "Execute multiple templates/URLs in parallel", "description": "Execute multiple scraper templates against multiple URLs in parallel.\n\nRuns up to 20 template executions concurrently. Each result preserves the\noriginal template_id and url for correlation.", "operationId": "batch_execute_v1_templates_batch_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BatchItem" }, "type": "array", "title": "Body" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Batch Execute V1 Templates Batch Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/ai/gpt-manifest": { "get": { "tags": [ "AI", "AI" ], "summary": "Get GPT Action manifest for ChatGPT", "description": "Get the GPT Action manifest for ChatGPT integration.\n\nAdd this to your GPT configuration in ChatGPT to give it\nweb scraping capabilities through Pry.", "operationId": "get_gpt_manifest_v1_ai_gpt_manifest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/ai/mcp-config": { "get": { "tags": [ "AI", "AI" ], "summary": "Get MCP server config for Claude/Cursor", "description": "Get the MCP server configuration for Claude/Cursor.\n\nAdd this to your AI tool's MCP configuration file to let\nClaude and Cursor scrape the web through Pry.", "operationId": "get_mcp_config_v1_ai_mcp_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/tls/impersonate": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Fetch a URL with TLS fingerprint impersonation", "description": "Fetch a URL while impersonating a real browser's TLS fingerprint.\nBypasses JA3/JA4 fingerprinting that blocks 80%+ of bot traffic.", "operationId": "tls_impersonate_v1_tls_impersonate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_tls_impersonate_v1_tls_impersonate_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Tls Impersonate V1 Tls Impersonate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tls/rotate": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Try multiple browser fingerprints until one succeeds", "description": "Try multiple browser fingerprints until one succeeds (anti-fingerprint rotation).", "operationId": "tls_rotate_v1_tls_rotate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_tls_rotate_v1_tls_rotate_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Tls Rotate V1 Tls Rotate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/camoufox/fetch": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Fetch with Camoufox anti-detection Firefox", "description": "Fetch a URL using Camoufox (Firefox anti-detection browser).\n\nCamoufox patches Firefox at the source level for maximum stealth.\nThis is more effective than Playwright for sites with advanced\nfingerprinting (DataDome, PerimeterX, advanced Cloudflare).", "operationId": "camoufox_fetch_v1_camoufox_fetch_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_camoufox_fetch_v1_camoufox_fetch_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Camoufox Fetch V1 Camoufox Fetch Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/graphql/discover": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Discover GraphQL endpoints for a site", "description": "Auto-discover GraphQL endpoints for a website.", "operationId": "graphql_discover_v1_graphql_discover_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Base Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Graphql Discover V1 Graphql Discover Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/graphql/introspect": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Run GraphQL introspection on an endpoint", "description": "Run GraphQL introspection query against a discovered endpoint.", "operationId": "graphql_introspect_v1_graphql_introspect_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Endpoint" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Graphql Introspect V1 Graphql Introspect Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/graphql/query": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Execute a GraphQL query", "description": "Execute a GraphQL query against a discovered endpoint.", "operationId": "graphql_query_v1_graphql_query_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_graphql_query_v1_graphql_query_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Graphql Query V1 Graphql Query Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/schema/extract": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Extract Schema.org structured data from a page", "description": "Extract Schema.org/JSON-LD/Microdata/RDFa structured data from a URL.\nMost modern sites embed structured data \u2014 extract it directly instead of\nscraping HTML. 100x faster and more accurate.", "operationId": "schema_extract_v1_schema_extract_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Schema Extract V1 Schema Extract Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/schema/extract-html": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Extract Schema.org structured data from raw HTML", "description": "Extract Schema.org/JSON-LD/Microdata/RDFa from a raw HTML string.\nUseful when you've already fetched the page and want to extract structured data.", "operationId": "schema_extract_html_v1_schema_extract_html_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Html" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Schema Extract Html V1 Schema Extract Html Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/ws/scrape": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Scrape data from a WebSocket endpoint", "description": "Connect to a WebSocket and capture the data stream.\nUseful for SPAs and real-time apps that load data via WebSocket.", "operationId": "ws_scrape_v1_ws_scrape_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_ws_scrape_v1_ws_scrape_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Ws Scrape V1 Ws Scrape Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/sse/scrape": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Scrape data from a Server-Sent Events endpoint", "description": "Connect to a Server-Sent Events endpoint and capture events.", "operationId": "sse_scrape_v1_sse_scrape_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_sse_scrape_v1_sse_scrape_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Sse Scrape V1 Sse Scrape Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/cookies/warm": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Warm cookies for a domain by browsing legitimate pages", "description": "Pre-age cookies for a domain to bypass anti-bot detection.\nVisits legitimate pages first to build realistic browsing history.", "operationId": "warm_cookies_v1_cookies_warm_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_warm_cookies_v1_cookies_warm_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Warm Cookies V1 Cookies Warm Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/cookies/sessions": { "get": { "tags": [ "Advanced", "Advanced" ], "summary": "List all warmed cookie sessions", "operationId": "list_cookie_sessions_v1_cookies_sessions_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Cookie Sessions V1 Cookies Sessions Get" } } } } } } }, "/v1/pdf/extract": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Extract tables and text from a PDF", "description": "Download a PDF and extract structured tables and text.", "operationId": "extract_pdf_v1_pdf_extract_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_extract_pdf_v1_pdf_extract_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Pdf V1 Pdf Extract Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/ocr/extract": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Extract text from an image using Tesseract", "description": "Extract text from an image via URL or base64.", "operationId": "ocr_extract_v1_ocr_extract_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_ocr_extract_v1_ocr_extract_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Ocr Extract V1 Ocr Extract Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/dedup/check": { "post": { "tags": [ "Advanced", "Advanced" ], "summary": "Check if content is a near-duplicate using SimHash", "description": "Check if text is a near-duplicate of recently seen content using SimHash.", "operationId": "check_duplicate_v1_dedup_check_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_check_duplicate_v1_dedup_check_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Check Duplicate V1 Dedup Check Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/behavior/simulate": { "get": { "tags": [ "Advanced", "Advanced" ], "summary": "Generate human-like behavior patterns for testing", "description": "Generate realistic human behavior patterns (mouse path, scroll, typing, etc.)", "operationId": "get_behavior_simulation_v1_behavior_simulate_get", "parameters": [ { "name": "action", "in": "query", "required": false, "schema": { "type": "string", "default": "mouse", "title": "Action" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Behavior Simulation V1 Behavior Simulate Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agency/create": { "post": { "tags": [ "Agency", "Agency" ], "summary": "Create a white-label agency profile", "description": "Create a white-label agency profile for reselling Pry.\n\nAgencies get:\n- Custom branding (colors, logo, domain)\n- Client management with sub-accounts\n- Usage analytics and quota management\n- API key management for each client", "operationId": "create_agency_endpoint_v1_agency_create_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_create_agency_endpoint_v1_agency_create_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Create Agency Endpoint V1 Agency Create Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agency/{agency_id}": { "get": { "tags": [ "Agency", "Agency" ], "summary": "Get agency profile", "description": "Get agency profile details.", "operationId": "get_agency_endpoint_v1_agency__agency_id__get", "parameters": [ { "name": "agency_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agency Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Agency Endpoint V1 Agency Agency Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agency/{agency_id}/branding": { "put": { "tags": [ "Agency", "Agency" ], "summary": "Update agency branding", "description": "Update white-label branding for an agency.", "operationId": "update_branding_v1_agency__agency_id__branding_put", "parameters": [ { "name": "agency_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agency Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_update_branding_v1_agency__agency_id__branding_put" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Update Branding V1 Agency Agency Id Branding Put" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agency/{agency_id}/clients": { "post": { "tags": [ "Agency", "Agency" ], "summary": "Create a client sub-account", "description": "Create a client sub-account under an agency.\n\nEach client gets their own API key and usage quota.", "operationId": "create_client_endpoint_v1_agency__agency_id__clients_post", "parameters": [ { "name": "agency_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agency Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_create_client_endpoint_v1_agency__agency_id__clients_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Create Client Endpoint V1 Agency Agency Id Clients Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Agency", "Agency" ], "summary": "List agency clients", "description": "List all clients under an agency.", "operationId": "list_clients_endpoint_v1_agency__agency_id__clients_get", "parameters": [ { "name": "agency_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agency Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Clients Endpoint V1 Agency Agency Id Clients Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agency/{agency_id}/analytics": { "get": { "tags": [ "Agency", "Agency" ], "summary": "Get agency usage analytics", "description": "Get aggregate usage analytics for an agency.", "operationId": "get_analytics_v1_agency__agency_id__analytics_get", "parameters": [ { "name": "agency_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agency Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Analytics V1 Agency Agency Id Analytics Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/client/{client_id}/quota": { "get": { "tags": [ "Agency", "Agency" ], "summary": "Check client quota usage", "description": "Check a client's current quota usage and remaining capacity.", "operationId": "check_quota_v1_client__client_id__quota_get", "parameters": [ { "name": "client_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Client Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Check Quota V1 Client Client Id Quota Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/alert/send": { "post": { "tags": [ "Alerts", "Alerts" ], "summary": "Send an alert to any channel", "description": "Send an alert to Slack, Discord, Teams, Telegram, SMS, or Email.\n\nConfig varies by channel:\n- slack: {\"webhook_url\": \"...\"}\n- discord: {\"webhook_url\": \"...\"}\n- teams: {\"webhook_url\": \"...\"}\n- telegram: {\"bot_token\": \"...\", \"chat_id\": \"...\"}\n- sms: {\"phone\": \"+1234567890\", \"twilio_sid\": \"...\", \"twilio_token\": \"...\", \"twilio_from\": \"...\"}\n- email: {\"recipient\": \"user@example.com\", \"smtp_host\": \"...\", \"smtp_user\": \"...\"}", "operationId": "send_alert_endpoint_v1_alert_send_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_send_alert_endpoint_v1_alert_send_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Send Alert Endpoint V1 Alert Send Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/alert/channels": { "get": { "tags": [ "Alerts", "Alerts" ], "summary": "List supported alert channels", "description": "List all supported alert channels and their config requirements.", "operationId": "list_channels_v1_alert_channels_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Channels V1 Alert Channels Get" } } } } } } }, "/v1/compare": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "Compare content of two URLs", "description": "Scrape two URLs and compare their content. Shows additions, deletions, changes.", "operationId": "compare_v1_compare_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_compare_v1_compare_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Compare V1 Compare Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/watch": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "Watch a page for changes", "description": "Watch a page for changes. Accepts a webhook URL for notification.\nFirst call registers the watch, subsequent calls compare and notify.\nFirecrawl charges $99/mo for this feature.", "operationId": "watch_page_v1_watch_post", "parameters": [ { "name": "interval", "in": "query", "required": false, "schema": { "type": "integer", "default": 3600, "title": "Interval" } }, { "name": "selector", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Selector" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_watch_page_v1_watch_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Watch Page V1 Watch Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/summarize": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "AI summarize scraped content", "description": "Scrape + AI summarize using local Ollama. Free, private.", "operationId": "summarize_v1_summarize_post", "parameters": [ { "name": "max_words", "in": "query", "required": false, "schema": { "type": "integer", "default": 100, "title": "Max Words" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Summarize V1 Summarize Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/diff": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "Track page changes over time", "description": "Track page changes over time. Returns diff from last scrape.", "operationId": "diff_v1_diff_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_diff_v1_diff_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Diff V1 Diff Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/categorize": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "AI-categorize scraped content", "description": "AI-categorize scraped content into topic tags.", "operationId": "categorize_v1_categorize_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Categorize V1 Categorize Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/suggest": { "post": { "tags": [ "Analysis", "Analysis" ], "summary": "AI-suggest schema fields for a URL", "operationId": "suggest_schema_v1_suggest_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Suggest Schema V1 Suggest Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/automate": { "post": { "tags": [ "Automation", "Automation" ], "summary": "Execute browser automation steps", "description": "Execute browser automation steps. Sessions persist for login flows.", "operationId": "automate_v1_automate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AutomateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Automate V1 Automate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/screenshot": { "post": { "tags": [ "Automation", "Automation" ], "summary": "Take a screenshot of a URL", "description": "Take a screenshot of a URL. Returns base64 PNG.", "operationId": "screenshot_v1_screenshot_post", "parameters": [ { "name": "session_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_screenshot_v1_screenshot_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Screenshot V1 Screenshot Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/batch-file": { "post": { "tags": [ "Batch", "Batch" ], "summary": "Batch scrape URLs from a file with templates", "operationId": "batch_from_file_v1_batch_file_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BatchFileRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Batch From File V1 Batch File Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/crm/sync": { "post": { "tags": [ "CRM", "CRM" ], "summary": "Sync scraped data to CRM", "description": "Sync scraped data to your CRM.\n\nPlatforms:\n- salesforce: credentials={\"instance_url\": \"...\", \"access_token\": \"...\"}\n- hubspot: credentials={\"api_key\": \"...\"}\n- pipedrive: credentials={\"api_token\": \"...\", \"domain\": \"...\"}\n- close: credentials={\"api_key\": \"...\"}\n\nObject types vary by platform:\n- Salesforce: Lead, Contact, Account, Opportunity\n- HubSpot: contacts, companies, deals\n- Pipedrive: person, organization, deal, lead\n- Close: lead, contact", "operationId": "sync_crm_v1_crm_sync_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_sync_crm_v1_crm_sync_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Sync Crm V1 Crm Sync Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/crm/platforms": { "get": { "tags": [ "CRM", "CRM" ], "summary": "List supported CRM platforms", "description": "List supported CRM platforms and their credential requirements.", "operationId": "list_crm_platforms_v1_crm_platforms_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Crm Platforms V1 Crm Platforms Get" } } } } } } }, "/v1/breaker/status": { "post": { "tags": [ "Circuit Breaker", "Circuit Breaker" ], "summary": "Get circuit breaker status", "operationId": "breaker_status_v1_breaker_status_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Breaker Status V1 Breaker Status Post" } } } } } } }, "/v1/breaker/reset": { "post": { "tags": [ "Circuit Breaker", "Circuit Breaker" ], "summary": "Reset circuit breaker for a domain", "operationId": "breaker_reset_v1_breaker_reset_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Domain", "default": "" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Breaker Reset V1 Breaker Reset Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/commerce/sync": { "post": { "tags": [ "Commerce", "Commerce" ], "summary": "Sync products to WooCommerce or Shopify", "description": "Sync scraped products to your e-commerce platform.\n\nPlatforms:\n- woocommerce: credentials = {\"wp_url\": \"...\", \"consumer_key\": \"...\", \"consumer_secret\": \"...\"}\n- shopify: credentials = {\"shop_url\": \"...\", \"access_token\": \"...\"}\n\nProducts are imported as drafts for review before publishing.", "operationId": "sync_commerce_v1_commerce_sync_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_sync_commerce_v1_commerce_sync_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Sync Commerce V1 Commerce Sync Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/commerce/platforms": { "get": { "tags": [ "Commerce", "Commerce" ], "summary": "List supported commerce platforms", "description": "List supported e-commerce platforms and their credential requirements.", "operationId": "list_commerce_platforms_v1_commerce_platforms_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Commerce Platforms V1 Commerce Platforms Get" } } } } } } }, "/v1/compliance/check": { "get": { "tags": [ "Compliance", "Compliance" ], "summary": "Get compliance check documentation", "description": "Get information about the compliance check endpoint.", "operationId": "compliance_docs_v1_compliance_check_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Compliance Docs V1 Compliance Check Get" } } } } } }, "post": { "tags": [ "Compliance", "Compliance" ], "summary": "Run full compliance check on a URL", "description": "Run a full legal compliance check on a target URL.\n\nAnalyzes:\n- robots.txt crawl permissions\n- Terms of Service classification (restrictive/permissive/moderate)\n- Jurisdiction detection (GDPR, CCPA, LGPD)\n- Sensitive data detection (PII, financial, health, contact)\n\nReturns a green/yellow/red risk score with recommendations.", "operationId": "compliance_check_v1_compliance_check_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Compliance Check V1 Compliance Check Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/config": { "get": { "tags": [ "Config", "Config" ], "summary": "Get current Pry configuration", "description": "Get current Pry configuration.", "operationId": "get_config_v1_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Config V1 Config Get" } } } } } }, "post": { "tags": [ "Config", "Config" ], "summary": "Update Pry configuration at runtime", "description": "Update Pry configuration at runtime.", "operationId": "update_config_v1_config_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Updates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Update Config V1 Config Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/config/profile/tor": { "post": { "tags": [ "Config", "Config" ], "summary": "Enable Tor routing for all requests", "description": "Enable Tor routing for all requests.", "operationId": "enable_tor_v1_config_profile_tor_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Enable Tor V1 Config Profile Tor Post" } } } } } } }, "/v1/costing/dashboard": { "get": { "tags": [ "Costing", "Costing" ], "summary": "Get cost analytics dashboard", "description": "Get the full cost analytics dashboard.\n\nIncludes:\n- Monthly spend breakdown by operation type\n- Projected end-of-month cost\n- Daily spend for last 7 days\n- Cache efficiency metrics\n- Smart schedule recommendations", "operationId": "cost_dashboard_v1_costing_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Cost Dashboard V1 Costing Dashboard Get" } } } } } } }, "/v1/costing/usage": { "get": { "tags": [ "Costing", "Costing" ], "summary": "Get usage breakdown", "description": "Get detailed usage breakdown for a specific month.", "operationId": "cost_usage_v1_costing_usage_get", "parameters": [ { "name": "year", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Year" } }, { "name": "month", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Month" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Cost Usage V1 Costing Usage Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/costing/record": { "post": { "tags": [ "Costing", "Costing" ], "summary": "Record a usage event", "description": "Record a usage event for cost tracking.\n\nOperations: scrape_direct, scrape_flaresolverr, scrape_playwright,\ncrawl_page, llm_call, vision_call, extraction_css, bandwidth_mb", "operationId": "record_usage_endpoint_v1_costing_record_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_usage_endpoint_v1_costing_record_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Record Usage Endpoint V1 Costing Record Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/costing/costs": { "post": { "tags": [ "Costing", "Costing" ], "summary": "Update per-operation cost table", "description": "Update the per-operation cost table with custom prices.", "operationId": "update_costs_v1_costing_costs_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Costs" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Update Costs V1 Costing Costs Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/dashboard": { "get": { "tags": [ "Dashboard", "Dashboard" ], "summary": "Pry health and performance dashboard", "operationId": "dashboard_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/email/scrape": { "post": { "tags": [ "Email", "Email" ], "summary": "Extract data from an email (subject + body)", "description": "Extract structured data from an email subject and body.\n\nAuto-classifies as: order_confirmation, invoice, receipt,\nshipping_notification, subscription, or other.\n\nExtracts: order numbers, amounts, tracking numbers, dates, addresses.", "operationId": "scrape_email_v1_email_scrape_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_scrape_email_v1_email_scrape_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Scrape Email V1 Email Scrape Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/email/gmail": { "post": { "tags": [ "Email", "Email" ], "summary": "Fetch and extract data from Gmail inbox", "description": "Connect to Gmail and extract structured data from emails.\n\nRequires a Gmail OAuth2 access token with scope:\nhttps://www.googleapis.com/auth/gmail.readonly\n\nExtracts order confirmations, invoices, receipts, shipping notifications.", "operationId": "fetch_gmail_v1_email_gmail_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_fetch_gmail_v1_email_gmail_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Fetch Gmail V1 Email Gmail Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/email/outlook": { "post": { "tags": [ "Email", "Email" ], "summary": "Fetch and extract data from Outlook inbox", "description": "Connect to Outlook/Office 365 and extract structured data from emails.\n\nRequires a Microsoft Graph OAuth2 access token with scope:\nhttps://graph.microsoft.com/Mail.Read\n\nExtracts order confirmations, invoices, receipts, shipping notifications.", "operationId": "fetch_outlook_v1_email_outlook_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_fetch_outlook_v1_email_outlook_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Fetch Outlook V1 Email Outlook Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/enrich": { "post": { "tags": [ "Enrichment", "Enrichment" ], "summary": "Enrich scraped data with company info, tech stack, social profiles", "description": "Enrich a URL with supplemental business intelligence.\n\nReturns:\n- Tech stack detection (CMS, framework, CDN, analytics, payments)\n- Social media profiles (Twitter, LinkedIn, Facebook, Instagram, GitHub, etc.)\n- Company information (email, phone, address, founded year, team size)", "operationId": "enrich_data_v1_enrich_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_enrich_data_v1_enrich_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Enrich Data V1 Enrich Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/enrich/tech-stack": { "post": { "tags": [ "Enrichment", "Enrichment" ], "summary": "Detect technologies used on a website", "description": "Detect what technologies a website is built with.\n\nDetects: CMS (WordPress, Shopify, Wix), frameworks (Next.js, Django, Rails),\nfrontend (React, Vue, Angular), CDN (Cloudflare, Fastly), analytics (GA, Hotjar),\npayments (Stripe, PayPal).", "operationId": "detect_tech_v1_enrich_tech_stack_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Detect Tech V1 Enrich Tech Stack Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/run": { "post": { "tags": [ "Execute", "Execute" ], "summary": "Execute a Pryfile", "operationId": "run_pryfile_v1_run_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Path", "default": "pry.yml" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Pryfile V1 Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/export": { "post": { "tags": [ "Export", "Export" ], "summary": "Export scraped content in multiple formats", "description": "Export scraped content in multiple formats: json, csv, txt, rss.\nFirecrawl only does markdown.", "operationId": "export_data_v1_export_post", "parameters": [ { "name": "format", "in": "query", "required": false, "schema": { "type": "string", "default": "json", "title": "Format" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Export Data V1 Export Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/extract-table": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Extract HTML tables as structured data", "description": "Extract HTML tables from a page as structured data.\nFirecrawl doesn't support table extraction at all.", "operationId": "extract_table_v1_extract_table_post", "parameters": [ { "name": "table_index", "in": "query", "required": false, "schema": { "type": "integer", "default": 0, "title": "Table Index" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Extract Table V1 Extract Table Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/links": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Analyze links on a page", "description": "Analyze all links on a page \u2014 internal, external, broken, social.\nFirecrawl only has basic map functionality.", "operationId": "analyze_links_v1_links_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Analyze Links V1 Links Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/seo": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "SEO analysis of a page", "description": "SEO analysis of a page: title, description, headings, images, keywords, readability.\nFirecrawl has zero SEO features.", "operationId": "analyze_seo_v1_seo_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Analyze Seo V1 Seo Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/schema": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Extract Schema.org/JSON-LD structured data", "description": "Extract Schema.org/JSON-LD structured data from a page.", "operationId": "extract_schema_v1_schema_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Schema V1 Schema Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/emails": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Find email addresses on a page", "description": "Find all email addresses on a page.", "operationId": "find_emails_v1_emails_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Find Emails V1 Emails Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/extract": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Extract structured fields from a URL", "operationId": "extract_stable_v1_extract_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Stable V1 Extract Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/extract/css": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Extract structured data with CSS selectors (no LLM)", "description": "Extract structured JSON from a URL using CSS selector schema.\n\nSchema format:\n{\n \"name\": \"products\",\n \"base_selector\": \".product-card\",\n \"fields\": [\n {\"name\": \"title\", \"selector\": \"h3\", \"type\": \"text\"},\n {\"name\": \"price\", \"selector\": \".price\", \"type\": \"text\", \"transform\": \"float\"},\n {\"name\": \"link\", \"selector\": \"a\", \"type\": \"attribute\", \"attribute\": \"href\"},\n {\"name\": \"in_stock\", \"selector\": \".stock\", \"type\": \"exists\"},\n ]\n}", "operationId": "extract_css_v1_extract_css_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_extract_css_v1_extract_css_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Css V1 Extract Css Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/extract/llm": { "post": { "tags": [ "Extraction", "Extraction" ], "summary": "Extract with LLM + chunking strategies", "description": "Extract structured data using LLM with intelligent chunking.\n\nChunks content by strategy (topic/sentence/regex), optionally filters\nby relevance to query, then extracts from each chunk.", "operationId": "extract_llm_v1_extract_llm_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_extract_llm_v1_extract_llm_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Llm V1 Extract Llm Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/freshness/check": { "post": { "tags": [ "Freshness", "Freshness" ], "summary": "Check if content has changed since last scrape", "description": "Check if content has changed since the last scrape.\n\nUses content fingerprinting (SHA256) to detect changes.\nIf no content is provided, does a quick HEAD check instead.", "operationId": "freshness_check_v1_freshness_check_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_freshness_check_v1_freshness_check_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Freshness Check V1 Freshness Check Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/freshness/frequency": { "post": { "tags": [ "Freshness", "Freshness" ], "summary": "Get adaptive scrape frequency recommendation", "description": "Get an adaptive scrape frequency recommendation based on content volatility.\n\nVolatile pages (frequent changes) get shorter intervals.\nStable pages get longer intervals to save costs.", "operationId": "freshness_frequency_v1_freshness_frequency_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_freshness_frequency_v1_freshness_frequency_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Freshness Frequency V1 Freshness Frequency Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/freshness/dashboard": { "get": { "tags": [ "Freshness", "Freshness" ], "summary": "Get content staleness dashboard", "description": "Get the content staleness dashboard.\n\nShows all tracked URLs, their last check time, age, and whether\nthey're stale (not checked in 24h).", "operationId": "freshness_dashboard_v1_freshness_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Freshness Dashboard V1 Freshness Dashboard Get" } } } } } } }, "/v1/gdpr/consent": { "post": { "tags": [ "GDPR", "GDPR" ], "summary": "Record user consent for data processing", "description": "Record a user's consent for data processing (GDPR Art. 7).\n\nStores: user hash, purpose, timestamp, IP, user agent.\nConsent expires after 365 days.", "operationId": "record_consent_endpoint_v1_gdpr_consent_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_consent_endpoint_v1_gdpr_consent_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Record Consent Endpoint V1 Gdpr Consent Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/gdpr/consent/{user_id}": { "get": { "tags": [ "GDPR", "GDPR" ], "summary": "Check user consent status", "description": "Check if a user has given valid consent for data processing.", "operationId": "check_consent_endpoint_v1_gdpr_consent__user_id__get", "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "title": "User Id" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "type": "string", "default": "data_collection", "title": "Purpose" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Check Consent Endpoint V1 Gdpr Consent User Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/gdpr/consent/revoke": { "post": { "tags": [ "GDPR", "GDPR" ], "summary": "Revoke user consent", "description": "Revoke a user's consent for a processing purpose (GDPR Art. 7(3)).", "operationId": "revoke_consent_endpoint_v1_gdpr_consent_revoke_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_revoke_consent_endpoint_v1_gdpr_consent_revoke_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Revoke Consent Endpoint V1 Gdpr Consent Revoke Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/gdpr/deletion/request": { "post": { "tags": [ "GDPR", "GDPR" ], "summary": "Request data deletion (right to erasure)", "description": "Request deletion of all data associated with a user (GDPR Art. 17).\n\nCreates a deletion request that can be executed immediately or\nafter a holding period.", "operationId": "request_deletion_endpoint_v1_gdpr_deletion_request_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_request_deletion_endpoint_v1_gdpr_deletion_request_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Request Deletion Endpoint V1 Gdpr Deletion Request Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/gdpr/deletion/execute": { "post": { "tags": [ "GDPR", "GDPR" ], "summary": "Execute data deletion request", "description": "Execute a pending deletion request, removing all user data.", "operationId": "execute_deletion_endpoint_v1_gdpr_deletion_execute_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Request Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Execute Deletion Endpoint V1 Gdpr Deletion Execute Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/gdpr/retention": { "get": { "tags": [ "GDPR", "GDPR" ], "summary": "Get data retention policy", "description": "Get the current data retention policy.", "operationId": "get_retention_policy_endpoint_v1_gdpr_retention_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Retention Policy Endpoint V1 Gdpr Retention Get" } } } } } } }, "/v1/gdpr/retention/apply": { "post": { "tags": [ "GDPR", "GDPR" ], "summary": "Apply retention policy to remove expired data", "description": "Apply the retention policy, removing all expired data.", "operationId": "apply_retention_v1_gdpr_retention_apply_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Apply Retention V1 Gdpr Retention Apply Post" } } } } } } }, "/v1/gdpr/audit": { "get": { "tags": [ "GDPR", "GDPR" ], "summary": "Get compliance audit log", "description": "Get the compliance audit log for the specified period.", "operationId": "get_audit_log_endpoint_v1_gdpr_audit_get", "parameters": [ { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "default": 7, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Audit Log Endpoint V1 Gdpr Audit Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/destinations": { "get": { "tags": [ "Integrations", "Integrations" ], "summary": "List supported data destinations", "description": "List all supported data destinations and their config requirements.", "operationId": "list_destinations_v1_destinations_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Destinations V1 Destinations Get" } } } } } } }, "/v1/destination/send": { "post": { "tags": [ "Integrations", "Integrations" ], "summary": "Send scraped data to a business destination", "description": "Send extracted data to a business destination in one click.\n\nDestinations:\n- slack: Send to Slack channel via webhook\n- googlesheets: Write to Google Sheets (requires credentials)\n- airtable: Write to Airtable base (requires API key)\n- email: Send via email (requires SMTP config)\n\nConfig varies by destination:\n- slack: {\"webhook_url\": \"https://hooks.slack.com/...\"}\n- googlesheets: {\"spreadsheet_id\": \"...\", \"credentials_json\": \"...\"}\n- airtable: {\"base_id\": \"...\", \"table_name\": \"Table 1\", \"api_key\": \"...\"}\n- email: {\"recipient\": \"user@example.com\", \"subject\": \"Data Export\"}", "operationId": "send_to_destination_v1_destination_send_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_send_to_destination_v1_destination_send_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Send To Destination V1 Destination Send Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/scrape-and-send": { "post": { "tags": [ "Integrations", "Integrations" ], "summary": "Scrape a URL and send to a destination", "description": "Scrape a URL and send the results to a business destination in one step.\n\nCombines /v1/scrape + /v1/destination/send into a single call.\nPerfect for non-technical users who just want data in their tools.", "operationId": "scrape_and_send_v1_scrape_and_send_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_scrape_and_send_v1_scrape_and_send_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Scrape And Send V1 Scrape And Send Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/intel/snapshot": { "post": { "tags": [ "Intelligence", "Intelligence" ], "summary": "Record a competitor data snapshot", "description": "Record a data snapshot for a competitor.\n\nSnapshots are stored with timestamps and used for trend analysis,\nanomaly detection, and report generation.", "operationId": "record_intel_snapshot_v1_intel_snapshot_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_intel_snapshot_v1_intel_snapshot_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Record Intel Snapshot V1 Intel Snapshot Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/intel/snapshots/{competitor_id}": { "get": { "tags": [ "Intelligence", "Intelligence" ], "summary": "Get competitor snapshots", "description": "Get historical snapshots for a competitor.", "operationId": "get_intel_snapshots_v1_intel_snapshots__competitor_id__get", "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 50, "title": "Limit" } }, { "name": "since_hours", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Since Hours" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Intel Snapshots V1 Intel Snapshots Competitor Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/intel/analyze": { "post": { "tags": [ "Intelligence", "Intelligence" ], "summary": "Analyze competitor field for anomalies", "description": "Analyze a specific field across a competitor's snapshots for anomalies.\n\nReturns statistics, z-score analysis, and anomaly detection.", "operationId": "analyze_field_v1_intel_analyze_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_analyze_field_v1_intel_analyze_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Analyze Field V1 Intel Analyze Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/intel/report": { "post": { "tags": [ "Intelligence", "Intelligence" ], "summary": "Generate a competitive intelligence report", "description": "Generate a competitive intelligence report for tracked competitors.\n\nAnalyzes changes over the specified period and returns a structured report\nwith a natural-language summary.", "operationId": "generate_report_v1_intel_report_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_generate_report_v1_intel_report_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Generate Report V1 Intel Report Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/job/{job_id}": { "get": { "tags": [ "Jobs", "Jobs" ], "summary": "Get async job status and result", "description": "Get async job status and result.", "operationId": "get_job_v1_job__job_id__get", "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Job V1 Job Job Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/jobs": { "get": { "tags": [ "Jobs", "Jobs" ], "summary": "List jobs in a Pryfile", "operationId": "list_jobs_v1_jobs_get", "parameters": [ { "name": "path", "in": "query", "required": false, "schema": { "type": "string", "default": "pry.yml", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Jobs V1 Jobs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/actors/create": { "post": { "tags": [ "Marketplace", "Marketplace" ], "summary": "Create a new actor", "description": "Create a new actor in the marketplace.", "operationId": "create_actor_v1_actors_create_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_create_actor_v1_actors_create_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Create Actor V1 Actors Create Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/actors": { "get": { "tags": [ "Marketplace", "Marketplace" ], "summary": "List actors in the marketplace", "description": "List actors. Filter by visibility (public/private) and tag.", "operationId": "list_actors_v1_actors_get", "parameters": [ { "name": "visibility", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Visibility" } }, { "name": "tag", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Tag" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Actors V1 Actors Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/actors/{actor_id}/run": { "post": { "tags": [ "Marketplace", "Marketplace" ], "summary": "Run an actor", "description": "Run an actor with the provided inputs.", "operationId": "run_actor_v1_actors__actor_id__run_post", "parameters": [ { "name": "actor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Actor Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "additionalProperties": true }, { "type": "null" } ], "title": "Inputs" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Run Actor V1 Actors Actor Id Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/monitor": { "post": { "tags": [ "Monitoring", "Monitoring" ], "summary": "Create a scheduled content monitor", "description": "Create a scheduled monitor that tracks content changes.\n\nArgs:\n name: Human-readable monitor name\n url: Target URL to monitor\n schedule_cron: Cron expression (default: every 6 hours)\n goal: Natural language goal for meaningful-change detection\n webhook: URL to notify on meaningful changes\n use_llm: Use LLM for change judging (slower but smarter)", "operationId": "create_monitor_endpoint_v1_monitor_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_create_monitor_endpoint_v1_monitor_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Create Monitor Endpoint V1 Monitor Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/monitor/run": { "post": { "tags": [ "Monitoring", "Monitoring" ], "summary": "Run a single monitor check", "description": "Execute a monitor check immediately (outside of schedule).", "operationId": "run_monitor_endpoint_v1_monitor_run_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Monitor Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Monitor Endpoint V1 Monitor Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/monitors": { "get": { "tags": [ "Monitoring", "Monitoring" ], "summary": "List all monitors", "description": "List all registered monitors.", "operationId": "list_monitors_endpoint_v1_monitors_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Monitors Endpoint V1 Monitors Get" } } } } } } }, "/v1/monitor/{monitor_id}": { "delete": { "tags": [ "Monitoring", "Monitoring" ], "summary": "Delete a monitor", "description": "Delete a monitor and its snapshots.", "operationId": "delete_monitor_endpoint_v1_monitor__monitor_id__delete", "parameters": [ { "name": "monitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Monitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Delete Monitor Endpoint V1 Monitor Monitor Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/monitor/check": { "post": { "tags": [ "Monitoring", "Monitoring" ], "summary": "Run all due monitors", "description": "Check all monitors and run any that are due based on their cron schedule.", "operationId": "run_due_monitors_v1_monitor_check_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Due Monitors V1 Monitor Check Post" } } } } } } }, "/v1/parse": { "post": { "tags": [ "Parsing", "Parsing" ], "summary": "Parse a document (PDF, DOCX, image, CSV, JSON)", "description": "Parse a document (PDF, DOCX, image, CSV, JSON) to text.", "operationId": "parse_document_v1_parse_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParseRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Parse Document V1 Parse Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/markdown": { "post": { "tags": [ "Parsing", "Parsing" ], "summary": "Generate markdown with content filtering strategies", "description": "Generate markdown with configurable content filtering.\n\nModes:\n- raw: Unfiltered markdown\n- fit: Prune boilerplate (nav, ads, footers)\n- bm25: Filter by BM25 relevance to query (requires query param)", "operationId": "generate_markdown_v1_markdown_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_generate_markdown_v1_markdown_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Generate Markdown V1 Markdown Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/shadow-dom": { "post": { "tags": [ "Parsing", "Parsing" ], "summary": "Extract content from Shadow DOM", "description": "Scrape a page and extract content from Shadow DOM components.\n\nUseful for modern web apps built with Lit, web components, or\nframeworks that use Shadow DOM encapsulation.", "operationId": "extract_shadow_dom_v1_shadow_dom_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_extract_shadow_dom_v1_shadow_dom_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract Shadow Dom V1 Shadow Dom Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipeline/hook": { "post": { "tags": [ "Pipeline", "Pipeline" ], "summary": "Register a hook function", "description": "Register a JavaScript hook function at a pipeline hook point.\n\nHook points: before_scrape, after_response, before_parse, after_parse,\n before_extract, after_extract, before_return, on_error", "operationId": "register_hook_v1_pipeline_hook_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_register_hook_v1_pipeline_hook_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Register Hook V1 Pipeline Hook Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipeline/hooks": { "get": { "tags": [ "Pipeline", "Pipeline" ], "summary": "List all registered hooks", "description": "List all registered hooks in the pipeline.", "operationId": "list_pipeline_hooks_v1_pipeline_hooks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Pipeline Hooks V1 Pipeline Hooks Get" } } } } } } }, "/v1/pipeline/run": { "post": { "tags": [ "Pipeline", "Pipeline" ], "summary": "Run pipeline hooks for testing", "description": "Run hooks at a given pipeline point for testing.", "operationId": "run_pipeline_test_v1_pipeline_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_run_pipeline_test_v1_pipeline_run_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Pipeline Test V1 Pipeline Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipelines/steps": { "get": { "tags": [ "Pipelines", "Pipelines" ], "summary": "List all available pipeline step types", "description": "List all available step types for the visual pipeline builder.\n\nEach step type includes: name, icon, description, required inputs with types,\nand expected outputs. A UI renders these as drag-and-drop blocks.", "operationId": "list_step_types_v1_pipelines_steps_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Step Types V1 Pipelines Steps Get" } } } } } } }, "/v1/pipelines/validate": { "post": { "tags": [ "Pipelines", "Pipelines" ], "summary": "Validate a pipeline definition", "description": "Validate a pipeline definition for correctness.", "operationId": "validate_pipeline_endpoint_v1_pipelines_validate_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Pipeline" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Validate Pipeline Endpoint V1 Pipelines Validate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipelines/run": { "post": { "tags": [ "Pipelines", "Pipelines" ], "summary": "Execute a pipeline", "description": "Execute a pipeline definition.\n\nSteps run sequentially. Each step's output is available as\n{{step_id.output_key}} in subsequent step templates.\n\nExample pipeline:\n{\n \"name\": \"Monitor Competitor Pricing\",\n \"steps\": [\n {\"id\": \"scrape_amazon\", \"type\": \"scrape\", \"inputs\": {\"url\": \"https://amazon.com/product\"}},\n {\"id\": \"extract\", \"type\": \"extract_css\", \"inputs\": {\"url\": \"{{scrape_amazon.url}}\", \"schema\": {...}}},\n {\"id\": \"quality\", \"type\": \"quality_check\", \"inputs\": {\"url\": \"{{scrape_amazon.url}}\", \"data\": \"{{extract.items}}\"}},\n {\"id\": \"notify\", \"type\": \"send_slack\", \"inputs\": {\"webhook_url\": \"https://hooks.slack.com/...\", \"message\": \"{{quality.quality_score}}\"}},\n ]\n}", "operationId": "run_pipeline_endpoint_v1_pipelines_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_run_pipeline_endpoint_v1_pipelines_run_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Pipeline Endpoint V1 Pipelines Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipelines/save": { "post": { "tags": [ "Pipelines", "Pipelines" ], "summary": "Save a pipeline definition", "description": "Save a pipeline definition for later use.", "operationId": "save_pipeline_endpoint_v1_pipelines_save_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Pipeline" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Save Pipeline Endpoint V1 Pipelines Save Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipelines": { "get": { "tags": [ "Pipelines", "Pipelines" ], "summary": "List saved pipelines", "description": "List all saved pipeline definitions.", "operationId": "list_pipelines_endpoint_v1_pipelines_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Pipelines Endpoint V1 Pipelines Get" } } } } } } }, "/v1/pipelines/{pipeline_id}": { "get": { "tags": [ "Pipelines", "Pipelines" ], "summary": "Get a saved pipeline", "description": "Get a saved pipeline definition by ID.", "operationId": "get_pipeline_endpoint_v1_pipelines__pipeline_id__get", "parameters": [ { "name": "pipeline_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pipeline Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Pipeline Endpoint V1 Pipelines Pipeline Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Pipelines", "Pipelines" ], "summary": "Delete a saved pipeline", "description": "Delete a saved pipeline definition.", "operationId": "delete_pipeline_endpoint_v1_pipelines__pipeline_id__delete", "parameters": [ { "name": "pipeline_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pipeline Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Delete Pipeline Endpoint V1 Pipelines Pipeline Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/proxy/providers": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "List all available proxy providers", "description": "List free + premium proxy providers with affiliate details.", "operationId": "list_proxy_providers_v1_proxy_providers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Proxy Providers V1 Proxy Providers Get" } } } } } } }, "/v1/proxy/signup": { "post": { "tags": [ "Proxy", "Proxy" ], "summary": "Open affiliate signup link for a provider", "description": "Get the affiliate signup URL for a proxy provider.\n\nRecords a click for revenue tracking. The user can then sign up at that URL\nand come back to configure credentials.", "operationId": "proxy_signup_v1_proxy_signup_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Provider" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Proxy Signup V1 Proxy Signup Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/proxy/referrals": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "List proxy provider affiliate referrals", "description": "Return the curated proxy provider affiliate catalog (proxy_referrals.py).\n\nThis is the marketing-friendly subset: commission, promo codes, tier\n(premium/standard/budget), and referral URLs. Useful for a \"Sign up via Pry\nand we get a cut\" UI, or for showing users premium options when their free\nproxy fails.\n\nThe full connection metadata (host, port, auth) lives in /v1/proxy/providers.", "operationId": "list_proxy_referrals_v1_proxy_referrals_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Proxy Referrals V1 Proxy Referrals Get" } } } } } } }, "/v1/proxy/referrals/{tag}": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "Get a single proxy provider referral", "description": "Return the affiliate info for a single proxy provider by tag.", "operationId": "get_proxy_referral_v1_proxy_referrals__tag__get", "parameters": [ { "name": "tag", "in": "path", "required": true, "schema": { "type": "string", "title": "Tag" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Proxy Referral V1 Proxy Referrals Tag Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/proxy/configure": { "post": { "tags": [ "Proxy", "Proxy" ], "summary": "Configure proxy credentials", "description": "Configure credentials for a premium proxy provider.\n\nAfter signing up via /v1/proxy/signup, the user provides their credentials here.", "operationId": "proxy_configure_v1_proxy_configure_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_proxy_configure_v1_proxy_configure_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Proxy Configure V1 Proxy Configure Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/proxy/test": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "Test the active proxy", "description": "Test the currently configured proxy and return its public IP.", "operationId": "proxy_test_v1_proxy_test_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Proxy Test V1 Proxy Test Get" } } } } } } }, "/v1/proxy/status": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "Get current proxy status", "description": "Get current proxy configuration and available providers.", "operationId": "proxy_status_v1_proxy_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Proxy Status V1 Proxy Status Get" } } } } } } }, "/v1/proxy/recommend": { "post": { "tags": [ "Proxy", "Proxy" ], "summary": "Get proxy recommendation after a block", "description": "After a scrape fails with anti-bot detection, get a recommendation\nfor which premium proxy provider to sign up with.", "operationId": "proxy_recommend_v1_proxy_recommend_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Last Error", "default": "" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Proxy Recommend V1 Proxy Recommend Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/proxy/clicks": { "get": { "tags": [ "Proxy", "Proxy" ], "summary": "Get recent proxy referral clicks", "description": "Get recent proxy referral clicks for revenue tracking.", "operationId": "proxy_clicks_v1_proxy_clicks_get", "parameters": [ { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Proxy Clicks V1 Proxy Clicks Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/quality/check": { "post": { "tags": [ "Quality", "Quality" ], "summary": "Run data quality check on extraction results", "description": "Run a full data quality check on extraction results.\n\nMetrics:\n- Completeness: what % of expected fields have values\n- Schema adherence: field types match expectations\n- Freshness: how old is the data\n- Anomaly detection: what changed since last extraction\n\nUse this to validate data BEFORE sending to downstream systems.", "operationId": "quality_check_v1_quality_check_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_quality_check_v1_quality_check_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Quality Check V1 Quality Check Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/quality/stats": { "get": { "tags": [ "Quality", "Quality" ], "summary": "Get quality statistics for all checked URLs", "description": "Get aggregate quality statistics across all checked URLs.", "operationId": "quality_stats_v1_quality_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Quality Stats V1 Quality Stats Get" } } } } } } }, "/v1/reconcile": { "post": { "tags": [ "Reconciliation", "Reconciliation" ], "summary": "Reconcile records from multiple sources into unified entities", "description": "Reconcile records from multiple sources into matched entities.\n\nMatches records across sources using identity field similarity,\nnormalizes to a unified vertical schema, and returns entity groups\nwith confidence scores.\n\nVerticals: product, job, real_estate, review", "operationId": "reconcile_endpoint_v1_reconcile_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_reconcile_endpoint_v1_reconcile_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Reconcile Endpoint V1 Reconcile Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/reconcile/schemas": { "get": { "tags": [ "Reconciliation", "Reconciliation" ], "summary": "List supported reconciliation schemas", "description": "List all supported vertical schemas for entity reconciliation.", "operationId": "list_schemas_v1_reconcile_schemas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Schemas V1 Reconcile Schemas Get" } } } } } } }, "/v1/record/start": { "post": { "tags": [ "Recorder", "Recorder" ], "summary": "Start recording browser actions", "operationId": "start_recording_v1_record_start_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Start Recording V1 Record Start Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/record/step": { "post": { "tags": [ "Recorder", "Recorder" ], "summary": "Record a browser action step", "operationId": "record_step_v1_record_step_post", "parameters": [ { "name": "selector", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Selector" } }, { "name": "value", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Value" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_step_v1_record_step_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Record Step V1 Record Step Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/record/export": { "post": { "tags": [ "Recorder", "Recorder" ], "summary": "Export recording as script", "operationId": "export_recording_v1_record_export_post", "parameters": [ { "name": "fmt", "in": "query", "required": false, "schema": { "type": "string", "default": "json", "title": "Fmt" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Export Recording V1 Record Export Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/record/clear": { "post": { "tags": [ "Recorder", "Recorder" ], "summary": "Clear recorded actions", "operationId": "clear_recording_v1_record_clear_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Clear Recording V1 Record Clear Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/referrals/catalog": { "get": { "tags": [ "Referrals", "Referrals" ], "summary": "Get all available referral/affiliate programs", "description": "List all referral programs Pry supports.\n\n60+ providers across categories: LLM, hosting, domains, CDN, email,\nmonitoring, proxies, voice, media, devtools, search, CAPTCHA.", "operationId": "get_referral_catalog_v1_referrals_catalog_get", "parameters": [ { "name": "category", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "Category" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Referral Catalog V1 Referrals Catalog Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/referrals/stats": { "get": { "tags": [ "Referrals", "Referrals" ], "summary": "Get referral click and conversion stats", "description": "Get referral tracking statistics for the last N days.", "operationId": "get_referral_stats_v1_referrals_stats_get", "parameters": [ { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Referral Stats V1 Referrals Stats Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/referrals/click": { "post": { "tags": [ "Referrals", "Referrals" ], "summary": "Record a referral link click", "description": "Record when a user clicks a referral link. Returns tracking ID.", "operationId": "record_referral_click_v1_referrals_click_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_referral_click_v1_referrals_click_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Record Referral Click V1 Referrals Click Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/referrals/convert": { "post": { "tags": [ "Referrals", "Referrals" ], "summary": "Record a referral conversion", "description": "Record that a referral click resulted in a conversion.", "operationId": "record_referral_conversion_v1_referrals_convert_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_record_referral_conversion_v1_referrals_convert_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Record Referral Conversion V1 Referrals Convert Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/reports/generate": { "post": { "tags": [ "Reports", "Reports" ], "summary": "Generate a white-label report from scraped data", "description": "Generate a white-label report from scraped data.\n\nReport types:\n- competitive_analysis: Competitor pricing and activity overview\n- price_monitor: Product price change tracking with visual indicators\n- seo_audit: SEO element analysis with change detection\n- content_tracker: Content change monitoring across pages\n\nBranding (optional): {\"agency_name\": \"...\", \"brand_color\": \"#hex\", \"logo_url\": \"...\"}", "operationId": "generate_report_endpoint_v1_reports_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_generate_report_endpoint_v1_reports_generate_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Generate Report Endpoint V1 Reports Generate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/reports": { "get": { "tags": [ "Reports", "Reports" ], "summary": "List generated reports", "description": "List all previously generated reports.", "operationId": "list_reports_endpoint_v1_reports_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Reports Endpoint V1 Reports Get" } } } } } } }, "/v1/report/{report_id}": { "get": { "tags": [ "Reports", "Reports" ], "summary": "Get a generated report", "description": "Get the HTML content of a generated report.", "operationId": "get_report_v1_report__report_id__get", "parameters": [ { "name": "report_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Report Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Get Report V1 Report Report Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/review/submit": { "post": { "tags": [ "Review", "Review" ], "summary": "Submit extracted data for human review", "description": "Submit extracted data for human review before delivery.\n\nUse this when extraction confidence is low or anomalies were detected.\nData will be held in the review queue until approved or rejected.", "operationId": "review_submit_v1_review_submit_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_review_submit_v1_review_submit_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Review Submit V1 Review Submit Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/review/{review_id}/approve": { "post": { "tags": [ "Review", "Review" ], "summary": "Approve a review item", "description": "Approve a review item, allowing data to proceed to delivery.", "operationId": "review_approve_v1_review__review_id__approve_post", "parameters": [ { "name": "review_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Review Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_review_approve_v1_review__review_id__approve_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Review Approve V1 Review Review Id Approve Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/review/{review_id}/reject": { "post": { "tags": [ "Review", "Review" ], "summary": "Reject a review item", "description": "Reject a review item, blocking data delivery.", "operationId": "review_reject_v1_review__review_id__reject_post", "parameters": [ { "name": "review_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Review Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_review_reject_v1_review__review_id__reject_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Review Reject V1 Review Review Id Reject Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/reviews": { "get": { "tags": [ "Review", "Review" ], "summary": "List reviews in the queue", "description": "List reviews, optionally filtered by status (pending/approved/rejected).", "operationId": "list_reviews_v1_reviews_get", "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Reviews V1 Reviews Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/review/{review_id}": { "get": { "tags": [ "Review", "Review" ], "summary": "Get review details", "description": "Get full details of a review item including the data payload.", "operationId": "get_review_v1_review__review_id__get", "parameters": [ { "name": "review_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Review Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Review V1 Review Review Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/extract-with-review": { "post": { "tags": [ "Review", "Review" ], "summary": "Extract with automatic human review routing", "description": "Extract data with automatic quality check and human review routing.\n\nHigh-confidence results are auto-approved.\nLow-confidence results are auto-rejected.\nMedium-confidence results go to the human review queue with Slack notification.", "operationId": "extract_with_review_v1_extract_with_review_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_extract_with_review_v1_extract_with_review_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Extract With Review V1 Extract With Review Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/seo/analyze": { "post": { "tags": [ "SEO", "SEO" ], "summary": "Analyze SEO elements from a URL", "description": "Analyze all SEO elements from a URL.\n\nReturns: title, meta description, keywords, headings (H1/H2),\ncanonical, OG tags, Twitter cards, word count, link counts,\nschema markup, hreflang tags.", "operationId": "seo_analyze_v1_seo_analyze_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Seo Analyze V1 Seo Analyze Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/seo/track": { "post": { "tags": [ "SEO", "SEO" ], "summary": "Track SEO changes since last scan", "description": "Track SEO changes since the last scan of this URL.\n\nCompares current SEO elements to previous snapshot and reports\nwhat changed (title, description, headings, etc.).", "operationId": "seo_track_v1_seo_track_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Seo Track V1 Seo Track Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/seo/keywords": { "post": { "tags": [ "SEO", "SEO" ], "summary": "Analyze keyword presence in URL content", "description": "Analyze which keywords a URL targets.\n\nChecks each keyword for:\n- Presence in title tag\n- Presence in H1 headings\n- Presence in meta description\n- Frequency in body content\n- Keyword density percentage", "operationId": "seo_keywords_v1_seo_keywords_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_seo_keywords_v1_seo_keywords_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Seo Keywords V1 Seo Keywords Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/ultimate-scrape": { "post": { "tags": [ "Scraping", "Scraping" ], "summary": "Scrape with 10-tier anti-bot fallback system", "description": "Scrape any URL using Pry's ultimate 10-tier anti-detection system.\n\nAutomatically tries: direct \u2192 cloudscraper \u2192 FlareSolverr \u2192\nundetected-chromedriver \u2192 Playwright \u2192 Googlebot \u2192 Archive.org \u2192 Google Cache\n\nReturns the first successful result with the method used.", "operationId": "ultimate_scrape_v1_ultimate_scrape_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_ultimate_scrape_v1_ultimate_scrape_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Ultimate Scrape V1 Ultimate Scrape Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/capture/network": { "post": { "tags": [ "Scraping", "Scraping" ], "summary": "Extract API calls and network patterns from a page", "description": "Extract API calls, GraphQL queries, and network patterns from a page.\n\nUseful for understanding how SPAs load data and finding hidden API endpoints.", "operationId": "capture_network_v1_capture_network_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Capture Network V1 Capture Network Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/crawl/adaptive": { "post": { "tags": [ "Scraping", "Scraping" ], "summary": "Crawl with adaptive stopping based on content relevance", "description": "Crawl a website with adaptive stopping.\n\nUses information foraging theory to decide when to stop:\n- Stops when content relevance drops below threshold\n- Stops when information gain diminishes\n- Respects max_pages and max_depth limits\n- Ideal for targeted data collection (pricing, docs, products)", "operationId": "adaptive_crawl_v1_crawl_adaptive_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_adaptive_crawl_v1_crawl_adaptive_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Adaptive Crawl V1 Crawl Adaptive Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/session/create": { "post": { "tags": [ "Sessions", "Sessions" ], "summary": "Create a persistent browser session", "description": "Create a persistent browser session.", "operationId": "create_session_v1_session_create_post", "parameters": [ { "name": "persist", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Persist" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "string", "title": "Url" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Create Session V1 Session Create Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/session/destroy": { "post": { "tags": [ "Sessions", "Sessions" ], "summary": "Destroy a browser session with optional save", "description": "Destroy a browser session. Optionally save state first.", "operationId": "destroy_session_v1_session_destroy_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_destroy_session_v1_session_destroy_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Destroy Session V1 Session Destroy Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/sessions": { "get": { "tags": [ "Sessions", "Sessions" ], "summary": "List all persistent sessions", "description": "List all persistent sessions (active + saved).", "operationId": "list_sessions_v1_sessions_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Sessions V1 Sessions Get" } } } } } } }, "/v1/session/save": { "post": { "tags": [ "Sessions", "Sessions" ], "summary": "Save current session state to disk", "description": "Save a session's current state (cookies, storage) to disk.", "operationId": "save_session_state_v1_session_save_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Save Session State V1 Session Save Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/session/restore": { "post": { "tags": [ "Sessions", "Sessions" ], "summary": "Restore a saved session", "description": "Restore a session from disk into a browser context.", "operationId": "restore_session_v1_session_restore_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Session Id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Restore Session V1 Session Restore Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/share": { "post": { "tags": [ "Share", "Share" ], "summary": "Share scraped content via link", "operationId": "share_scrape_v1_share_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Share Scrape V1 Share Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/share/{share_id}": { "get": { "tags": [ "Share", "Share" ], "summary": "View shared content", "operationId": "view_share_share__share_id__get", "parameters": [ { "name": "share_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Share Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v0/stats": { "get": { "tags": [ "Stats", "Stats" ], "summary": "Get cache, rate limiter, and session stats", "operationId": "stats_v0_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Stats V0 Stats Get" } } } } } } }, "/v1/structure/check": { "post": { "tags": [ "Structure", "Structure" ], "summary": "Check if CSS selectors still match on a page", "description": "Check if CSS selectors still match on a page.\n\nUse this to verify your scraper templates still work after\na site redesign. Returns per-selector match status.\n\nSelectors format: [{\"name\": \"title\", \"selector\": \"h1\", \"type\": \"css\"}]", "operationId": "structure_check_v1_structure_check_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_structure_check_v1_structure_check_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Structure Check V1 Structure Check Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/structure/monitor": { "post": { "tags": [ "Structure", "Structure" ], "summary": "Monitor page structure changes over time", "description": "Monitor page structure changes and detect broken selectors.\n\nCompares current selector match status to previous checks.\nAlerts when selectors stop matching (site redesign detected).\n\nUse this as a pre-scrape health check for your templates.", "operationId": "structure_monitor_v1_structure_monitor_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_structure_monitor_v1_structure_monitor_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Structure Monitor V1 Structure Monitor Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/structure/check-template": { "post": { "tags": [ "Structure", "Structure" ], "summary": "Verify a scraper template still works", "description": "Check if a pre-built scraper template still works against a URL.\n\nExtracts the template's selectors and checks each one.\nIf selectors fail, the template needs updating.", "operationId": "structure_check_template_v1_structure_check_template_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_structure_check_template_v1_structure_check_template_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Structure Check Template V1 Structure Check Template Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/training/classify-license": { "post": { "tags": [ "Training", "Training" ], "summary": "Classify content license for AI training", "description": "Classify the license of scraped content for AI training compliance.\n\nReturns license type (CC0, CC-BY, MIT, Apache, GPL, Proprietary, Fair Use),\ntier (permissive/copyleft/restrictive/conditional), and confidence.", "operationId": "classify_license_endpoint_v1_training_classify_license_post", "requestBody": { "content": { "application/json": { "schema": { "type": "string", "title": "Text" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Classify License Endpoint V1 Training Classify License Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/training/clean": { "post": { "tags": [ "Training", "Training" ], "summary": "Strip PII and copyright from content", "description": "Strip PII and copyright content for AI training clean room.\n\nRemoves emails, phones, SSNs, credit cards, IPs, and (optionally) names.\nAlso strips copyright notices and near-verbatim copyright content.", "operationId": "clean_content_v1_training_clean_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_clean_content_v1_training_clean_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Clean Content V1 Training Clean Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/training/export": { "post": { "tags": [ "Training", "Training" ], "summary": "Export a clean AI training dataset", "description": "Export scraped content as a clean AI training dataset.\n\nEach record should have: content, url, and optional metadata.\n\nFeatures:\n- Per-record provenance tracking (source URL, timestamp, extraction method)\n- PII stripping (email, phone, SSN, CC, IP)\n- Copyright verbatim text removal\n- License classification\n- Compliance report generation", "operationId": "export_dataset_v1_training_export_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_export_dataset_v1_training_export_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Export Dataset V1 Training Export Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/training/compliance/{dataset_id}": { "get": { "tags": [ "Training", "Training" ], "summary": "Generate compliance report for a dataset", "description": "Generate a compliance report for an exported training dataset.\n\nReport includes: data provenance, PII/copyright removal stats,\nlicense classification, and legal recommendations.", "operationId": "compliance_report_v1_training_compliance__dataset_id__get", "parameters": [ { "name": "dataset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Dataset Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Compliance Report V1 Training Compliance Dataset Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/transform": { "post": { "tags": [ "Transform", "Transform" ], "summary": "Transform data to multiple formats", "operationId": "transform_data_v1_transform_post", "parameters": [ { "name": "format", "in": "query", "required": false, "schema": { "type": "string", "default": "csv", "title": "Format" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Transform Data V1 Transform Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/pipe": { "post": { "tags": [ "Transform", "Transform" ], "summary": "Scrape and transform via data pipeline", "operationId": "data_pipeline_v1_pipe_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Data Pipeline V1 Pipe Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vision": { "post": { "tags": [ "Vision", "Vision" ], "summary": "Analyze an image with a free vision model", "description": "Analyze an image with a free vision model.\n\nProvide ONE of: image (base64 or data URI), url (auto-screenshot),\nor file_path (local PNG/JPG).\n\nAuto-falls-back across 5 free OpenRouter vision models if the\nrequested one is rate-limited.", "operationId": "vision_v1_vision_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_vision_v1_vision_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Vision V1 Vision Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vision/models": { "get": { "tags": [ "Vision", "Vision" ], "summary": "List free vision-capable models on OpenRouter", "description": "List free vision-capable models on OpenRouter.", "operationId": "vision_models_v1_vision_models_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Vision Models V1 Vision Models Get" } } } } } } }, "/v1/webhooks/test": { "post": { "tags": [ "Webhooks", "Webhooks" ], "summary": "Test webhook delivery", "description": "Test webhook delivery to a URL with HMAC signing.", "operationId": "test_webhook_v1_webhooks_test_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_test_webhook_v1_webhooks_test_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Test Webhook V1 Webhooks Test Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/webhooks/dead-letter": { "get": { "tags": [ "Webhooks", "Webhooks" ], "summary": "Get failed webhook deliveries", "description": "Get the dead letter queue of failed webhook deliveries.", "operationId": "get_dead_letter_v1_webhooks_dead_letter_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Dead Letter V1 Webhooks Dead Letter Get" } } } } } } }, "/v1/x402/pricing": { "get": { "tags": [ "x402", "x402" ], "summary": "Get x402 pricing for all paid operations", "description": "Get the price list for pay-per-scrape operations.", "operationId": "x402_pricing_v1_x402_pricing_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Pricing V1 X402 Pricing Get" } } } } } } }, "/v1/x402/payment": { "post": { "tags": [ "x402", "x402" ], "summary": "Create a x402 payment request", "description": "Create a x402 payment request for a paid operation.\n\nReturns payment details (wallet, amount, asset) for the client to pay.", "operationId": "x402_payment_request_v1_x402_payment_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_x402_payment_request_v1_x402_payment_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Payment Request V1 X402 Payment Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/x402/verify": { "post": { "tags": [ "x402", "x402" ], "summary": "Verify a x402 payment was settled", "description": "Verify a x402 payment has been settled on-chain via facilitator router.", "operationId": "x402_verify_payment_v1_x402_verify_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_x402_verify_payment_v1_x402_verify_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Verify Payment V1 X402 Verify Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/x402/require-payment": { "post": { "tags": [ "x402", "x402" ], "summary": "Generate a 402 Payment Required response", "description": "Generate a 402 Payment Required response for a paid endpoint.", "operationId": "x402_require_payment_v1_x402_require_payment_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_x402_require_payment_v1_x402_require_payment_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Require Payment V1 X402 Require Payment Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/x402/batch-payment": { "post": { "tags": [ "x402", "x402" ], "summary": "Create a batch x402 payment", "description": "Create a single x402 payment covering multiple operations.\n\nReturns a PaymentRequired body with the combined amount. After paying,\nsubmit the tx to POST /v1/x402/batch-verify.", "operationId": "x402_batch_payment_v1_x402_batch_payment_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Payload" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Batch Payment V1 X402 Batch Payment Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/x402/batch-verify": { "post": { "tags": [ "x402", "x402" ], "summary": "Verify a batch x402 payment", "description": "Verify the on-chain payment for a batch and mark it paid.", "operationId": "x402_batch_verify_v1_x402_batch_verify_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Payload" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Batch Verify V1 X402 Batch Verify Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/x402/pay": { "post": { "tags": [ "x402", "x402" ], "summary": "Process x402 payment and get access token", "description": "Process an x402 payment and return an access token.\n\nFlow:\n1. User gets 402 from a paid endpoint\n2. User sends USDC to the wallet in the 402 response\n3. User calls this endpoint with the tx_hash\n4. Pry verifies the transaction through the facilitator router\n5. Returns access token (payment_id) to use in X-Payment-Hash header", "operationId": "x402_pay_v1_x402_pay_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_x402_pay_v1_x402_pay_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response X402 Pay V1 X402 Pay Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "schemas": { "AutomateRequest": { "properties": { "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" }, "steps": { "items": { "$ref": "#/components/schemas/AutomateStep" }, "type": "array", "title": "Steps" }, "headless": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Headless", "default": true }, "viewport": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Viewport" } }, "type": "object", "required": [ "steps" ], "title": "AutomateRequest" }, "AutomateStep": { "properties": { "action": { "type": "string", "title": "Action" }, "selector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selector" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Timeout", "default": 30000 }, "wait_until": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Wait Until", "default": "networkidle" } }, "type": "object", "required": [ "action" ], "title": "AutomateStep" }, "BatchFileRequest": { "properties": { "filepath": { "type": "string", "title": "Filepath" }, "template": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Template" }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Timeout", "default": 30 }, "max_urls": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Urls", "default": 1000 } }, "type": "object", "required": [ "filepath", "template" ], "title": "BatchFileRequest" }, "BatchItem": { "properties": { "template_id": { "type": "string", "title": "Template Id" }, "url": { "type": "string", "title": "Url" }, "options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Options" } }, "type": "object", "required": [ "template_id", "url" ], "title": "BatchItem", "description": "A single template execution request within a batch." }, "Body_adaptive_crawl_v1_crawl_adaptive_post": { "properties": { "url": { "type": "string", "title": "Url" }, "query": { "type": "string", "title": "Query", "default": "" }, "max_pages": { "type": "integer", "title": "Max Pages", "default": 50 }, "max_depth": { "type": "integer", "title": "Max Depth", "default": 3 }, "relevance_threshold": { "type": "number", "title": "Relevance Threshold", "default": 0.3 } }, "type": "object", "required": [ "url" ], "title": "Body_adaptive_crawl_v1_crawl_adaptive_post" }, "Body_analyze_field_v1_intel_analyze_post": { "properties": { "competitor_id": { "type": "string", "title": "Competitor Id" }, "field": { "type": "string", "title": "Field", "default": "price" } }, "type": "object", "required": [ "competitor_id" ], "title": "Body_analyze_field_v1_intel_analyze_post" }, "Body_camoufox_fetch_v1_camoufox_fetch_post": { "properties": { "url": { "type": "string", "title": "Url" }, "profile": { "type": "string", "title": "Profile", "default": "chrome_windows" }, "wait_selector": { "type": "string", "title": "Wait Selector", "default": "" }, "proxy": { "type": "string", "title": "Proxy", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_camoufox_fetch_v1_camoufox_fetch_post" }, "Body_check_duplicate_v1_dedup_check_post": { "properties": { "text": { "type": "string", "title": "Text" }, "threshold": { "type": "number", "title": "Threshold", "default": 0.85 } }, "type": "object", "required": [ "text" ], "title": "Body_check_duplicate_v1_dedup_check_post" }, "Body_clean_content_v1_training_clean_post": { "properties": { "text": { "type": "string", "title": "Text" }, "strip_names": { "type": "boolean", "title": "Strip Names", "default": false }, "strip_copyright": { "type": "boolean", "title": "Strip Copyright", "default": true } }, "type": "object", "required": [ "text" ], "title": "Body_clean_content_v1_training_clean_post" }, "Body_compare_v1_compare_post": { "properties": { "url1": { "type": "string", "title": "Url1" }, "url2": { "type": "string", "title": "Url2" } }, "type": "object", "required": [ "url1", "url2" ], "title": "Body_compare_v1_compare_post" }, "Body_create_actor_v1_actors_create_post": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "template_id": { "type": "string", "title": "Template Id", "default": "" }, "code": { "type": "string", "title": "Code", "default": "" }, "price_per_run": { "type": "number", "title": "Price Per Run", "default": 0.0 }, "visibility": { "type": "string", "title": "Visibility", "default": "private" }, "schedule_cron": { "type": "string", "title": "Schedule Cron", "default": "" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" } }, "type": "object", "required": [ "name", "description" ], "title": "Body_create_actor_v1_actors_create_post" }, "Body_create_agency_endpoint_v1_agency_create_post": { "properties": { "name": { "type": "string", "title": "Name" }, "owner_email": { "type": "string", "title": "Owner Email" }, "custom_domain": { "type": "string", "title": "Custom Domain", "default": "" }, "brand_color": { "type": "string", "title": "Brand Color", "default": "#f59e0b" }, "logo_url": { "type": "string", "title": "Logo Url", "default": "" } }, "type": "object", "required": [ "name", "owner_email" ], "title": "Body_create_agency_endpoint_v1_agency_create_post" }, "Body_create_client_endpoint_v1_agency__agency_id__clients_post": { "properties": { "client_name": { "type": "string", "title": "Client Name" }, "client_email": { "type": "string", "title": "Client Email" }, "monthly_quota": { "type": "integer", "title": "Monthly Quota", "default": 10000 } }, "type": "object", "required": [ "client_name", "client_email" ], "title": "Body_create_client_endpoint_v1_agency__agency_id__clients_post" }, "Body_create_monitor_endpoint_v1_monitor_post": { "properties": { "name": { "type": "string", "title": "Name" }, "url": { "type": "string", "title": "Url" }, "schedule_cron": { "type": "string", "title": "Schedule Cron", "default": "0 */6 * * *" }, "goal": { "type": "string", "title": "Goal", "default": "" }, "webhook": { "type": "string", "title": "Webhook", "default": "" }, "use_llm": { "type": "boolean", "title": "Use Llm", "default": false } }, "type": "object", "required": [ "name", "url" ], "title": "Body_create_monitor_endpoint_v1_monitor_post" }, "Body_destroy_session_v1_session_destroy_post": { "properties": { "session_id": { "type": "string", "title": "Session Id" }, "save_state": { "type": "boolean", "title": "Save State", "default": false } }, "type": "object", "required": [ "session_id" ], "title": "Body_destroy_session_v1_session_destroy_post" }, "Body_detect_lazy_content_v1_capture_lazy_post": { "properties": { "url": { "type": "string", "title": "Url" }, "auto_scroll": { "type": "boolean", "title": "Auto Scroll", "default": true }, "max_scrolls": { "type": "integer", "title": "Max Scrolls", "default": 5 } }, "type": "object", "required": [ "url" ], "title": "Body_detect_lazy_content_v1_capture_lazy_post" }, "Body_diff_v1_diff_post": { "properties": { "url": { "type": "string", "title": "Url" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content" } }, "type": "object", "required": [ "url" ], "title": "Body_diff_v1_diff_post" }, "Body_enrich_data_v1_enrich_post": { "properties": { "url": { "type": "string", "title": "Url" }, "include_tech_stack": { "type": "boolean", "title": "Include Tech Stack", "default": true }, "include_social": { "type": "boolean", "title": "Include Social", "default": true }, "include_company": { "type": "boolean", "title": "Include Company", "default": true } }, "type": "object", "required": [ "url" ], "title": "Body_enrich_data_v1_enrich_post" }, "Body_execute_template_endpoint_v1_templates_execute_post": { "properties": { "template_id": { "type": "string", "title": "Template Id" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "template_id", "url" ], "title": "Body_execute_template_endpoint_v1_templates_execute_post" }, "Body_export_dataset_v1_training_export_post": { "properties": { "records": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Records" }, "output_format": { "type": "string", "title": "Output Format", "default": "jsonl" }, "clean_room": { "type": "boolean", "title": "Clean Room", "default": true }, "strip_names": { "type": "boolean", "title": "Strip Names", "default": false } }, "type": "object", "required": [ "records" ], "title": "Body_export_dataset_v1_training_export_post" }, "Body_extract_css_v1_extract_css_post": { "properties": { "url": { "type": "string", "title": "Url" }, "schema": { "additionalProperties": true, "type": "object", "title": "Schema" }, "bypass_cloudflare": { "type": "boolean", "title": "Bypass Cloudflare", "default": true } }, "type": "object", "required": [ "url", "schema" ], "title": "Body_extract_css_v1_extract_css_post" }, "Body_extract_llm_v1_extract_llm_post": { "properties": { "url": { "type": "string", "title": "Url" }, "instruction": { "type": "string", "title": "Instruction", "default": "Extract all key information from this content." }, "schema": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Schema" }, "chunk_strategy": { "type": "string", "title": "Chunk Strategy", "default": "topic" }, "query": { "type": "string", "title": "Query", "default": "" }, "top_k": { "type": "integer", "title": "Top K", "default": 5 } }, "type": "object", "required": [ "url" ], "title": "Body_extract_llm_v1_extract_llm_post" }, "Body_extract_pdf_v1_pdf_extract_post": { "properties": { "pdf_url": { "type": "string", "title": "Pdf Url" }, "method": { "type": "string", "title": "Method", "default": "pdfplumber" } }, "type": "object", "required": [ "pdf_url" ], "title": "Body_extract_pdf_v1_pdf_extract_post" }, "Body_extract_shadow_dom_v1_shadow_dom_post": { "properties": { "url": { "type": "string", "title": "Url" }, "flatten": { "type": "boolean", "title": "Flatten", "default": true } }, "type": "object", "required": [ "url" ], "title": "Body_extract_shadow_dom_v1_shadow_dom_post" }, "Body_extract_with_review_v1_extract_with_review_post": { "properties": { "url": { "type": "string", "title": "Url" }, "schema": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Schema" }, "expected_types": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Expected Types" }, "slack_webhook": { "type": "string", "title": "Slack Webhook", "default": "" }, "auto_approve_threshold": { "type": "number", "title": "Auto Approve Threshold", "default": 0.8 }, "auto_reject_threshold": { "type": "number", "title": "Auto Reject Threshold", "default": 0.2 } }, "type": "object", "required": [ "url" ], "title": "Body_extract_with_review_v1_extract_with_review_post" }, "Body_fetch_gmail_v1_email_gmail_post": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "max_results": { "type": "integer", "title": "Max Results", "default": 20 }, "query": { "type": "string", "title": "Query", "default": "" }, "since_days": { "type": "integer", "title": "Since Days", "default": 7 } }, "type": "object", "required": [ "access_token" ], "title": "Body_fetch_gmail_v1_email_gmail_post" }, "Body_fetch_outlook_v1_email_outlook_post": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "max_results": { "type": "integer", "title": "Max Results", "default": 20 }, "query": { "type": "string", "title": "Query", "default": "" }, "since_days": { "type": "integer", "title": "Since Days", "default": 7 } }, "type": "object", "required": [ "access_token" ], "title": "Body_fetch_outlook_v1_email_outlook_post" }, "Body_freshness_check_v1_freshness_check_post": { "properties": { "url": { "type": "string", "title": "Url" }, "content": { "type": "string", "title": "Content", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_freshness_check_v1_freshness_check_post" }, "Body_freshness_frequency_v1_freshness_frequency_post": { "properties": { "url": { "type": "string", "title": "Url" }, "base_interval": { "type": "integer", "title": "Base Interval", "default": 60 } }, "type": "object", "required": [ "url" ], "title": "Body_freshness_frequency_v1_freshness_frequency_post" }, "Body_generate_markdown_v1_markdown_post": { "properties": { "url": { "type": "string", "title": "Url" }, "mode": { "type": "string", "title": "Mode", "default": "raw" }, "query": { "type": "string", "title": "Query", "default": "" }, "threshold": { "type": "number", "title": "Threshold", "default": 0.3 } }, "type": "object", "required": [ "url" ], "title": "Body_generate_markdown_v1_markdown_post" }, "Body_generate_report_endpoint_v1_reports_generate_post": { "properties": { "report_type": { "type": "string", "title": "Report Type" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "branding": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Branding" }, "output_format": { "type": "string", "title": "Output Format", "default": "html" } }, "type": "object", "required": [ "report_type", "data" ], "title": "Body_generate_report_endpoint_v1_reports_generate_post" }, "Body_generate_report_v1_intel_report_post": { "properties": { "competitors": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Competitors" }, "days_back": { "type": "integer", "title": "Days Back", "default": 7 } }, "type": "object", "required": [ "competitors" ], "title": "Body_generate_report_v1_intel_report_post" }, "Body_generate_sso_v1_auth_sso_post": { "properties": { "provider": { "type": "string", "title": "Provider", "default": "okta" }, "username": { "type": "string", "title": "Username" }, "password": { "type": "string", "title": "Password" }, "target_url": { "type": "string", "title": "Target Url" }, "tenant": { "type": "string", "title": "Tenant", "default": "" } }, "type": "object", "required": [ "username", "password", "target_url" ], "title": "Body_generate_sso_v1_auth_sso_post" }, "Body_graphql_query_v1_graphql_query_post": { "properties": { "endpoint": { "type": "string", "title": "Endpoint" }, "query": { "type": "string", "title": "Query" }, "variables": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Variables" } }, "type": "object", "required": [ "endpoint", "query" ], "title": "Body_graphql_query_v1_graphql_query_post" }, "Body_ocr_extract_v1_ocr_extract_post": { "properties": { "image_url": { "type": "string", "title": "Image Url", "default": "" }, "image_base64": { "type": "string", "title": "Image Base64", "default": "" } }, "type": "object", "title": "Body_ocr_extract_v1_ocr_extract_post" }, "Body_proxy_configure_v1_proxy_configure_post": { "properties": { "provider": { "type": "string", "title": "Provider" }, "username": { "type": "string", "title": "Username", "default": "" }, "password": { "type": "string", "title": "Password", "default": "" }, "api_key": { "type": "string", "title": "Api Key", "default": "" }, "proxy_url": { "type": "string", "title": "Proxy Url", "default": "" } }, "type": "object", "required": [ "provider" ], "title": "Body_proxy_configure_v1_proxy_configure_post" }, "Body_quality_check_v1_quality_check_post": { "properties": { "url": { "type": "string", "title": "Url" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "schema": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Schema" }, "expected_types": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Expected Types" } }, "type": "object", "required": [ "url", "data" ], "title": "Body_quality_check_v1_quality_check_post" }, "Body_reconcile_endpoint_v1_reconcile_post": { "properties": { "records": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Records" }, "vertical": { "type": "string", "title": "Vertical", "default": "product" }, "threshold": { "type": "number", "title": "Threshold", "default": 0.7 } }, "type": "object", "required": [ "records" ], "title": "Body_reconcile_endpoint_v1_reconcile_post" }, "Body_record_consent_endpoint_v1_gdpr_consent_post": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "purpose": { "type": "string", "title": "Purpose", "default": "data_collection" }, "consent_given": { "type": "boolean", "title": "Consent Given", "default": true }, "ip_address": { "type": "string", "title": "Ip Address", "default": "" }, "user_agent": { "type": "string", "title": "User Agent", "default": "" } }, "type": "object", "required": [ "user_id" ], "title": "Body_record_consent_endpoint_v1_gdpr_consent_post" }, "Body_record_intel_snapshot_v1_intel_snapshot_post": { "properties": { "competitor_id": { "type": "string", "title": "Competitor Id" }, "competitor_name": { "type": "string", "title": "Competitor Name" }, "url": { "type": "string", "title": "Url" }, "fields": { "additionalProperties": true, "type": "object", "title": "Fields" } }, "type": "object", "required": [ "competitor_id", "competitor_name", "url", "fields" ], "title": "Body_record_intel_snapshot_v1_intel_snapshot_post" }, "Body_record_referral_click_v1_referrals_click_post": { "properties": { "provider_tag": { "type": "string", "title": "Provider Tag" }, "source": { "type": "string", "title": "Source", "default": "api" }, "user_id": { "type": "string", "title": "User Id", "default": "" } }, "type": "object", "required": [ "provider_tag" ], "title": "Body_record_referral_click_v1_referrals_click_post" }, "Body_record_referral_conversion_v1_referrals_convert_post": { "properties": { "click_id": { "type": "string", "title": "Click Id" }, "revenue_usd": { "type": "number", "title": "Revenue Usd", "default": 0.0 }, "notes": { "type": "string", "title": "Notes", "default": "" } }, "type": "object", "required": [ "click_id" ], "title": "Body_record_referral_conversion_v1_referrals_convert_post" }, "Body_record_step_v1_record_step_post": { "properties": { "session_id": { "type": "string", "title": "Session Id" }, "action": { "type": "string", "title": "Action" } }, "type": "object", "required": [ "session_id", "action" ], "title": "Body_record_step_v1_record_step_post" }, "Body_record_usage_endpoint_v1_costing_record_post": { "properties": { "operation": { "type": "string", "title": "Operation" }, "quantity": { "type": "number", "title": "Quantity", "default": 1.0 }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "operation" ], "title": "Body_record_usage_endpoint_v1_costing_record_post" }, "Body_register_hook_v1_pipeline_hook_post": { "properties": { "hook_point": { "type": "string", "title": "Hook Point" }, "javascript_fn": { "type": "string", "title": "Javascript Fn" } }, "type": "object", "required": [ "hook_point", "javascript_fn" ], "title": "Body_register_hook_v1_pipeline_hook_post" }, "Body_request_deletion_endpoint_v1_gdpr_deletion_request_post": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "reason": { "type": "string", "title": "Reason", "default": "user_request" } }, "type": "object", "required": [ "user_id" ], "title": "Body_request_deletion_endpoint_v1_gdpr_deletion_request_post" }, "Body_review_approve_v1_review__review_id__approve_post": { "properties": { "reviewer": { "type": "string", "title": "Reviewer", "default": "api" }, "notes": { "type": "string", "title": "Notes", "default": "" } }, "type": "object", "title": "Body_review_approve_v1_review__review_id__approve_post" }, "Body_review_reject_v1_review__review_id__reject_post": { "properties": { "reviewer": { "type": "string", "title": "Reviewer", "default": "api" }, "notes": { "type": "string", "title": "Notes", "default": "" } }, "type": "object", "title": "Body_review_reject_v1_review__review_id__reject_post" }, "Body_review_submit_v1_review_submit_post": { "properties": { "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "url": { "type": "string", "title": "Url" }, "schema_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schema Name" }, "confidence_score": { "type": "number", "title": "Confidence Score", "default": 0.0 }, "flagged_fields": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Flagged Fields" } }, "type": "object", "required": [ "data", "url" ], "title": "Body_review_submit_v1_review_submit_post" }, "Body_revoke_consent_endpoint_v1_gdpr_consent_revoke_post": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "purpose": { "type": "string", "title": "Purpose", "default": "data_collection" } }, "type": "object", "required": [ "user_id" ], "title": "Body_revoke_consent_endpoint_v1_gdpr_consent_revoke_post" }, "Body_run_pipeline_endpoint_v1_pipelines_run_post": { "properties": { "pipeline": { "additionalProperties": true, "type": "object", "title": "Pipeline" }, "context": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Context" } }, "type": "object", "required": [ "pipeline" ], "title": "Body_run_pipeline_endpoint_v1_pipelines_run_post" }, "Body_run_pipeline_test_v1_pipeline_run_post": { "properties": { "hook_point": { "type": "string", "title": "Hook Point" }, "url": { "type": "string", "title": "Url", "default": "" }, "html": { "type": "string", "title": "Html", "default": "" } }, "type": "object", "required": [ "hook_point" ], "title": "Body_run_pipeline_test_v1_pipeline_run_post" }, "Body_scrape_and_send_v1_scrape_and_send_post": { "properties": { "url": { "type": "string", "title": "Url" }, "destination": { "type": "string", "title": "Destination" }, "destination_config": { "additionalProperties": true, "type": "object", "title": "Destination Config" } }, "type": "object", "required": [ "url", "destination", "destination_config" ], "title": "Body_scrape_and_send_v1_scrape_and_send_post" }, "Body_scrape_email_v1_email_scrape_post": { "properties": { "subject": { "type": "string", "title": "Subject", "default": "" }, "body": { "type": "string", "title": "Body", "default": "" }, "sender": { "type": "string", "title": "Sender", "default": "" } }, "type": "object", "title": "Body_scrape_email_v1_email_scrape_post" }, "Body_screenshot_v1_screenshot_post": { "properties": { "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "url" ], "title": "Body_screenshot_v1_screenshot_post" }, "Body_send_alert_endpoint_v1_alert_send_post": { "properties": { "channel": { "type": "string", "title": "Channel" }, "title": { "type": "string", "title": "Title", "default": "Pry Alert" }, "message": { "type": "string", "title": "Message" }, "config": { "additionalProperties": true, "type": "object", "title": "Config" }, "severity": { "type": "string", "title": "Severity", "default": "info" } }, "type": "object", "required": [ "channel", "message", "config" ], "title": "Body_send_alert_endpoint_v1_alert_send_post" }, "Body_send_to_destination_v1_destination_send_post": { "properties": { "destination": { "type": "string", "title": "Destination" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "config": { "additionalProperties": true, "type": "object", "title": "Config" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "type": "object", "required": [ "destination", "data", "config" ], "title": "Body_send_to_destination_v1_destination_send_post" }, "Body_seo_keywords_v1_seo_keywords_post": { "properties": { "url": { "type": "string", "title": "Url" }, "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords" } }, "type": "object", "required": [ "url", "keywords" ], "title": "Body_seo_keywords_v1_seo_keywords_post" }, "Body_solve_captcha_endpoint_v1_auth_captcha_post": { "properties": { "image_base64": { "type": "string", "title": "Image Base64", "default": "" }, "site_key": { "type": "string", "title": "Site Key", "default": "" }, "page_url": { "type": "string", "title": "Page Url", "default": "" }, "service": { "type": "string", "title": "Service", "default": "capsolver" }, "api_key": { "type": "string", "title": "Api Key", "default": "" } }, "type": "object", "title": "Body_solve_captcha_endpoint_v1_auth_captcha_post" }, "Body_sse_scrape_v1_sse_scrape_post": { "properties": { "url": { "type": "string", "title": "Url" }, "max_events": { "type": "integer", "title": "Max Events", "default": 50 }, "timeout": { "type": "integer", "title": "Timeout", "default": 30 }, "event_filter": { "type": "string", "title": "Event Filter", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_sse_scrape_v1_sse_scrape_post" }, "Body_store_credentials_v1_auth_credentials_post": { "properties": { "name": { "type": "string", "title": "Name" }, "credential_type": { "type": "string", "title": "Credential Type", "default": "password" }, "credentials": { "additionalProperties": true, "type": "object", "title": "Credentials" }, "target_url": { "type": "string", "title": "Target Url", "default": "" } }, "type": "object", "required": [ "name", "credentials" ], "title": "Body_store_credentials_v1_auth_credentials_post" }, "Body_structure_check_template_v1_structure_check_template_post": { "properties": { "template_id": { "type": "string", "title": "Template Id" }, "url": { "type": "string", "title": "Url", "default": "" } }, "type": "object", "required": [ "template_id" ], "title": "Body_structure_check_template_v1_structure_check_template_post" }, "Body_structure_check_v1_structure_check_post": { "properties": { "url": { "type": "string", "title": "Url" }, "selectors": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Selectors" } }, "type": "object", "required": [ "url", "selectors" ], "title": "Body_structure_check_v1_structure_check_post" }, "Body_structure_monitor_v1_structure_monitor_post": { "properties": { "url": { "type": "string", "title": "Url" }, "selectors": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Selectors" }, "template_id": { "type": "string", "title": "Template Id", "default": "" } }, "type": "object", "required": [ "url", "selectors" ], "title": "Body_structure_monitor_v1_structure_monitor_post" }, "Body_sync_commerce_v1_commerce_sync_post": { "properties": { "platform": { "type": "string", "title": "Platform" }, "products": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Products" }, "credentials": { "additionalProperties": true, "type": "object", "title": "Credentials" } }, "type": "object", "required": [ "platform", "products", "credentials" ], "title": "Body_sync_commerce_v1_commerce_sync_post" }, "Body_sync_crm_v1_crm_sync_post": { "properties": { "platform": { "type": "string", "title": "Platform" }, "object_type": { "type": "string", "title": "Object Type", "default": "lead" }, "objects": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Objects" }, "credentials": { "additionalProperties": true, "type": "object", "title": "Credentials" } }, "type": "object", "required": [ "platform", "objects", "credentials" ], "title": "Body_sync_crm_v1_crm_sync_post" }, "Body_test_webhook_v1_webhooks_test_post": { "properties": { "url": { "type": "string", "title": "Url" }, "payload": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Payload" } }, "type": "object", "required": [ "url" ], "title": "Body_test_webhook_v1_webhooks_test_post" }, "Body_tls_impersonate_v1_tls_impersonate_post": { "properties": { "url": { "type": "string", "title": "Url" }, "impersonate": { "type": "string", "title": "Impersonate", "default": "chrome131" }, "proxy": { "type": "string", "title": "Proxy", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_tls_impersonate_v1_tls_impersonate_post" }, "Body_tls_rotate_v1_tls_rotate_post": { "properties": { "url": { "type": "string", "title": "Url" }, "proxy": { "type": "string", "title": "Proxy", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_tls_rotate_v1_tls_rotate_post" }, "Body_ultimate_scrape_v1_ultimate_scrape_post": { "properties": { "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "url" ], "title": "Body_ultimate_scrape_v1_ultimate_scrape_post" }, "Body_update_branding_v1_agency__agency_id__branding_put": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "brand_color": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand Color" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url" }, "custom_domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Domain" } }, "type": "object", "title": "Body_update_branding_v1_agency__agency_id__branding_put" }, "Body_vision_v1_vision_post": { "properties": { "question": { "type": "string", "title": "Question", "default": "Describe what is visible in this image." }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Image" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "file_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "File Path" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "max_tokens": { "type": "integer", "title": "Max Tokens", "default": 800 }, "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" }, "no_fallback": { "type": "boolean", "title": "No Fallback", "default": false } }, "type": "object", "title": "Body_vision_v1_vision_post" }, "Body_warm_cookies_v1_cookies_warm_post": { "properties": { "target_domain": { "type": "string", "title": "Target Domain" }, "pages_to_visit": { "type": "integer", "title": "Pages To Visit", "default": 3 } }, "type": "object", "required": [ "target_domain" ], "title": "Body_warm_cookies_v1_cookies_warm_post" }, "Body_watch_page_v1_watch_post": { "properties": { "url": { "type": "string", "title": "Url" }, "webhook": { "type": "string", "title": "Webhook" } }, "type": "object", "required": [ "url", "webhook" ], "title": "Body_watch_page_v1_watch_post" }, "Body_ws_scrape_v1_ws_scrape_post": { "properties": { "url": { "type": "string", "title": "Url" }, "max_messages": { "type": "integer", "title": "Max Messages", "default": 100 }, "timeout": { "type": "integer", "title": "Timeout", "default": 30 }, "message_filter": { "type": "string", "title": "Message Filter", "default": "" } }, "type": "object", "required": [ "url" ], "title": "Body_ws_scrape_v1_ws_scrape_post" }, "Body_x402_pay_v1_x402_pay_post": { "properties": { "operation": { "type": "string", "title": "Operation" }, "tx_hash": { "type": "string", "title": "Tx Hash" }, "payer_wallet": { "type": "string", "title": "Payer Wallet" }, "network": { "type": "string", "title": "Network", "default": "" }, "asset": { "type": "string", "title": "Asset", "default": "" }, "amount_usd": { "type": "number", "title": "Amount Usd", "default": 0.0 } }, "type": "object", "required": [ "operation", "tx_hash", "payer_wallet" ], "title": "Body_x402_pay_v1_x402_pay_post" }, "Body_x402_payment_request_v1_x402_payment_post": { "properties": { "operation": { "type": "string", "title": "Operation" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "operation" ], "title": "Body_x402_payment_request_v1_x402_payment_post" }, "Body_x402_require_payment_v1_x402_require_payment_post": { "properties": { "operation": { "type": "string", "title": "Operation" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "operation" ], "title": "Body_x402_require_payment_v1_x402_require_payment_post" }, "Body_x402_verify_payment_v1_x402_verify_post": { "properties": { "payment_id": { "type": "string", "title": "Payment Id" }, "tx_hash": { "type": "string", "title": "Tx Hash" }, "network": { "type": "string", "title": "Network", "default": "" }, "asset": { "type": "string", "title": "Asset", "default": "" }, "amount_usd": { "type": "number", "title": "Amount Usd", "default": 0.0 } }, "type": "object", "required": [ "payment_id", "tx_hash" ], "title": "Body_x402_verify_payment_v1_x402_verify_post" }, "CrawlRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "maxPages": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Maxpages", "default": 10 }, "maxDepth": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Maxdepth", "default": 2 }, "scrapeOptions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Scrapeoptions" }, "webhook": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook" } }, "type": "object", "required": [ "url" ], "title": "CrawlRequest" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "MapRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "search": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search" }, "ignoreSitemap": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ignoresitemap", "default": true }, "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "default": 50 } }, "type": "object", "required": [ "url" ], "title": "MapRequest" }, "ParseRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Timeout", "default": 60 } }, "type": "object", "required": [ "url" ], "title": "ParseRequest" }, "ScrapeRequest": { "properties": { "url": { "type": "string", "title": "Url" }, "formats": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Formats" }, "onlyMainContent": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Onlymaincontent", "default": true }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Timeout", "default": 30 }, "bypassCloudflare": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Bypasscloudflare", "default": true }, "jsRender": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Jsrender", "default": false }, "jsonSchema": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Jsonschema" } }, "type": "object", "required": [ "url" ], "title": "ScrapeRequest" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" }, "input": { "title": "Input" }, "ctx": { "type": "object", "title": "Context" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } } } }