{ "status": "completed", "jobId": "b3629517-f38a-4827-8536-25dee8cad0ec", "progress": { "message": "Search completed successfully", "progress": 1 }, "result": { "success": true, "data": { "web": [ { "title": "The 16 Best Espresso Machines of 2026, Tested & Reviewed", "url": "https://www.seriouseats.com/best-espresso-machines-5185482", "description": "We tested 41 home espresso machines to find which 16 pulled the best shots, steamed latte art-worthy microfoam, and were easy to use. We have top picks at all prices.", "position": 1 }, { "title": "Best Espresso Machines 2026 | Tested - Forbes Vetted", "url": "https://www.forbes.com/sites/forbes-personal-shopper/article/best-espresso-machine/", "description": "For devotees of handcrafted café beverages, investing in an espresso machine can save both time and money (particularly in the long run). ...", "position": 2 }, { "title": "The 7 best espresso machines you can buy in 2026 - Tom's Guide", "url": "https://www.tomsguide.com/home/coffee-makers/best-espresso-machines", "description": "Our editor-selected guide to the best espresso machines you can buy, and advice on finding the right one for you.", "position": 3 } ], "nextPageTokens": { "web": "v1.WsrkJb5NyTSUa0o5ESmXstp0yS4ES_TPYDeE7Bl7wNgf_wDV75yX8L5hUnXoANcQxXKPg-5LyY0OKsSnVPQM..." } }, "stats": { "durationMs": 4015 }, "logUuid": "e5a1a64a-75ad-4db2-841e-9b9cd4597bf9" }, "error": null}
Search
Search
Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search.
With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer.
limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job’s jobId back with deduplicated: true.
Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work.
Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.
{ "status": "completed", "jobId": "b3629517-f38a-4827-8536-25dee8cad0ec", "progress": { "message": "Search completed successfully", "progress": 1 }, "result": { "success": true, "data": { "web": [ { "title": "The 16 Best Espresso Machines of 2026, Tested & Reviewed", "url": "https://www.seriouseats.com/best-espresso-machines-5185482", "description": "We tested 41 home espresso machines to find which 16 pulled the best shots, steamed latte art-worthy microfoam, and were easy to use. We have top picks at all prices.", "position": 1 }, { "title": "Best Espresso Machines 2026 | Tested - Forbes Vetted", "url": "https://www.forbes.com/sites/forbes-personal-shopper/article/best-espresso-machine/", "description": "For devotees of handcrafted café beverages, investing in an espresso machine can save both time and money (particularly in the long run). ...", "position": 2 }, { "title": "The 7 best espresso machines you can buy in 2026 - Tom's Guide", "url": "https://www.tomsguide.com/home/coffee-makers/best-espresso-machines", "description": "Our editor-selected guide to the best espresso machines you can buy, and advice on finding the right one for you.", "position": 3 } ], "nextPageTokens": { "web": "v1.WsrkJb5NyTSUa0o5ESmXstp0yS4ES_TPYDeE7Bl7wNgf_wDV75yX8L5hUnXoANcQxXKPg-5LyY0OKsSnVPQM..." } }, "stats": { "durationMs": 4015 }, "logUuid": "e5a1a64a-75ad-4db2-841e-9b9cd4597bf9" }, "error": null}
Where to search. research returns academic papers and preprints, and developer returns GitHub issues and pull requests. Each source comes back as its own list.
Tokens from an earlier result's nextPageTokens, keyed by source, such as { "web": "v1...." }. Send them with the next page number. A token that has expired isn't an error: that source runs as a fresh search.
Reads the top web results and adds each page's Markdown to its result as markdown. Only web results are read. The search takes as long as the slowest page, up to about two minutes.
Show child attributes
Response
Only with wait: true. The search finished within 20 seconds. status is completed with the result, or failed with the reason in error.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Spidra","description":"Spidra documentation — REST API reference, SDK guides, browser automation, CAPTCHA solving, and proxy scraping for AI-powered web data extraction.","colors":{"primary":"#007AFF","light":"#007AFF","dark":"#007AFF"},"logo":{"light":"https://mintcdn.com/spidra/tjYTncBEy2qwqvSx/logo/logo-light.png?fit=max\u0026auto=format\u0026n=tjYTncBEy2qwqvSx\u0026q=85\u0026s=9ee4bb079b87d8aea61a7d42bfecf118","dark":"https://mintcdn.com/spidra/tjYTncBEy2qwqvSx/logo/logo-dark.png?fit=max\u0026auto=format\u0026n=tjYTncBEy2qwqvSx\u0026q=85\u0026s=3633ab236061c0e8200d4d9e0f1a9c05"},"favicon":"https://mintcdn.com/spidra/47EJpglRIcFOVcnQ/favicon.ico?fit=max\u0026auto=format\u0026n=47EJpglRIcFOVcnQ\u0026q=85\u0026s=3c0c6b781fffaaa0dd242f4b886d8917","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.spidra.io"}},"footer":{"socials":{"x":"https://x.com/spidra_io","github":"https://github.com/spidra-io","linkedin":"https://www.linkedin.com/company/spidra-io"}},"seo":{"indexing":"all"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"book-open-cover","href":"https://app.spidra.io"},{"anchor":"GitHub","icon":"github","href":"https://github.com/spidra-io"},{"anchor":"Blog","icon":"newspaper","href":"https://spidra.io/blog"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"https://spidra.io/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spidra","hasAudioNarration":false,"actualSubdomain":"spidra","customDomains":["docs.spidra.io"],"gitSource":{"type":"github","owner":"spidra-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfd50fc5636ede0feee60f","collectionId":"ac01573a-02dd-45d5-9129-1cf184da209c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfd50fc5636ede0feee60f"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6adfd50fc5636ede0feee60f","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"Documentation","count":45},{"language":"default","tag":"SDKs","count":25},{"language":"default","tag":"Popular sites","count":18},{"language":"default","tag":"Monitors","count":13},{"language":"default","tag":"More sites","count":12},{"language":"default","tag":"Crawl","count":10},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Logs","count":7},{"language":"default","tag":"Parse","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"table{width:100%!important;display:table!important}td,th{white-space:normal}"},{"filePath":"style.css","content":"#table-of-contents-layout{flex:0 1 auto;min-height:0;max-height:none}#spidra-toc-cta{position:relative;flex-shrink:0;overflow:hidden;width:16.5rem;margin:1rem 0 1.5rem 2.5rem;border-radius:14px;background:radial-gradient(120% 140% at 0 0,#2d8cff 0,#007aff 40%,#0657c2 100%);color:#fff;box-shadow:0 18px 40px -24px rgba(0,40,120,.55)}#spidra-toc-cta .spidra-cta-dots{position:absolute;inset:0;opacity:.18;background-image:radial-gradient(rgba(255,255,255,.95) 1px,transparent 1.3px);background-size:12px 12px;-webkit-mask-image:linear-gradient(110deg,transparent 25%,#000 80%);mask-image:linear-gradient(110deg,transparent 25%,#000 80%);pointer-events:none}#spidra-toc-cta .spidra-cta-rings{position:absolute;right:-70px;top:-40px;pointer-events:none}#spidra-toc-cta .spidra-cta-rings i{position:absolute;left:50%;top:50%;border:1px solid rgba(255,255,255,.22);border-radius:9999px;transform:translate(-50%,-50%)}#spidra-toc-cta .spidra-cta-rings i:nth-child(1){width:220px;height:220px}#spidra-toc-cta .spidra-cta-rings i:nth-child(2){width:150px;height:150px}#spidra-toc-cta .spidra-cta-rings i:nth-child(3){width:80px;height:80px}#spidra-toc-cta .spidra-cta-body{position:relative;padding:1.1rem 1.15rem}#spidra-toc-cta .spidra-cta-logo{height:18px;width:auto;margin:0 0 .7rem}#spidra-toc-cta .spidra-cta-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:#fff}#spidra-toc-cta .spidra-cta-text{margin:.5rem 0 1.1rem;font-size:.8rem;line-height:1.5;color:rgba(255,255,255,.8)}#spidra-toc-cta a{display:block;text-align:center;font-size:.85rem;font-weight:500;border-radius:9999px;padding:.55rem 1rem;text-decoration:none;transition:background-color .15s ease,transform .15s ease}#spidra-toc-cta .spidra-cta-primary{background:#fff;color:#007aff;box-shadow:0 10px 24px -12px rgba(0,20,80,.6)}#spidra-toc-cta .spidra-cta-primary:hover{transform:translateY(-1px)}#spidra-toc-cta .spidra-cta-secondary{margin-top:.5rem;color:#fff;border:1px solid rgba(255,255,255,.35)}#spidra-toc-cta .spidra-cta-secondary:hover{background:rgba(255,255,255,.1)}.tool-picker{margin:1.25rem 0 1.5rem;border:1px solid rgba(15,23,42,.08);border-radius:14px;overflow:hidden;background:#fff}.tool-picker .tp-head,.tool-picker .tp-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr) minmax(0,1.35fr);gap:1.25rem;align-items:center;padding:.85rem 1.25rem}.tool-picker .tp-head{padding-top:.7rem;padding-bottom:.7rem;background:linear-gradient(180deg,#f5f9ff 0,#fff 100%);border-bottom:1px solid rgba(15,23,42,.08);font-size:.75rem;font-weight:500;letter-spacing:.02em;color:rgba(15,23,42,.5)}.tool-picker .tp-row{position:relative;border-bottom:1px solid rgba(15,23,42,.06);text-decoration:none!important;border-image:none;transition:background-color .15s ease}.tool-picker .tp-row:last-child{border-bottom:0}.tool-picker .tp-row::before{content:\"\";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:2px;background:#007aff;transform:scaleY(0);transition:transform .18s ease}.tool-picker .tp-row:hover{background:#f5f9ff}.tool-picker .tp-row:hover::before{transform:scaleY(1)}.tool-picker .tp-have{font-weight:500;font-size:.9rem;line-height:1.45;color:#0f172a}.tool-picker .tp-tool{font-size:.9rem;font-weight:600;color:#007aff;white-space:nowrap}.tool-picker .tp-get{font-weight:400;font-size:.875rem;line-height:1.45;color:rgba(15,23,42,.62)}html.dark .tool-picker{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.08)}html.dark .tool-picker .tp-head{background:linear-gradient(180deg,rgba(0,122,255,.1) 0,rgba(0,122,255,0) 100%);border-bottom-color:rgba(255,255,255,.08);color:rgba(255,255,255,.45)}html.dark .tool-picker .tp-row{border-bottom-color:rgba(255,255,255,.06)}html.dark .tool-picker .tp-row:hover{background:rgba(0,122,255,.08)}html.dark .tool-picker .tp-have{color:rgba(255,255,255,.92)}html.dark .tool-picker .tp-tool{color:#4da3ff}html.dark .tool-picker .tp-row::before{background:#4da3ff}html.dark .tool-picker .tp-get{color:rgba(255,255,255,.55)}@media (max-width:640px){.tool-picker .tp-head{display:none}.tool-picker .tp-row{grid-template-columns:1fr;gap:.2rem;padding:.9rem 1rem}.tool-picker .tp-tool{order:-1}}.plan-table-wrap{margin:1.25rem 0 1.5rem;border:1px solid rgba(15,23,42,.08);border-radius:14px;overflow-x:auto;background:#fff}.plan-table{width:100%;min-width:620px;margin:0!important;border-collapse:collapse;font-size:.875rem}.plan-table td,.plan-table th{padding:.8rem 1rem;border:0!important;border-bottom:1px solid rgba(15,23,42,.06)!important;text-align:center;vertical-align:middle;color:#0f172a;background:0 0}.plan-table tbody tr:last-child td,.plan-table tbody tr:last-child th{border-bottom:0!important}.plan-table thead th{padding-top:1.25rem;padding-bottom:1rem;border-bottom:1px solid rgba(15,23,42,.08)!important;vertical-align:bottom}.plan-table td{white-space:nowrap}.plan-table .pt-label{width:30%;text-align:left;font-weight:500}.plan-table .pt-hint{display:block;margin-top:.15rem;font-size:.75rem;font-weight:400;color:rgba(15,23,42,.5)}.plan-table .pt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.plan-table .pt-name,.plan-table .pt-price{display:block;font-size:.95rem;font-weight:600}.plan-table .pt-price{margin-top:.2rem;font-size:1.35rem;letter-spacing:-.02em}.plan-table .pt-per{margin-left:.15rem;font-size:.75rem;font-weight:400;letter-spacing:0;color:rgba(15,23,42,.5)}.plan-table .pt-badge{display:inline-block;margin-bottom:.45rem;padding:.1rem .55rem;border-radius:9999px;background:#007aff;color:#fff;font-size:.68rem;font-weight:500}.plan-table .pt-hl{background:#f5f9ff}.plan-table thead .pt-hl{background:linear-gradient(180deg,#e8f2ff 0,#f5f9ff 100%)}.plan-table .pt-hl .pt-price{color:#007aff}.plan-table .pt-check{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:9999px;background:rgba(0,122,255,.1);color:#007aff;font-size:.7rem;font-weight:700}.plan-table .pt-dash{color:rgba(15,23,42,.3)}html.dark .plan-table-wrap{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.08)}html.dark .plan-table td,html.dark .plan-table th{color:rgba(255,255,255,.92);border-bottom-color:rgba(255,255,255,.06)!important}html.dark .plan-table thead th{border-bottom-color:rgba(255,255,255,.08)!important}html.dark .plan-table .pt-hint,html.dark .plan-table .pt-per{color:rgba(255,255,255,.45)}html.dark .plan-table .pt-hl{background:rgba(0,122,255,.08)}html.dark .plan-table thead .pt-hl{background:linear-gradient(180deg,rgba(0,122,255,.18) 0,rgba(0,122,255,.08) 100%)}html.dark .plan-table .pt-check,html.dark .plan-table .pt-hl .pt-price{color:#4da3ff}html.dark .plan-table .pt-dash{color:rgba(255,255,255,.3)}"}],"page":{"pagePath":"api-reference/search/search","slug":"/api-reference/search/search","pageMetadata":{"title":"Search","openapi":"POST /search","keywords":["POST /search","search API","web search endpoint"],"description":"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a `jobId`. Poll [Get a search](/api-reference/search/search-status) until `status` is `completed` or `failed`. Guide: [Search](/search).\n\nWith `wait: true`, the request waits up to 20 seconds and answers `200` with the result. If the search takes longer, you get the usual `202` and poll. `wait` is ignored when you send `scrapeOptions`, since reading pages takes longer.\n\n`limit` is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from `nextPageTokens` back as `pageTokens`. If you send the same search again within 5 seconds, you get the first job's `jobId` back with `deduplicated: true`.\n\n**Credits:** 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With `scrapeOptions`, each page read is billed as a scrape. See [How credits work](/billing/how-credits-work).\n\n**Rate limits:** 60 requests a minute, and up to 10 unfinished searches at a time.\n","href":"/api-reference/search/search"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a \", _jsx(_components.code, {\n children: \"jobId\"\n }), \". Poll \", _jsx(_components.a, {\n href: \"/api-reference/search/search-status\",\n children: \"Get a search\"\n }), \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"completed\"\n }), \" or \", _jsx(_components.code, {\n children: \"failed\"\n }), \". Guide: \", _jsx(_components.a, {\n href: \"/search\",\n children: \"Search\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"With \", _jsx(_components.code, {\n children: \"wait: true\"\n }), \", the request waits up to 20 seconds and answers \", _jsx(_components.code, {\n children: \"200\"\n }), \" with the result. If the search takes longer, you get the usual \", _jsx(_components.code, {\n children: \"202\"\n }), \" and poll. \", _jsx(_components.code, {\n children: \"wait\"\n }), \" is ignored when you send \", _jsx(_components.code, {\n children: \"scrapeOptions\"\n }), \", since reading pages takes longer.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"limit\"\n }), \" is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from \", _jsx(_components.code, {\n children: \"nextPageTokens\"\n }), \" back as \", _jsx(_components.code, {\n children: \"pageTokens\"\n }), \". If you send the same search again within 5 seconds, you get the first job’s \", _jsx(_components.code, {\n children: \"jobId\"\n }), \" back with \", _jsx(_components.code, {\n children: \"deduplicated: true\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Credits:\"\n }), \" 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With \", _jsx(_components.code, {\n children: \"scrapeOptions\"\n }), \", each page read is billed as a scrape. See \", _jsx(_components.a, {\n href: \"/billing/how-credits-work\",\n children: \"How credits work\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Rate limits:\"\n }), \" 60 requests a minute, and up to 10 unfinished searches at a time.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Search","openapi":"POST /search","keywords":["POST /search","search API","web search endpoint"],"description":"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a `jobId`. Poll [Get a search](/api-reference/search/search-status) until `status` is `completed` or `failed`. Guide: [Search](/search).\n\nWith `wait: true`, the request waits up to 20 seconds and answers `200` with the result. If the search takes longer, you get the usual `202` and poll. `wait` is ignored when you send `scrapeOptions`, since reading pages takes longer.\n\n`limit` is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from `nextPageTokens` back as `pageTokens`. If you send the same search again within 5 seconds, you get the first job's `jobId` back with `deduplicated: true`.\n\n**Credits:** 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With `scrapeOptions`, each page read is billed as a scrape. See [How credits work](/billing/how-credits-work).\n\n**Rate limits:** 60 requests a minute, and up to 10 unfinished searches at a time.\n","href":"/api-reference/search/search"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/spidra/fe44716c737c36c1/toc-cta.js"],"openApiReferenceData":{"operation":{"summary":"Search","description":"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a `jobId`. Poll [Get a search](/api-reference/search/search-status) until `status` is `completed` or `failed`. Guide: [Search](/search).\n\nWith `wait: true`, the request waits up to 20 seconds and answers `200` with the result. If the search takes longer, you get the usual `202` and poll. `wait` is ignored when you send `scrapeOptions`, since reading pages takes longer.\n\n`limit` is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from `nextPageTokens` back as `pageTokens`. If you send the same search again within 5 seconds, you get the first job's `jobId` back with `deduplicated: true`.\n\n**Credits:** 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With `scrapeOptions`, each page read is billed as a scrape. See [How credits work](/billing/how-credits-work).\n\n**Rate limits:** 60 requests a minute, and up to 10 unfinished searches at a time.\n","requestBody":"3b527d04-2e15-464f-885b-55a25b0da8b9","responses":{"200":"d78a38b5-9ebe-428b-8d60-66afedaeafe4","202":"00436608-7de7-444e-b10a-0a855a5cb385","401":"001fff9b-19a0-420b-8b51-64ae0a9a8804","402":"e47c0093-679b-4adc-a6db-7377dd1f5452","403":"aea704f9-3071-4d90-94cd-2227006e3bf7","422":"e8313738-3e67-4bd4-b72c-df821fd3d1e0","429":"a3c22e4c-cb08-49cf-b53b-ab5cd29729e7","503":"d55fda6f-6920-4cdd-ad97-54805ed81fd8"},"tags":["Search"],"method":"post","type":"path","servers":["bf13fe36-aa6a-4de6-964d-d06f33bc1bb9"],"security":["6ae77587-e60d-4803-9173-0a1617725897","696cbdd8-eb13-4014-a8dd-ee43246169e7"],"path":"/search","baseUrlOptions":["https://api.spidra.io/api"],"title":"Search","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":2000,"description":"What to search for.","example":"best espresso machine","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"sources":{"type":"array","minItems":1,"items":{"type":"string","enum":["web","news","images","videos","research","developer"],"uniqueKey":"sources.items.[INDEX]","typeLabel":"enum\u003cstring>"},"default":["web"],"description":"Where to search. `research` returns academic papers and preprints, and `developer` returns GitHub issues and pull requests. Each source comes back as its own list.","uniqueKey":"sources","typeLabel":"enum\u003cstring>[]"},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10,"description":"Results per source.","uniqueKey":"limit","typeLabel":"integer"},"page":{"type":"integer","minimum":1,"maximum":5,"default":1,"description":"Which page of results to return. Once you have a result, prefer `pageTokens`, which continues the exact same result set.","uniqueKey":"page","typeLabel":"integer"},"pageTokens":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"pageTokens.additionalProperties","typeLabel":"string"},"description":"Tokens from an earlier result's `nextPageTokens`, keyed by source, such as `{ \"web\": \"v1....\" }`. Send them with the next `page` number. A token that has expired isn't an error: that source runs as a fresh search.","uniqueKey":"pageTokens","typeLabel":"object"},"country":{"type":"string","description":"The country to search from, which changes which results you get. A two-letter code such as `us`, `gb` or `de`, or `global`, `eu` or `asia`.","example":"gb","uniqueKey":"country","typeLabel":"string"},"timeRange":{"type":"string","enum":["hour","day","week","month","year"],"description":"Only return results from this recent period. Some sources don't support every value, and ignore one they can't apply.","uniqueKey":"timeRange","typeLabel":"enum\u003cstring>"},"includeDomains":{"type":"array","maxItems":20,"items":{"type":"string","uniqueKey":"includeDomains.items.[INDEX]","typeLabel":"string"},"description":"Only return results from these domains, such as `[\"github.com\"]`. Can't be used with `excludeDomains`.","uniqueKey":"includeDomains","typeLabel":"string[]"},"excludeDomains":{"type":"array","maxItems":20,"items":{"type":"string","uniqueKey":"excludeDomains.items.[INDEX]","typeLabel":"string"},"description":"Leave out results from these domains. Can't be used with `includeDomains`.","uniqueKey":"excludeDomains","typeLabel":"string[]"},"filetype":{"type":"string","enum":["pdf"],"description":"Only return PDF files.","uniqueKey":"filetype","typeLabel":"enum\u003cstring>"},"wait":{"type":"boolean","default":false,"description":"Waits up to 20 seconds and answers `200` with the result. If the search takes longer, you get `202` and poll as usual. Ignored with `scrapeOptions`.","uniqueKey":"wait","typeLabel":"boolean"},"scrapeOptions":{"type":"object","required":["formats"],"description":"Reads the top web results and adds each page's Markdown to its result as `markdown`. Only web results are read. The search takes as long as the slowest page, up to about two minutes.","properties":{"formats":{"type":"array","items":{"type":"string","enum":["markdown"],"uniqueKey":"scrapeOptions.formats.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"What to add to each result. Only `markdown` is supported.","isRequired":true,"uniqueKey":"scrapeOptions.formats","typeLabel":"enum\u003cstring>[]"},"maxResults":{"type":"integer","minimum":1,"maximum":20,"description":"How many of the top web results to read. Without it, up to 10 are read.","uniqueKey":"scrapeOptions.maxResults","typeLabel":"integer"}},"uniqueKey":"scrapeOptions","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"web_wait":{"title":"web_wait","value":{"query":"best espresso machine","sources":["web"],"limit":3,"wait":true}},"multi_source":{"title":"multi_source","value":{"query":"vector database","sources":["news","research","developer"],"limit":2,"wait":true}},"scrape_content":{"title":"scrape_content","value":{"query":"how to redact data in posthog","sources":["web"],"limit":2,"scrapeOptions":{"formats":["markdown"],"maxResults":1}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"d78a38b5-9ebe-428b-8d60-66afedaeafe4":{"description":"Only with `wait: true`. The search finished within 20 seconds. `status` is `completed` with the result, or `failed` with the reason in `error`.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["completed","failed"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"jobId":{"type":"string","format":"uuid","description":"The job's ID. Works with `GET /search/{jobId}` for the next hour.","uniqueKey":"jobId","typeLabel":"string\u003cuuid>"},"progress":{"type":"object","properties":{"message":{"type":"string","description":"A short status line.","uniqueKey":"progress.message","typeLabel":"string"},"progress":{"type":"number","description":"`1` when completed, `0` when failed.","uniqueKey":"progress.progress","typeLabel":"number"}},"uniqueKey":"progress","typeLabel":"object"},"result":{"oneOf":[{"type":"object","description":"The result when `status` is `completed`, `null` otherwise.","properties":{"success":{"type":"boolean","description":"`false` when no source returned any results. You aren't charged then.","uniqueKey":"result.oneOf.0.success","typeLabel":"boolean"},"data":{"type":"object","description":"One list per source you asked for, plus `nextPageTokens` and, sometimes, `extras`.","properties":{"web":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.web.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.web.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.web.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.web.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.web.items.[INDEX]","typeLabel":"object"},"description":"Web results, when you asked for `web`.","uniqueKey":"result.oneOf.0.data.web","typeLabel":"object[]"},"news":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.news.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.news.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.news.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.news.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.news.items.[INDEX]","typeLabel":"object"},"description":"News articles, when you asked for `news`.","uniqueKey":"result.oneOf.0.data.news","typeLabel":"object[]"},"images":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.images.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.images.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.images.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.images.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.images.items.[INDEX]","typeLabel":"object"},"description":"Images, when you asked for `images`.","uniqueKey":"result.oneOf.0.data.images","typeLabel":"object[]"},"videos":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.videos.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.videos.items.[INDEX]","typeLabel":"object"},"description":"Videos, when you asked for `videos`.","uniqueKey":"result.oneOf.0.data.videos","typeLabel":"object[]"},"research":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.research.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.research.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.research.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.research.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.research.items.[INDEX]","typeLabel":"object"},"description":"Academic papers and preprints, when you asked for `research`.","uniqueKey":"result.oneOf.0.data.research","typeLabel":"object[]"},"developer":{"type":"array","items":{"type":"object","required":["title","url","position"],"description":"One search result. Which optional fields appear depends on the source.","properties":{"title":{"type":"string","description":"The result's title. Developer results start with `PR:` or `Issue:`.","isRequired":true,"uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The result's link. For images, the page the image is on.","isRequired":true,"uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].url","typeLabel":"string"},"position":{"type":"integer","description":"The result's rank within its source, starting at 1.","isRequired":true,"uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].position","typeLabel":"integer"},"description":{"type":"string","description":"The snippet shown with the result. For research, the abstract. For developer results, the repository, its state and the start of the body.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].description","typeLabel":"string"},"imageUrl":{"type":"string","description":"Images only. The full-size image.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].imageUrl","typeLabel":"string"},"thumbnailUrl":{"type":"string","description":"Images and videos. A small preview image.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].thumbnailUrl","typeLabel":"string"},"imageWidth":{"type":"integer","description":"Images only, when known. The width in pixels.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].imageWidth","typeLabel":"integer"},"imageHeight":{"type":"integer","description":"Images only, when known. The height in pixels.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].imageHeight","typeLabel":"integer"},"date":{"type":"string","description":"News, videos, research and developer results. As the source gives it, so it can be relative (`3 years ago`) or a date and time. For research, the publication date.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].date","typeLabel":"string"},"source":{"type":"string","description":"News, research and developer results. The publisher for news, the journal or database for research, and `GitHub` for developer results.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].source","typeLabel":"string"},"duration":{"type":"string","description":"Videos only. The length, such as `24:59`.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].duration","typeLabel":"string"},"authors":{"type":"string","description":"Research and developer results. The authors as one comma-separated string for research, and the username of whoever opened the issue or pull request for developer results.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].authors","typeLabel":"string"},"doi":{"type":"string","description":"Research only, when the paper has one. Its DOI.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].doi","typeLabel":"string"},"markdown":{"type":"string","description":"Web results only, with `scrapeOptions`. The page as Markdown. Missing when the page couldn't be read in time, when it's past `scrapeOptions.maxResults`, or when you were out of credits. That's not an error.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].markdown","typeLabel":"string"},"structuredData":{"type":"object","description":"Web results only, with `scrapeOptions`, when the result is on one of the [popular sites](/sites/overview). The page's data, such as a product's price or a video's views.","uniqueKey":"result.oneOf.0.data.developer.items.[INDEX].structuredData","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.developer.items.[INDEX]","typeLabel":"object"},"description":"GitHub issues and pull requests, when you asked for `developer`.","uniqueKey":"result.oneOf.0.data.developer","typeLabel":"object[]"},"extras":{"type":"object","description":"Extra panels that sometimes come with web results. Only present when the search found them, so never rely on them being there.","properties":{"relatedSearches":{"type":"array","items":{"type":"string","uniqueKey":"result.oneOf.0.data.extras.relatedSearches.items.[INDEX]","typeLabel":"string"},"description":"Related queries people also search for.","uniqueKey":"result.oneOf.0.data.extras.relatedSearches","typeLabel":"string[]"},"topStories":{"type":"array","description":"News stories shown for the query.","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string","description":"The story's headline.","isRequired":true,"uniqueKey":"result.oneOf.0.data.extras.topStories.items.[INDEX].title","typeLabel":"string"},"url":{"type":"string","description":"The story's link.","isRequired":true,"uniqueKey":"result.oneOf.0.data.extras.topStories.items.[INDEX].url","typeLabel":"string"},"source":{"type":"string","description":"The publisher.","uniqueKey":"result.oneOf.0.data.extras.topStories.items.[INDEX].source","typeLabel":"string"},"date":{"type":"string","description":"When it was published","as shown.":null,"uniqueKey":"result.oneOf.0.data.extras.topStories.items.[INDEX].date","typeLabel":"string"}},"uniqueKey":"result.oneOf.0.data.extras.topStories.items.[INDEX]","typeLabel":"object"},"uniqueKey":"result.oneOf.0.data.extras.topStories","typeLabel":"object[]"},"answerBox":{"type":"object","description":"A direct answer, such as a currency or unit conversion.","required":["type","value"],"properties":{"type":{"type":"string","enum":["currency","unit_conversion"],"description":"What kind of answer it is.","isRequired":true,"uniqueKey":"result.oneOf.0.data.extras.answerBox.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"The answer.","isRequired":true,"uniqueKey":"result.oneOf.0.data.extras.answerBox.value","typeLabel":"string"}},"uniqueKey":"result.oneOf.0.data.extras.answerBox","typeLabel":"object"},"knowledgeBox":{"type":"object","description":"A short summary of a company, place or idea.","required":["title"],"properties":{"title":{"type":"string","description":"What the summary is about.","isRequired":true,"uniqueKey":"result.oneOf.0.data.extras.knowledgeBox.title","typeLabel":"string"},"category":{"type":"string","description":"What kind of thing it is.","uniqueKey":"result.oneOf.0.data.extras.knowledgeBox.category","typeLabel":"string"},"description":{"type":"string","description":"The summary.","uniqueKey":"result.oneOf.0.data.extras.knowledgeBox.description","typeLabel":"string"}},"uniqueKey":"result.oneOf.0.data.extras.knowledgeBox","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data.extras","typeLabel":"object"},"nextPageTokens":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"result.oneOf.0.data.nextPageTokens.additionalProperties","typeLabel":"string"},"description":"One token per source that has more results. Send it back as `pageTokens` to get that source's next page. Missing for a source with no more results.","uniqueKey":"result.oneOf.0.data.nextPageTokens","typeLabel":"object"}},"uniqueKey":"result.oneOf.0.data","typeLabel":"object"},"stats":{"type":"object","description":"How the search ran.","properties":{"durationMs":{"type":"integer","description":"How long the search took, in milliseconds.","uniqueKey":"result.oneOf.0.stats.durationMs","typeLabel":"integer"}},"uniqueKey":"result.oneOf.0.stats","typeLabel":"object"},"logUuid":{"type":"string","format":"uuid","description":"The ID of this search in your [search logs](/api-reference/search/search-logs). When you fetch a next page with `pageTokens`, this stays the first page's ID.","uniqueKey":"result.oneOf.0.logUuid","typeLabel":"string\u003cuuid>"}},"uniqueKey":"result.oneOf.0","typeLabel":"object"},{"type":"null","description":"The result when `status` is `completed`, `null` otherwise.","uniqueKey":"result.oneOf.1","typeLabel":"null"}],"uniqueKey":"result","typeLabel":"object | null"},"error":{"oneOf":[{"type":"string","description":"Why the search failed. `null` otherwise.","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the search failed. `null` otherwise.","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"completed","jobId":"b3629517-f38a-4827-8536-25dee8cad0ec","progress":{"message":"Search completed successfully","progress":1},"result":{"success":true,"data":{"web":[{"title":"The 16 Best Espresso Machines of 2026, Tested \u0026 Reviewed","url":"https://www.seriouseats.com/best-espresso-machines-5185482","description":"We tested 41 home espresso machines to find which 16 pulled the best shots, steamed latte art-worthy microfoam, and were easy to use. We have top picks at all prices.","position":1},{"title":"Best Espresso Machines 2026 | Tested - Forbes Vetted","url":"https://www.forbes.com/sites/forbes-personal-shopper/article/best-espresso-machine/","description":"For devotees of handcrafted café beverages, investing in an espresso machine can save both time and money (particularly in the long run). ...","position":2},{"title":"The 7 best espresso machines you can buy in 2026 - Tom's Guide","url":"https://www.tomsguide.com/home/coffee-makers/best-espresso-machines","description":"Our editor-selected guide to the best espresso machines you can buy, and advice on finding the right one for you.","position":3}],"nextPageTokens":{"web":"v1.WsrkJb5NyTSUa0o5ESmXstp0yS4ES_TPYDeE7Bl7wNgf_wDV75yX8L5hUnXoANcQxXKPg-5LyY0OKsSnVPQM..."}},"stats":{"durationMs":4015},"logUuid":"e5a1a64a-75ad-4db2-841e-9b9cd4597bf9"},"error":null},"examples":{"Example":{"title":"Example","value":{"status":"completed","jobId":"b3629517-f38a-4827-8536-25dee8cad0ec","progress":{"message":"Search completed successfully","progress":1},"result":{"success":true,"data":{"web":[{"title":"The 16 Best Espresso Machines of 2026, Tested \u0026 Reviewed","url":"https://www.seriouseats.com/best-espresso-machines-5185482","description":"We tested 41 home espresso machines to find which 16 pulled the best shots, steamed latte art-worthy microfoam, and were easy to use. We have top picks at all prices.","position":1},{"title":"Best Espresso Machines 2026 | Tested - Forbes Vetted","url":"https://www.forbes.com/sites/forbes-personal-shopper/article/best-espresso-machine/","description":"For devotees of handcrafted café beverages, investing in an espresso machine can save both time and money (particularly in the long run). ...","position":2},{"title":"The 7 best espresso machines you can buy in 2026 - Tom's Guide","url":"https://www.tomsguide.com/home/coffee-makers/best-espresso-machines","description":"Our editor-selected guide to the best espresso machines you can buy, and advice on finding the right one for you.","position":3}],"nextPageTokens":{"web":"v1.WsrkJb5NyTSUa0o5ESmXstp0yS4ES_TPYDeE7Bl7wNgf_wDV75yX8L5hUnXoANcQxXKPg-5LyY0OKsSnVPQM..."}},"stats":{"durationMs":4015},"logUuid":"e5a1a64a-75ad-4db2-841e-9b9cd4597bf9"},"error":null}}},"exampleType":"examples"}},"exampleType":"examples"},"00436608-7de7-444e-b10a-0a855a5cb385":{"description":"The search was queued, or it was still running when the 20-second `wait` ran out. Poll `GET /search/{jobId}` for the result.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["queued"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"jobId":{"type":"string","format":"uuid","description":"The job's ID. Use it with `GET /search/{jobId}`.","uniqueKey":"jobId","typeLabel":"string\u003cuuid>"},"message":{"type":"string","description":"Where to poll for the result.","uniqueKey":"message","typeLabel":"string"},"deduplicated":{"type":"boolean","description":"`true` when the same search was sent in the last 5 seconds and this is that job's ID.","uniqueKey":"deduplicated","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"queued":{"title":"queued","value":{"status":"queued","jobId":"7ae18e2b-2953-45d8-9cea-5a246f367c2f","message":"Search job has been queued. Poll /api/search/7ae18e2b-2953-45d8-9cea-5a246f367c2f to get the result."}},"scrape_content":{"title":"scrape_content","value":{"status":"queued","jobId":"08135670-12ca-442d-a48c-e83f0da437d7","message":"Search job has been queued. Poll /api/search/08135670-12ca-442d-a48c-e83f0da437d7 to get the result."}}},"exampleType":"examples"}},"exampleType":"examples"},"001fff9b-19a0-420b-8b51-64ae0a9a8804":{"description":"The API key is missing, wrong, or turned off.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing":{"title":"missing","value":{"status":"error","message":"Missing authentication"}},"invalid":{"title":"invalid","value":{"status":"error","message":"Invalid token or API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"e47c0093-679b-4adc-a6db-7377dd1f5452":{"description":"The account's payment is overdue. Update the payment method in the dashboard to continue.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"error","message":"Your payment is overdue. Please update your payment method to continue searching.","code":"PAYMENT_OVERDUE"},"examples":{"Example":{"title":"Example","value":{"status":"error","message":"Your payment is overdue. Please update your payment method to continue searching.","code":"PAYMENT_OVERDUE"}}},"exampleType":"examples"}},"exampleType":"examples"},"aea704f9-3071-4d90-94cd-2227006e3bf7":{"description":"Either your account doesn't have enough credits for the most this search could cost (every source returning `limit` results), or search isn't turned on for your account.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"credits":{"title":"credits","value":{"status":"error","message":"You have exceeded your monthly credit limit."}},"not_available":{"title":"not_available","value":{"status":"error","message":"This feature isn't available on your account yet."}}},"exampleType":"examples"}},"exampleType":"examples"},"e8313738-3e67-4bd4-b72c-df821fd3d1e0":{"description":"The request isn't valid. `errors` lists every problem.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"query_and_limit":{"title":"query_and_limit","value":{"status":"error","message":"Request validation failed. Fix the errors below and try again.","errors":["\"query\" is required and must be a non-empty string.","\"limit\" must be an integer between 1 and 20."]}},"bad_source":{"title":"bad_source","value":{"status":"error","message":"Request validation failed. Fix the errors below and try again.","errors":["\"sources\" contains invalid values: podcasts. Valid values: web, news, images, videos, research, developer."]}},"both_domain_lists":{"title":"both_domain_lists","value":{"status":"error","message":"Request validation failed. Fix the errors below and try again.","errors":["Use \"includeDomains\" or \"excludeDomains\", not both."]}}},"exampleType":"examples"}},"exampleType":"examples"},"a3c22e4c-cb08-49cf-b53b-ab5cd29729e7":{"description":"Too many requests. Either more than 60 searches in a minute, or 10 searches already unfinished. Wait, then send the request again.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"rate_limit":{"title":"rate_limit","value":{"status":"error","message":"Too many job submissions. Please slow down and try again shortly."}},"pending":{"title":"pending","value":{"status":"error","message":"You have too many pending search jobs. Please wait for some to complete before submitting more.","code":"TOO_MANY_PENDING_JOBS"}}},"exampleType":"examples"}},"exampleType":"examples"},"d55fda6f-6920-4cdd-ad97-54805ed81fd8":{"description":"Search is at capacity. Wait `retry_after` seconds, then send the request again.","content":{"application/json":{"schema":{"type":"object","required":["status","message"],"properties":{"status":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, as a sentence you can show to a person.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"A stable code for the error, when there is one, such as `JOB_NOT_FOUND` or `SERVICE_BUSY`. Branch on this rather than on `message`.","uniqueKey":"code","typeLabel":"string"},"errors":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.oneOf.1.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"On validation errors (`422`), every problem with the request. Scrape, batch, crawl, map and search return a list of sentences. Templates, presets and monitors return `{ field, message }` objects.","uniqueKey":"errors.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"errors","typeLabel":"string[] | object[]"},"retry_after":{"type":"integer","description":"On `503 SERVICE_BUSY`, how many seconds to wait before sending the request again.","uniqueKey":"retry_after","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"error","message":"The search service is currently at capacity. Please retry in a few minutes.","code":"SERVICE_BUSY","retry_after":30},"examples":{"Example":{"title":"Example","value":{"status":"error","message":"The search service is currently at capacity. Please retry in a few minutes.","code":"SERVICE_BUSY","retry_after":30}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"6ae77587-e60d-4803-9173-0a1617725897":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","scopes":[],"schemeName":"BearerAuth"}},"696cbdd8-eb13-4014-a8dd-ee43246169e7":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"bf13fe36-aa6a-4de6-964d-d06f33bc1bb9":{"url":"https://api.spidra.io/api"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API key","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"spidra","siteName":"Spidra","title":"Search - Spidra","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T09:08:38.369Z","originalFileLocation":"api-reference/search/search.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search. With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer. limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job\u0026#x27;s jobId back with deduplicated: true. Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work. Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Spidra\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Search - Spidra\">\u003cmeta data-mint-head property=\"og:description\" content=\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search. With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer. limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job\u0026#x27;s jobId back with deduplicated: true. Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work. Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Spidra\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.spidra.io/api-reference/search/search\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spidra.mintlify.app/_mintlify/api/og/v2?division=Search\u0026amp;title=Search\u0026amp;description=Searches+the+web%2C+news%2C+images%2C+videos%2C+research+papers+or+GitHub+issues+and+pull+requests%2C+and+returns+a+%60jobId%60.+Poll+%5BGet+a+search%5D%28%2Fapi-reference%2Fsearch%2Fsea\u0026amp;theme=fd0fe7fea6781527f1876f07\u0026amp;signature=bcd64fb47bcd99da342ffda78c7318caf468cec0102ac669ccf565123c454814\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Search - Spidra\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search. With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer. limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job\u0026#x27;s jobId back with deduplicated: true. Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work. Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spidra.mintlify.app/_mintlify/api/og/v2?division=Search\u0026amp;title=Search\u0026amp;description=Searches+the+web%2C+news%2C+images%2C+videos%2C+research+papers+or+GitHub+issues+and+pull+requests%2C+and+returns+a+%60jobId%60.+Poll+%5BGet+a+search%5D%28%2Fapi-reference%2Fsearch%2Fsea\u0026amp;theme=fd0fe7fea6781527f1876f07\u0026amp;signature=bcd64fb47bcd99da342ffda78c7318caf468cec0102ac669ccf565123c454814\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/spidra/JYxAUddv93IVFozP/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Spidra\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007AFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.spidra.io/api-reference/search/search\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/search/search.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.spidra.io/#organization\",\"name\":\"Spidra\",\"url\":\"https://docs.spidra.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spidra/tjYTncBEy2qwqvSx/logo/logo-light.png?fit=max\u0026auto=format\u0026n=tjYTncBEy2qwqvSx\u0026q=85\u0026s=9ee4bb079b87d8aea61a7d42bfecf118\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.spidra.io#website\",\"name\":\"Spidra\",\"url\":\"https://docs.spidra.io\",\"publisher\":{\"@id\":\"https://docs.spidra.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.spidra.io/api-reference/search/search#webpage\",\"url\":\"https://docs.spidra.io/api-reference/search/search\",\"name\":\"Search\",\"description\":\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search. With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer. limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job's jobId back with deduplicated: true. Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work. Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.\",\"dateModified\":\"2026-10-25T09:08:38.369Z\",\"isPartOf\":{\"@id\":\"https://docs.spidra.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.spidra.io/api-reference/search/search#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.spidra.io/api-reference/search/search#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Spidra\",\"item\":\"https://docs.spidra.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search\",\"item\":\"https://docs.spidra.io/api-reference/search/search\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.spidra.io/api-reference/search/search#apireference\",\"headline\":\"Search\",\"name\":\"Search\",\"description\":\"Searches the web, news, images, videos, research papers or GitHub issues and pull requests, and returns a jobId. Poll Get a search until status is completed or failed. Guide: Search. With wait: true, the request waits up to 20 seconds and answers 200 with the result. If the search takes longer, you get the usual 202 and poll. wait is ignored when you send scrapeOptions, since reading pages takes longer. limit is per source, so 3 sources at 10 can return 30 results. To get the next page of a source, send its token from nextPageTokens back as pageTokens. If you send the same search again within 5 seconds, you get the first job's jobId back with deduplicated: true. Credits: 1 per 10 results per source, rounded up, so 20 web results cost 2 and 3 cost 1. A source with no results costs nothing. With scrapeOptions, each page read is billed as a scrape. See How credits work. Rate limits: 60 requests a minute, and up to 10 unfinished searches at a time.\",\"url\":\"https://docs.spidra.io/api-reference/search/search\",\"mainEntityOfPage\":{\"@id\":\"https://docs.spidra.io/api-reference/search/search#webpage\"},\"dateModified\":\"2026-10-25T09:08:38.369Z\",\"keywords\":\"POST /search, search API, web search endpoint\",\"publisher\":{\"@id\":\"https://docs.spidra.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.spidra.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Spidra\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Spidra","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"book-open-cover","href":"https://app.spidra.io"},{"anchor":"GitHub","icon":"github","href":"https://github.com/spidra-io"},{"anchor":"Blog","icon":"newspaper","href":"https://spidra.io/blog"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"https://spidra.io/changelog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/overview"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"API introduction","icon":"book","href":"/api-reference/introduction"},{"title":"Errors","icon":"triangle-exclamation","href":"/api-reference/errors"},{"title":"Rate limits","icon":"gauge","href":"/api-reference/rate-limits"},{"title":"Webhooks","icon":"webhook","href":"/api-reference/webhooks"}]},{"group":"Scrape","pages":[{"title":"Start a scrape","openapi":"POST /scrape","href":"/api-reference/scraping/scrape"},{"title":"Get a scrape","openapi":"GET /scrape/{jobId}","href":"/api-reference/scraping/scrape-status"}]},{"group":"Batch scrape","pages":[{"title":"Batch scrape","openapi":"POST /batch/scrape","href":"/api-reference/scraping/batch-scrape"},{"title":"Get a batch","openapi":"GET /batch/scrape/{batchId}","href":"/api-reference/scraping/batch-scrape-status"},{"title":"List batches","openapi":"GET /batch/scrape","href":"/api-reference/scraping/batch-scrape-list"},{"title":"Retry a batch","openapi":"POST /batch/scrape/{batchId}/retry","href":"/api-reference/scraping/batch-scrape-retry"},{"title":"Cancel a batch","openapi":"DELETE /batch/scrape/{batchId}","href":"/api-reference/scraping/batch-scrape-cancel"}]},{"group":"Crawl","pages":[{"title":"Crawl","openapi":"POST /crawl","href":"/api-reference/crawling/crawl"},{"title":"Get a crawl","openapi":"GET /crawl/{jobId}","href":"/api-reference/crawling/crawl-status"},{"title":"Get crawl pages","openapi":"GET /crawl/{jobId}/pages","href":"/api-reference/crawling/crawl-pages"},{"title":"Get a crawl report","openapi":"GET /crawl/{jobId}/report","href":"/api-reference/crawling/crawl-report"},{"title":"Extract from a crawl","openapi":"POST /crawl/{jobId}/extract","href":"/api-reference/crawling/crawl-extract"},{"title":"Retry a crawl page","openapi":"POST /crawl/{jobId}/retry/{pageId}","href":"/api-reference/crawling/crawl-retry-page"},{"title":"Download a crawl","openapi":"GET /crawl/{jobId}/download","href":"/api-reference/crawling/crawl-download"},{"title":"Get crawl details","openapi":"GET /crawl/job/{jobId}","href":"/api-reference/crawling/crawl-details"},{"title":"List crawls","openapi":"GET /crawl/history","href":"/api-reference/crawling/crawl-history"},{"title":"Cancel a crawl","openapi":"DELETE /crawl/{jobId}","href":"/api-reference/crawling/crawl-cancel"}]},{"group":"Map","pages":[{"title":"Map","openapi":"POST /map","description":"Lists a website's page URLs without scraping them, optionally ranked by how well they match a search. It answers in the same request, so there's no job to poll. Guide: [Map](/map).\n\nURLs come from the site's sitemaps and from the links on its pages. Without `search`, current pages come before older versions and translations. With `search`, only matching URLs come back, best matches first. A map that takes longer than 45 seconds fails with `502`.\n\nEvery call is recorded in your [map logs](/api-reference/logs/map-logs).\n\n**Credits:** 1 per call. A map that finds no URLs, or fails, costs nothing.\n\n**Rate limits:** 60 requests a minute.\n","href":"/api-reference/crawling/map"}]},{"group":"Search","pages":[{"title":"Search","openapi":"POST /search","href":"/api-reference/search/search"},{"title":"Get a search","openapi":"GET /search/{jobId}","description":"Returns a search's status and, once it has finished, its results. Poll every 2 to 5 seconds until `status` is `completed` or `failed`. Polling is free and has no rate limit.\n\nA search that found nothing still completes, with `success: false` and empty lists, and costs nothing. A failed or cancelled search answers `200` with `status: \"failed\"` and the reason in `error`, and you aren't charged.\n\nA finished search stays here for about an hour, and a failed one for 24 hours. After that this returns `404`, and the search is still in your [search logs](/api-reference/search/search-logs).\n","href":"/api-reference/search/search-status"},{"title":"Cancel a search","openapi":"DELETE /search/{jobId}","href":"/api-reference/search/search-cancel"}]},{"group":"Parse","pages":[{"title":"Parse","openapi":"POST /parse","href":"/api-reference/parse/parse"},{"title":"Get a parse job","openapi":"GET /parse/{jobId}","href":"/api-reference/parse/parse-status"},{"title":"Parse a batch","openapi":"POST /parse/batch","href":"/api-reference/parse/parse-batch"},{"title":"Get a parse batch","openapi":"GET /parse/batch/{batchId}","href":"/api-reference/parse/parse-batch-status"},{"title":"Prepare a large upload","openapi":"POST /parse/uploads","href":"/api-reference/parse/parse-uploads"},{"title":"Delete a document","openapi":"DELETE /parse/files/{fileId}","href":"/api-reference/parse/parse-delete-file"},{"title":"List formats","openapi":"GET /parse/formats","href":"/api-reference/parse/parse-formats"}]},{"group":"Templates","pages":[{"title":"List templates","openapi":"GET /templates","href":"/api-reference/templates/list"},{"title":"Get a template","openapi":"GET /templates/{slug}","href":"/api-reference/templates/get"},{"title":"Estimate a template run","openapi":"POST /templates/{slug}/estimate","href":"/api-reference/templates/estimate"},{"title":"Run a template","openapi":"POST /templates/{slug}/runs","href":"/api-reference/templates/run"},{"title":"Get a template run","openapi":"GET /template-runs/{runId}","href":"/api-reference/templates/get-run"},{"title":"List template runs","openapi":"GET /template-runs","href":"/api-reference/templates/list-runs"},{"title":"Look up airports","openapi":"GET /templates/lookups/airports","href":"/api-reference/templates/airports"}]},{"group":"Presets","pages":[{"title":"Create a preset","openapi":"POST /presets","href":"/api-reference/presets/create"},{"title":"List presets","openapi":"GET /presets","href":"/api-reference/presets/list"},{"title":"Get a preset","openapi":"GET /presets/{presetId}","href":"/api-reference/presets/get"},{"title":"Update a preset","openapi":"PATCH /presets/{presetId}","href":"/api-reference/presets/update"},{"title":"Delete a preset","openapi":"DELETE /presets/{presetId}","href":"/api-reference/presets/delete"},{"title":"Run a preset","openapi":"POST /presets/{presetId}/runs","href":"/api-reference/presets/run"}]},{"group":"Monitors","pages":[{"title":"Create a monitor","openapi":"POST /monitors","href":"/api-reference/monitors/create"},{"title":"List monitors","openapi":"GET /monitors","href":"/api-reference/monitors/list"},{"title":"Get a monitor","openapi":"GET /monitors/{monitorId}","href":"/api-reference/monitors/get"},{"title":"Update a monitor","openapi":"PATCH /monitors/{monitorId}","href":"/api-reference/monitors/update"},{"title":"Delete a monitor","openapi":"DELETE /monitors/{monitorId}","href":"/api-reference/monitors/delete"},{"title":"Check a monitor now","openapi":"POST /monitors/{monitorId}/check","href":"/api-reference/monitors/check-now"},{"title":"Pause a monitor","openapi":"POST /monitors/{monitorId}/pause","href":"/api-reference/monitors/pause"},{"title":"Resume a monitor","openapi":"POST /monitors/{monitorId}/resume","href":"/api-reference/monitors/resume"},{"title":"List monitor checks","openapi":"GET /monitors/{monitorId}/checks","href":"/api-reference/monitors/list-checks"},{"title":"Get a monitor check","openapi":"GET /monitors/{monitorId}/checks/{checkId}","href":"/api-reference/monitors/get-check"},{"title":"Estimate a monitor","openapi":"POST /monitors/estimate","href":"/api-reference/monitors/estimate"},{"title":"Get monitor limits","openapi":"GET /monitors/limits","href":"/api-reference/monitors/limits"},{"title":"Send a test notification","openapi":"POST /monitors/test-notification","href":"/api-reference/monitors/test-notification"}]},{"group":"Logs","pages":[{"title":"List scrape logs","openapi":"GET /scrape-logs","href":"/api-reference/scraping/scrape-logs"},{"title":"Get a scrape log","openapi":"GET /scrape-logs/{uuid}","href":"/api-reference/scraping/scrape-logs-detail"},{"title":"List search logs","openapi":"GET /search-logs","href":"/api-reference/search/search-logs"},{"title":"Get a search log","openapi":"GET /search-logs/{uuid}","href":"/api-reference/search/search-logs-detail"},{"title":"List map logs","openapi":"GET /map-logs","href":"/api-reference/logs/map-logs"},{"title":"Get a map log","openapi":"GET /map-logs/{uuid}","href":"/api-reference/logs/map-logs-detail"},{"title":"List parse logs","openapi":"GET /parse-logs","href":"/api-reference/logs/parse-logs"}]},{"group":"Account","pages":[{"title":"Account","openapi":"GET /account","href":"/api-reference/account/account"},{"title":"Usage stats","openapi":"GET /usage-stats","href":"/api-reference/account/usage-stats"},{"title":"Usage by tool","openapi":"GET /usage-stats/breakdown","href":"/api-reference/account/usage-breakdown"}]}]}]},"title":"Search - Spidra","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}