{"openapi":"3.1.0","info":{"title":"URLpipe API","version":"1","summary":"Turn any URL into clean data: Markdown, HTML, screenshots, metadata, summaries, keywords, Lighthouse and console output.","description":"Every endpoint takes a JSON body with a `url`. Requests are asynchronous by default: the response is a token, and the result is delivered to `report_to` (or the project's default webhook) and can be fetched with GET /result/{token}. Send `sync: true` to get the result in the response instead. Full documentation: https://urlpipe.dev/docs","contact":{"email":"contact@urlpipe.dev","url":"https://urlpipe.dev"},"termsOfService":"https://urlpipe.dev/terms"},"servers":[{"url":"https://urlpipe.dev"}],"externalDocs":{"url":"https://urlpipe.dev/docs"},"security":[{"bearerAuth":[]}],"paths":{"/html":{"post":{"operationId":"html","summary":"Rendered HTML of a page","description":"1 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/html","externalDocs":{"url":"https://urlpipe.dev/docs/html"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"$ref":"#/components/schemas/Accepted"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/markdown":{"post":{"operationId":"markdown","summary":"A page's main content as Markdown","description":"1 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/markdown","externalDocs":{"url":"https://urlpipe.dev/docs/markdown"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"$ref":"#/components/schemas/Accepted"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/screenshot":{"post":{"operationId":"screenshot","summary":"Screenshot of a page","description":"1 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/screenshot","externalDocs":{"url":"https://urlpipe.dev/docs/screenshot"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenshotRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"text/plain":{"schema":{"type":"string","contentEncoding":"base64","description":"The image, Base64-encoded."}},"application/json":{"schema":{"$ref":"#/components/schemas/Accepted"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/meta":{"post":{"operationId":"meta","summary":"A page's metadata","description":"5 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/meta","externalDocs":{"url":"https://urlpipe.dev/docs/meta"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Metadata"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/summarize":{"post":{"operationId":"summarize","summary":"AI summary of a page","description":"17 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/summarize","externalDocs":{"url":"https://urlpipe.dev/docs/summarize"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"$ref":"#/components/schemas/Accepted"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/keywords":{"post":{"operationId":"keywords","summary":"Keywords of a page","description":"15 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/keywords","externalDocs":{"url":"https://urlpipe.dev/docs/keywords"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/lighthouse":{"post":{"operationId":"lighthouse","summary":"Lighthouse audit of a page","description":"2 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/lighthouse","externalDocs":{"url":"https://urlpipe.dev/docs/lighthouse"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LighthouseRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LighthouseResult"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/console":{"post":{"operationId":"console","summary":"JavaScript console output of a page","description":"1 credit(s) per successful, uncached call. Documentation: https://urlpipe.dev/docs/console","externalDocs":{"url":"https://urlpipe.dev/docs/console"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConsoleEntry"}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/scrape":{"post":{"operationId":"scrape","summary":"Several operations from one page visit","description":"The sum of the operations it runs. Documentation: https://urlpipe.dev/docs/scrape","externalDocs":{"url":"https://urlpipe.dev/docs/scrape"},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeRequest"}}}},"responses":{"200":{"description":"With `sync: true`, the result. Without it, the request was accepted: a token to collect the result with.","headers":{"X-Result-Token":{"description":"The request's token, for GET /result/{token}.","schema":{"type":"string"}},"X-Cache":{"description":"`hit` or `miss`.","schema":{"type":"string"}},"X-Quota-Cost":{"description":"Credits this request spent.","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Credits left this month.","schema":{"type":"integer"}},"X-Concurrency-Limit":{"description":"Requests this plan may run in parallel.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeResult"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key is valid, but the email address on the account hasn't been confirmed yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The URL or an option is invalid, or the page could not be fetched (the error says which). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Over the plan's parallel-request limit (`concurrency_limit`), sending too fast (`rate_limited`), or — Free plan only — out of credits (`quota_exceeded`). Spends nothing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"A sync request took longer than 60 seconds; the work continues — collect it with GET /result/{token}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/result/{token}":{"get":{"operationId":"getResult","summary":"Collect a result by its token","description":"Results are kept for 30 days. Documentation: https://urlpipe.dev/docs/results","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The result, in the operation's own format — the same body a sync request returns."},"202":{"description":"Still being generated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Processing"}}}},"404":{"description":"No result for this token under this project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"The result is older than 30 days.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The analysis ran and failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A project API key."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Makes a retry safe: the same key returns the first request's token and result instead of running again. https://urlpipe.dev/docs/retries"}},"schemas":{"PageRequest":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The page to fetch: a public http(s) URL."},"sync":{"type":"boolean","default":false,"description":"Return the result in the response instead of a token."},"report_to":{"type":"string","format":"uri","description":"Webhook URL the result is POSTed to (async requests)."},"max_age":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"How fresh a cached result must be: seconds, or a duration like \"3 days\". Default 7 days, maximum 30; 0 bypasses the cache."},"labels":{"type":"object","maxProperties":16,"additionalProperties":{"type":"string","maxLength":256},"description":"Your own ids for this request, returned with the result and the webhook."},"residential":{"type":"boolean","default":false,"description":"Fetch from a home broadband address. +25 credits per page visit."},"page_options":{"$ref":"#/components/schemas/PageOptions"}}},"ScreenshotRequest":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The page to fetch: a public http(s) URL."},"sync":{"type":"boolean","default":false,"description":"Return the result in the response instead of a token."},"report_to":{"type":"string","format":"uri","description":"Webhook URL the result is POSTed to (async requests)."},"max_age":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"How fresh a cached result must be: seconds, or a duration like \"3 days\". Default 7 days, maximum 30; 0 bypasses the cache."},"labels":{"type":"object","maxProperties":16,"additionalProperties":{"type":"string","maxLength":256},"description":"Your own ids for this request, returned with the result and the webhook."},"residential":{"type":"boolean","default":false,"description":"Fetch from a home broadband address. +25 credits per page visit."},"page_options":{"$ref":"#/components/schemas/PageOptions"},"screenshot_options":{"$ref":"#/components/schemas/ScreenshotOptions"}}},"LighthouseRequest":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The page to fetch: a public http(s) URL."},"sync":{"type":"boolean","default":false,"description":"Return the result in the response instead of a token."},"report_to":{"type":"string","format":"uri","description":"Webhook URL the result is POSTed to (async requests)."},"max_age":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"How fresh a cached result must be: seconds, or a duration like \"3 days\". Default 7 days, maximum 30; 0 bypasses the cache."},"labels":{"type":"object","maxProperties":16,"additionalProperties":{"type":"string","maxLength":256},"description":"Your own ids for this request, returned with the result and the webhook."},"residential":{"type":"boolean","default":false,"description":"Fetch from a home broadband address. +25 credits per page visit."},"device":{"type":"string","enum":["mobile","desktop"],"default":"mobile"},"include_audits":{"oneOf":[{"type":"boolean"},{"type":"string"}],"default":false,"description":"Include the full audits object."}}},"ScrapeRequest":{"type":"object","required":["url","operations"],"properties":{"url":{"type":"string","format":"uri","description":"The page to fetch: a public http(s) URL."},"sync":{"type":"boolean","default":false,"description":"Return the result in the response instead of a token."},"report_to":{"type":"string","format":"uri","description":"Webhook URL the result is POSTed to (async requests)."},"max_age":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"How fresh a cached result must be: seconds, or a duration like \"3 days\". Default 7 days, maximum 30; 0 bypasses the cache."},"labels":{"type":"object","maxProperties":16,"additionalProperties":{"type":"string","maxLength":256},"description":"Your own ids for this request, returned with the result and the webhook."},"residential":{"type":"boolean","default":false,"description":"Fetch from a home broadband address. +25 credits per page visit."},"page_options":{"$ref":"#/components/schemas/PageOptions"},"operations":{"type":"array","minItems":1,"items":{"type":"string","enum":["html","markdown","screenshot","meta","summarize","keywords","lighthouse","console"]}},"screenshot_options":{"$ref":"#/components/schemas/ScreenshotOptions"},"device":{"type":"string","enum":["mobile","desktop"],"default":"mobile"},"include_audits":{"oneOf":[{"type":"boolean"},{"type":"string"}],"default":false,"description":"Include the full audits object."}}},"PageOptions":{"type":"object","properties":{"wait_for_selector":{"type":"string","description":"Wait for this CSS selector, up to 10 seconds."},"delay":{"type":"integer","minimum":0,"maximum":10000,"description":"Milliseconds to wait after the page settles."},"block_ads":{"type":"boolean","default":false},"block_cookie_banners":{"type":"boolean","default":false},"remove_selectors":{"type":"array","items":{"type":"string"},"maxItems":50}}},"ScreenshotOptions":{"type":"object","properties":{"full_page":{"type":"boolean","default":true},"full_page_max_height":{"type":"integer","minimum":100,"maximum":16384},"viewport_width":{"type":"integer","minimum":320,"maximum":1920,"default":1350},"viewport_height":{"type":"integer","minimum":240,"maximum":1080,"default":797},"device_scale_factor":{"type":"integer","minimum":1,"maximum":3,"default":1},"selector":{"type":"string","description":"Capture only this element."},"format":{"type":"string","enum":["png","jpeg","webp"],"default":"png"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80,"description":"JPEG and WebP only."},"omit_background":{"type":"boolean","default":false},"dark_mode":{"type":"boolean","default":false},"hide_selectors":{"type":"array","items":{"type":"string"}},"styles":{"type":"string","maxLength":20000,"description":"CSS injected before the capture."}}},"Accepted":{"type":"object","required":["token","status"],"properties":{"token":{"type":"string"},"status":{"type":"string","const":"accepted"},"labels":{"type":"object"}}},"Processing":{"type":"object","required":["token","status"],"properties":{"token":{"type":"string"},"status":{"type":"string","const":"processing"},"labels":{"type":"object"}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"token":{"type":"string"}}},"Metadata":{"type":"object","properties":{"title":{"type":["string","null"]},"description":{"type":["string","null"]},"language":{"type":["string","null"]},"main_image_url":{"type":["string","null"]},"favicon_url":{"type":["string","null"]},"author_name":{"type":["string","null"]},"feed_url":{"type":["string","null"]},"publication_date":{"type":["string","null"]},"additional_author_information":{"type":["object","null"]}}},"ConsoleEntry":{"type":"object","properties":{"type":{"type":"string","enum":["error","warning","exception"]},"text":{"type":"string"}}},"LighthouseResult":{"type":"object","properties":{"url":{"type":"string"},"fetchTime":{"type":"string"},"device":{"type":"string"},"categories":{"type":"object"},"metrics":{"type":"object"},"audits":{"type":"object"}}},"ScrapeResult":{"type":"object","properties":{"url":{"type":"string"},"operations":{"type":"object","description":"One key per operation requested, in the order asked for.","additionalProperties":{"type":"object","properties":{"success":{"type":"boolean"},"result":{},"error":{"type":"string"},"cached":{"type":"boolean"}}}}}}}}}