pryscraper/openapi.json
cryptorugmunch 8b52f14774
Some checks failed
CI / Secret scan (gitleaks) (push) Successful in 34s
CI / Security audit (bandit) (push) Successful in 35s
CI / test (push) Successful in 1m23s
CI / lint (push) Failing after 49s
CI / typecheck (push) Successful in 55s
feat(pry): phase 0 — split routers, add tests, apify schema, pry api key (#5)
2026-07-03 03:43:02 +02:00

10679 lines
No EOL
300 KiB
JSON

{
"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"
}
}
}
}