Search the live web and get ranked results — optionally with each page’s text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.
Search the live web and get ranked results in a single call — optionally with each page’s clean text, the passages most relevant to your query, and an AI-written summary. Built for AI agents, RAG pipelines and research tools that need fresh, citable sources.
Synchronous. Results come back in the response body. There is no request_id to poll, no webhook and no job status — request_id in the response is only an identifier for support. The amount charged is returned in cost.
Leave include out to get only url, title and whatever metadata the page exposes (published_at, author, image). Add any of these to include to get page content in the same call:
text — the page as clean text. true returns up to 20,000 characters; {"max_length": 5000} sets your own cap (1–100,000).
excerpts — the passages most relevant to your query. {"query": "..."} steers them towards a different question.
summary — an AI-written summary of each result (balanced mode only). {"query": "..."} focuses it on a question.
Optional fields are omitted from a result when the page does not provide them — check for presence rather than null.
Filters
only_domains — up to 50 bare hostnames (deapi.ai, docs.deapi.ai). No scheme, path, port or wildcard.
country — ISO 3166-1 alpha-2 code (US, DE, PL) to bias results towards a country.
published_after / published_before — ISO 8601 dates; published_before cannot be earlier than published_after.
Example
curl -X POST "https://api.deapi.ai/api/v2/web/search" \ -H "Authorization: Bearer $DEAPI_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "query": "FLUX.2 image model release", "mode": "balanced", "limit": 3, "include": { "text": { "max_length": 2000 }, "excerpts": true, "summary": { "query": "What is new in this model?" } } }'
Response
{ "request_id": "dc260284-883c-44be-b61b-ef82a3486a50", "cost": 0.012, "results": [ { "url": "https://bfl.ai/blog/flux-2", "title": "FLUX.2: Frontier Visual Intelligence | Black Forest Labs", "published_at": "2025-11-25T15:11:07+00:00", "image": "https://bfl.ai/api/og/blog/flux-2", "text": "FLUX.2: Frontier Visual Intelligence ...", "excerpts": ["FLUX.2 is designed for real-world creative workflows ..."], "summary": "FLUX.2 introduces several major enhancements ..." } ]}
Already have the URLs? Use Web Contents to read specific pages instead of searching.
Authorizations
Authorization
string
header
required
Sanctum personal access token, sent as Authorization: Bearer <token>. The token is opaque — it carries no claims and no embedded expiry, so do not attempt to decode it. Issue and revoke tokens from your account dashboard.
Headers
Accept
enum<string>
default:application/json
required
Available options:
application/json
Body
application/json
query
string
required
What to search for, in natural language or as keywords.
Maximum string length: 2000
Example:
"open source text to image models 2026"
mode
enum<string>
default:balanced
quick is the fastest and cheapest; balanced takes a little longer, returns better-ranked results and is the only mode that can return summary. Defaults to balanced.
Available options:
quick,
balanced
Example:
"quick"
limit
integer
default:10
Maximum number of results. The base price covers up to 10 results; every result above 10 adds to the price.
Required range: 1 <= x <= 25
Example:
5
include
object
Page content to return with each result. Leave it out to get only url, title and the metadata the page exposes.
Show child attributes
only_domains
string[]
Return results from these domains only. Bare hostnames such as deapi.ai or docs.deapi.ai — no scheme, path, port or wildcard.
Maximum array length: 50
Example:
["deapi.ai", "docs.deapi.ai"]
country
string
Bias results towards a country. ISO 3166-1 alpha-2 code, case-insensitive (e.g. US, DE, PL).
Required string length: 2
Example:
"US"
published_after
string<date>
Only results published on or after this date (ISO 8601 date or date-time).
Example:
"2026-01-01"
published_before
string<date>
Only results published on or before this date (ISO 8601 date or date-time). Must not be earlier than published_after.
Example:
"2026-11-01"
Response
Search results.
Returned directly — there is no data envelope and no job to poll.
request_id
string<uuid>
Identifier of this request, useful when contacting support.
Example:
"ba1e1b58-a12c-4f83-9ec7-572e301fa1c2"
cost
number<float>
What this request was charged, in USD. Matches the amount deducted from the balance and reported by the usage endpoints.
Example:
0.0048
results
object[]
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"deAPI","colors":{"primary":"#FD9A00","light":"#FFAD33","dark":"#E58A00"},"logo":{"light":"https://mintcdn.com/deapi-f9ba3abb/gSOvhf4F2Dm8oAad/logo/deapi-light.svg?fit=max\u0026auto=format\u0026n=gSOvhf4F2Dm8oAad\u0026q=85\u0026s=e44c94d9c161aa9264f717cd49f375e5","dark":"https://mintcdn.com/deapi-f9ba3abb/gSOvhf4F2Dm8oAad/logo/deapi-dark.svg?fit=max\u0026auto=format\u0026n=gSOvhf4F2Dm8oAad\u0026q=85\u0026s=4f204c43a4a41d8f476b76d91ac5ee7c"},"favicon":"https://mintcdn.com/deapi-f9ba3abb/-BqpLinCKwOHWbhI/favicon.png?fit=max\u0026auto=format\u0026n=-BqpLinCKwOHWbhI\u0026q=85\u0026s=295488219f7cfd2b9a7007447e093121","api":{"openapi":["openapi.json","openapi-v1.json"]},"navbar":{"links":[{"href":"https://app.deapi.ai/dashboard","label":"Dashboard"},{"href":"https://status.deapi.ai/","label":"Status"},{"href":"https://github.com/deapi-ai","label":"GitHub"}],"primary":{"type":"button","label":"Get API Key","href":"https://app.deapi.ai/dashboard"}},"footer":{"socials":{"github":"https://github.com/deapi-ai","twitter":"https://x.com/deAPI_","discord":"https://discord.com/invite/UFfK5YRBsr","x":"https://x.com/deAPI_"}},"search":{"prompt":"Search deAPI docs..."},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"deapi-f9ba3abb","hasAudioNarration":false,"actualSubdomain":"deapi-f9ba3abb","customDomains":["docs.deapi.ai"],"gitSource":{"type":"github","owner":"deapi-ai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af6fa9d3b5d1dd9e7c6a288","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"API v2 (Latest)","count":51},{"language":"default","tag":"API v1 (Deprecated)","count":40},{"language":"default","tag":"Guides","count":18},{"language":"default","tag":"Generation","count":14},{"language":"default","tag":"Analysis","count":12},{"language":"default","tag":"Images","count":10},{"language":"default","tag":"Videos","count":10},{"language":"default","tag":"Get started","count":8},{"language":"default","tag":"Transformation","count":8},{"language":"default","tag":"API Keys","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/v2/web/search","slug":"/api/v2/web/search","pageMetadata":{"title":"Web Search","openapi":"openapi.json POST /api/v2/web/search","description":"Search the live web and get ranked results — optionally with each page's text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no `request_id` to poll, no webhook and no job status. The amount charged is returned in `cost`.","href":"/api/v2/web/search"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Search the live web and get ranked results — optionally with each page’s text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no \", _jsx(_components.code, {\n children: \"request_id\"\n }), \" to poll, no webhook and no job status. The amount charged is returned in \", _jsx(_components.code, {\n children: \"cost\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Search the live web and get ranked results in a single call — optionally with each page’s clean text, the passages most relevant to your query, and an AI-written summary. Built for AI agents, RAG pipelines and research tools that need fresh, citable sources.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Synchronous.`}),` Results come back in the response body. There is no `,_jsx(_components.code,{children:`request_id`}),` to poll, no webhook and no job status — `,_jsx(_components.code,{children:`request_id`}),` in the response is only an identifier for support. The amount charged is returned in `,_jsx(_components.code,{children:`cost`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`modes`,children:`Modes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`mode`})}),_jsx(_components.th,{children:`Use it for`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`summary`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`quick`})}),_jsx(_components.td,{children:`Lowest latency and price — autocomplete, agent tool calls, fact lookups`}),_jsx(_components.td,{children:`Not available (422)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`balanced`}),` (default)`]}),_jsx(_components.td,{children:`Better-ranked results for research and RAG`}),_jsx(_components.td,{children:`Available`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`getting-page-content-with-the-results`,children:`Getting page content with the results`}),`\n`,_jsxs(_components.p,{children:[`Leave `,_jsx(_components.code,{children:`include`}),` out to get only `,_jsx(_components.code,{children:`url`}),`, `,_jsx(_components.code,{children:`title`}),` and whatever metadata the page exposes (`,_jsx(_components.code,{children:`published_at`}),`, `,_jsx(_components.code,{children:`author`}),`, `,_jsx(_components.code,{children:`image`}),`). Add any of these to `,_jsx(_components.code,{children:`include`}),` to get page content in the same call:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`text`})}),` — the page as clean text. `,_jsx(_components.code,{children:`true`}),` returns up to 20,000 characters; `,_jsx(_components.code,{children:`{\"max_length\": 5000}`}),` sets your own cap (1–100,000).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`excerpts`})}),` — the passages most relevant to your `,_jsx(_components.code,{children:`query`}),`. `,_jsx(_components.code,{children:`{\"query\": \"...\"}`}),` steers them towards a different question.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`summary`})}),` — an AI-written summary of each result (`,_jsx(_components.code,{children:`balanced`}),` mode only). `,_jsx(_components.code,{children:`{\"query\": \"...\"}`}),` focuses it on a question.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Optional fields are `,_jsx(_components.strong,{children:`omitted`}),` from a result when the page does not provide them — check for presence rather than `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`filters`,children:`Filters`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`only_domains`})}),` — up to 50 bare hostnames (`,_jsx(_components.code,{children:`deapi.ai`}),`, `,_jsx(_components.code,{children:`docs.deapi.ai`}),`). No scheme, path, port or wildcard.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`country`})}),` — ISO 3166-1 alpha-2 code (`,_jsx(_components.code,{children:`US`}),`, `,_jsx(_components.code,{children:`DE`}),`, `,_jsx(_components.code,{children:`PL`}),`) to bias results towards a country.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`published_after`})}),` / `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`published_before`})}),` — ISO 8601 dates; `,_jsx(_components.code,{children:`published_before`}),` cannot be earlier than `,_jsx(_components.code,{children:`published_after`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.deapi.ai/api/v2/web/search\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$DEAPI_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Accept: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"query\": \"FLUX.2 image model release\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mode\": \"balanced\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"limit\": 3,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"include\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"text\": { \"max_length\": 2000 },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"excerpts\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"summary\": { \"query\": \"What is new in this model?\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`Response`,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"request_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dc260284-883c-44be-b61b-ef82a3486a50\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cost\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.012`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"results\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bfl.ai/blog/flux-2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"FLUX.2: Frontier Visual Intelligence | Black Forest Labs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"published_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-11-25T15:11:07+00:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bfl.ai/api/og/blog/flux-2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"FLUX.2: Frontier Visual Intelligence ...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"excerpts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"FLUX.2 is designed for real-world creative workflows ...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"summary\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"FLUX.2 introduces several major enhancements ...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pricing`,children:`Pricing`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Component`}),_jsx(_components.th,{children:`Price`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`quick`}),` search, up to 10 results`]}),_jsx(_components.td,{children:`0.0048 USD`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`balanced`}),` search, up to 10 results`]}),_jsx(_components.td,{children:`0.0084 USD`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Each result above 10 (`,_jsx(_components.code,{children:`limit`}),` 11–25)`]}),_jsx(_components.td,{children:`+0.0012 USD`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`summary`})}),_jsxs(_components.td,{children:[`+0.0012 USD per result (counted from `,_jsx(_components.code,{children:`limit`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`excerpts`})]}),_jsx(_components.td,{children:`Included`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`/api/v2/web/search-price`,children:`Web Search Price`}),` to get the exact quote for a request body. See also `,_jsx(_components.a,{href:`/pricing`,children:`Pricing`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Already have the URLs? Use `,_jsx(_components.a,{href:`/api/v2/web/contents`,children:`Web Contents`}),` to read specific pages instead of searching.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Web Search","openapi":"openapi.json POST /api/v2/web/search","description":"Search the live web and get ranked results — optionally with each page's text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no `request_id` to poll, no webhook and no job status. The amount charged is returned in `cost`.","href":"/api/v2/web/search"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Modes","slug":"modes","depth":3,"children":[]},{"title":"Getting page content with the results","slug":"getting-page-content-with-the-results","depth":3,"children":[]},{"title":"Filters","slug":"filters","depth":3,"children":[]},{"title":"Example","slug":"example","depth":3,"children":[]},{"title":"Pricing","slug":"pricing","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Client API v2"],"summary":"Search the web","description":"Search the live web and get ranked results — optionally with each page's text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no `request_id` to poll, no webhook and no job status. The amount charged is returned in `cost`.","operationId":"webSearch","parameters":["bac5b26a-0ada-4464-9818-53ce64b61db6"],"requestBody":"310cb8f8-b6e7-4a2c-afbc-bc7142e08193","responses":{"200":"694027df-6b33-4791-bdb0-a3ffcf68990f","401":"12ccf5e7-e2bb-4c08-9489-3f1410ee56fa","402":"b2a0109c-55e3-42db-af85-02a4a44cd344","403":"a5a49ccb-431c-4357-92d4-89ca9c71b421","404":"f6780f40-c682-4727-9d04-b33b04670e08","422":"bf007750-9ebd-4791-b45e-9949919f8d37","429":"7eea49b2-3312-40d0-a6d7-12d191f180a5"},"security":["084152a6-dc84-46c9-b0b4-709f723efda8"],"method":"post","type":"path","servers":["232e82ca-05c0-4de0-b6fa-0a8bb607e14f"],"path":"/api/v2/web/search","baseUrlOptions":["https://api.deapi.ai"],"title":"Search the web","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"bac5b26a-0ada-4464-9818-53ce64b61db6":{"name":"Accept","in":"header","required":true,"schema":{"type":"string","default":"application/json","enum":["application/json"],"isRequired":true,"uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"description":"What to search for, in natural language or as keywords.","type":"string","maxLength":2000,"example":"open source text to image models 2026","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"mode":{"description":"`quick` is the fastest and cheapest; `balanced` takes a little longer, returns better-ranked results and is the only mode that can return `summary`. Defaults to `balanced`.","type":"string","enum":["quick","balanced"],"default":"balanced","example":"quick","uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"limit":{"description":"Maximum number of results. The base price covers up to 10 results; every result above 10 adds to the price.","type":"integer","minimum":1,"maximum":25,"default":10,"example":5,"uniqueKey":"limit","typeLabel":"integer"},"include":{"description":"Page content to return with each result. Leave it out to get only `url`, `title` and the metadata the page exposes.","type":"object","additionalProperties":false,"properties":{"text":{"oneOf":[{"type":"boolean","description":"Return the page as clean text (Markdown-like). `true` uses the default length cap of 20,000 characters; an object lets you set your own cap. Longer pages are cut at the cap.","example":{"max_length":5000},"uniqueKey":"include.text.oneOf.0","typeLabel":"boolean"},{"type":"object","description":"Return the page as clean text (Markdown-like). `true` uses the default length cap of 20,000 characters; an object lets you set your own cap. Longer pages are cut at the cap.","example":{"max_length":5000},"properties":{"max_length":{"description":"Maximum number of characters of text returned per page.","type":"integer","minimum":1,"maximum":100000,"example":5000,"uniqueKey":"include.text.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"include.text.oneOf.1","typeLabel":"object"}],"uniqueKey":"include.text","typeLabel":"boolean | object"},"excerpts":{"oneOf":[{"type":"boolean","description":"Return the passages of the page most relevant to your search (or to `query`, if you set one). `true` ranks passages against the search query; on the contents endpoint, which has no search query, pass an object with `query` to steer the selection.","example":true,"uniqueKey":"include.excerpts.oneOf.0","typeLabel":"boolean"},{"type":"object","description":"Return the passages of the page most relevant to your search (or to `query`, if you set one). `true` ranks passages against the search query; on the contents endpoint, which has no search query, pass an object with `query` to steer the selection.","example":true,"properties":{"query":{"description":"What the excerpts should be about.","type":"string","minLength":1,"maxLength":2000,"example":"pricing","uniqueKey":"include.excerpts.oneOf.1.query","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"include.excerpts.oneOf.1","typeLabel":"object"}],"uniqueKey":"include.excerpts","typeLabel":"boolean | object"},"summary":{"oneOf":[{"type":"boolean","description":"AI-written summary of each result. Only available in `balanced` mode — in `quick` mode the request is refused with 422 (`include.summary`).","example":{"query":"What does this company offer?"},"uniqueKey":"include.summary.oneOf.0","typeLabel":"boolean"},{"type":"object","description":"AI-written summary of each result. Only available in `balanced` mode — in `quick` mode the request is refused with 422 (`include.summary`).","example":{"query":"What does this company offer?"},"properties":{"query":{"description":"Question or angle the summary should answer.","type":"string","minLength":1,"maxLength":2000,"example":"What does this company offer?","uniqueKey":"include.summary.oneOf.1.query","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"include.summary.oneOf.1","typeLabel":"object"}],"uniqueKey":"include.summary","typeLabel":"boolean | object"}},"uniqueKey":"include","typeLabel":"object"},"only_domains":{"description":"Return results from these domains only. Bare hostnames such as `deapi.ai` or `docs.deapi.ai` — no scheme, path, port or wildcard.","type":"array","maxItems":50,"items":{"type":"string","example":"deapi.ai","uniqueKey":"only_domains.items.[INDEX]","typeLabel":"string"},"example":["deapi.ai","docs.deapi.ai"],"uniqueKey":"only_domains","typeLabel":"string[]"},"country":{"description":"Bias results towards a country. ISO 3166-1 alpha-2 code, case-insensitive (e.g. `US`, `DE`, `PL`).","type":"string","minLength":2,"maxLength":2,"example":"US","uniqueKey":"country","typeLabel":"string"},"published_after":{"description":"Only results published on or after this date (ISO 8601 date or date-time).","type":"string","format":"date","example":"2026-01-01","uniqueKey":"published_after","typeLabel":"string\u003cdate>"},"published_before":{"description":"Only results published on or before this date (ISO 8601 date or date-time). Must not be earlier than `published_after`.","type":"string","format":"date","example":"2026-11-01","uniqueKey":"published_before","typeLabel":"string\u003cdate>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"query":"open source text to image models 2026","mode":"quick","limit":5,"include":{"text":{"max_length":5000},"excerpts":true,"summary":{"query":"What does this company offer?"}},"only_domains":["deapi.ai","docs.deapi.ai"],"country":"US","published_after":"2026-01-01","published_before":"2026-11-01"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"694027df-6b33-4791-bdb0-a3ffcf68990f":{"description":"Search results.","headers":{"X-RateLimit-Policy":{"description":"Every window that applies, as `\u003climit>;w=\u003cseconds>` elements. Always present on a throttled response, so a single element means there is no daily limit — do not infer that from the absence of the Daily-* headers. `300;w=60` is minute-only; `3;w=60, 100;w=86400` is both.","schema":{"type":"string","example":"3;w=60, 100;w=86400"}},"X-RateLimit-Source":{"description":"Where the limit came from, so you know what would change it:\n`tier` — your account tier's rate for this endpoint;\n`fallback` — no rate configured for this tier and endpoint, degraded default in force;\n`model` — a per-model override for the model in the request, unaffected by your tier\n(only when the request carried a recognised `model`, otherwise the tier pool applies);\n`static` — a flat limit outside the tier system, identical for every account.\n\nIf you ever see `fallback`, tell us: it means no rate is configured for that tier and endpoint.","schema":{"type":"string","example":"tier","enum":["tier","fallback","model","static"]}},"X-RateLimit-Limit":{"description":"Maximum requests allowed per minute (RPM) — including on a `daily` rejection, where the day is reported by the Daily-* pair beside it. On a 429 whose `X-RateLimit-Type` names a bucket outside the request rate (`key-creation`, `ip-not-allowed`) it is that bucket's allowance instead, over the window `X-RateLimit-Policy` gives.","schema":{"type":"integer","example":3}},"X-RateLimit-Remaining":{"description":"Requests left in the window `X-RateLimit-Limit` describes — so on a `daily` rejection it is the minute window and can still be non-zero; `X-RateLimit-Daily-Remaining` is the one at 0 there.","schema":{"type":"integer","example":2}},"X-RateLimit-Reset":{"description":"Epoch second at which the window described by `X-RateLimit-Limit` refills — the minute (RPM) one unless `X-RateLimit-Type` names another bucket. Fixed window: the value does not drift as you spend the quota. Describes the same window as X-RateLimit-Limit, including on a daily rejection.","schema":{"type":"integer","example":1755800460}},"X-RateLimit-Daily-Limit":{"description":"Maximum requests allowed per day (RPD)","schema":{"type":"integer","example":100}},"X-RateLimit-Daily-Remaining":{"description":"Remaining requests in current day window","schema":{"type":"integer","example":95}},"X-RateLimit-Daily-Reset":{"description":"Epoch second at which the daily (RPD) window refills — 86400 s after the first request that opened this bucket's window, not a calendar midnight. Present only when a daily limit applies.","schema":{"type":"integer","example":1755846000}}},"content":{"application/json":{"schema":{"type":"object","description":"Returned directly — there is no `data` envelope and no job to poll.","properties":{"request_id":{"description":"Identifier of this request, useful when contacting support.","type":"string","format":"uuid","example":"ba1e1b58-a12c-4f83-9ec7-572e301fa1c2","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"cost":{"description":"What this request was charged, in USD. Matches the amount deducted from the balance and reported by the usage endpoints.","type":"number","format":"float","example":0.0048,"uniqueKey":"cost","typeLabel":"number\u003cfloat>"},"results":{"type":"array","items":{"type":"object","required":["url"],"description":"One search hit. Every field except `url` is optional and omitted (not null) when unavailable.","properties":{"url":{"description":"Page URL.","type":"string","format":"uri","example":"https://deapi.ai/","isRequired":true,"uniqueKey":"results.items.[INDEX].url","typeLabel":"string\u003curi>"},"title":{"description":"Page title. Omitted when the page has none.","type":"string","example":"deAPI - One API for Open Source Generative AI Models","uniqueKey":"results.items.[INDEX].title","typeLabel":"string"},"published_at":{"description":"Publication date, when the page exposes one. Omitted otherwise.","type":"string","format":"date-time","example":"2026-10-20T08:48:00+00:00","uniqueKey":"results.items.[INDEX].published_at","typeLabel":"string\u003cdate-time>"},"author":{"description":"Author, when the page exposes one. Omitted otherwise.","type":"string","example":"deAPI","uniqueKey":"results.items.[INDEX].author","typeLabel":"string"},"image":{"description":"Representative image (e.g. the Open Graph image), when the page has one. Omitted otherwise.","type":"string","format":"uri","example":"https://deapi.ai/images/og/og-deapi.jpg","uniqueKey":"results.items.[INDEX].image","typeLabel":"string\u003curi>"},"text":{"description":"Page text, present when `text` was requested. Cut at `max_length` (default 20,000 characters).","type":"string","uniqueKey":"results.items.[INDEX].text","typeLabel":"string"},"excerpts":{"description":"Most relevant passages, present when `excerpts` was requested.","type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].excerpts.items.[INDEX]","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].excerpts","typeLabel":"string[]"},"summary":{"description":"AI-written summary, present when `summary` was requested.","type":"string","uniqueKey":"results.items.[INDEX].summary","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"quick":{"title":"quick","value":{"request_id":"ba1e1b58-a12c-4f83-9ec7-572e301fa1c2","cost":0.0048,"results":[{"url":"https://huggingface.co/models?pipeline_tag=text-to-image","title":"Text-to-Image Models – Hugging Face"},{"url":"https://fluence.ai/blog/best-open-source-text-to-image-models/","title":"12 Best Open Source Image Generation Models (in 2026)","published_at":"2026-10-20T08:48:00+00:00","author":"Fluence"}]}},"with_content":{"title":"with_content","value":{"request_id":"dc260284-883c-44be-b61b-ef82a3486a50","cost":0.012,"results":[{"url":"https://bfl.ai/blog/flux-2","title":"FLUX.2: Frontier Visual Intelligence | Black Forest Labs","published_at":"2025-11-25T15:11:07+00:00","image":"https://bfl.ai/api/og/blog/flux-2","text":"FLUX.2: Frontier Visual Intelligence | Black Forest Labs\n\n# FLUX.2: Frontier Visual Intelligence\n\nNovember 25, 2025 5 min read ...","excerpts":["# FLUX.2: Frontier Visual Intelligence\n\nFLUX.2 is designed for real-world creative workflows ..."],"summary":"FLUX.2 introduces several major enhancements for real-world creative workflows: multi-reference support ..."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"12ccf5e7-e2bb-4c08-9489-3f1410ee56fa":{"description":"Missing, unknown, expired or deactivated key — `code` says which: `missing_key`, `invalid_key`, `key_expired` or `key_revoked`.","content":{"application/json":{"schema":{"properties":{"data":{"description":"Information from success endpoint","type":"object","uniqueKey":"data","typeLabel":"object"},"message":{"description":"Error general message","type":"string","uniqueKey":"message","typeLabel":"string"},"errors":{"description":"Information about errors","type":"array","items":{"oneOf":[{}],"uniqueKey":"errors.items.[INDEX]","typeLabel":"any"},"uniqueKey":"errors","typeLabel":"any[]"},"statusCode":{"description":"Status code","type":"integer","uniqueKey":"statusCode","typeLabel":"integer"},"code":{"description":"A stable, machine-readable reason, on the responses that publish one. Refused credentials (401): `missing_key` — no Bearer credentials arrived at all; `invalid_key` — a key was presented but is unknown, carries the wrong secret, or is malformed; `key_expired` — past its expiry date; `key_revoked` — deactivated. Refused requests: `insufficient_permissions` (403), `ip_not_allowed` (403), `active_key_limit_reached` (422), `insufficient_balance` (422), `key_limit_exceeded` (402), `rate_limited` (429). Absent wherever a response publishes no code, so treat an unknown value as the status code alone — the list grows.","type":"string","enum":["missing_key","invalid_key","key_expired","key_revoked","insufficient_permissions","ip_not_allowed","active_key_limit_reached","insufficient_balance","key_limit_exceeded","rate_limited"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{},"message":"\u003cstring>","errors":["\u003cunknown>"],"statusCode":123,"code":"missing_key"}}},"exampleType":"generated"}},"exampleType":"generated"},"b2a0109c-55e3-42db-af85-02a4a44cd344":{"description":"The API key sending the request has no room left under its own spend limit (`limit` / `reset_interval` on the key). Nothing was created and nothing was charged — the request is refused before the job exists. `resets_at` is when the window starts over and work flows again; it is null for a limit that never resets (`reset_interval: none`), and the way through then is to raise or remove the limit on the key. The key itself stays active — an exhausted limit refuses work, it does not deactivate anything, and the account's other keys are unaffected.\n\nDO NOT confuse `key_limit_exceeded` with `active_key_limit_reached`. This one is about MONEY: one key, one window, one ceiling in USD, and it is a 402 on the endpoints that spend. `active_key_limit_reached` is about the NUMBER of keys an account may keep active at once, and it is a 422 on POST /v2/keys and PATCH /v2/keys/{id}. They share no field and no remedy.\n\n`limit_used` here and the totals from GET /keys/{id}/usage are different questions and will not agree: usage sums what the key spent over the period you ask for, this counts what went through the ceiling since the current window opened, nothing is counted while a key has no limit, and a post-paid request counts at its estimate until the provider reports its real cost.","content":{"application/json":{"schema":{"properties":{"message":{"type":"string","example":"This API key has reached its spend limit of $100.00. It resets on 2026-10-22T10:00:00+00:00.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","example":"key_limit_exceeded","enum":["key_limit_exceeded"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"description":"The key's ceiling for the window, in USD.","type":"number","format":"float","example":100,"uniqueKey":"limit","typeLabel":"number\u003cfloat>"},"used":{"description":"Spent against it in the window running now.","type":"number","format":"float","example":99.5,"uniqueKey":"used","typeLabel":"number\u003cfloat>"},"remaining":{"description":"What is left of it. Never negative.","type":"number","format":"float","example":0.5,"uniqueKey":"remaining","typeLabel":"number\u003cfloat>"},"resets_at":{"oneOf":[{"description":"When the window starts over. Null for a limit that never resets.","type":"string","format":"date-time","example":"2026-10-22T10:00:00+00:00","uniqueKey":"resets_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"description":"When the window starts over. Null for a limit that never resets.","type":"null","format":"date-time","example":"2026-10-22T10:00:00+00:00","uniqueKey":"resets_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"resets_at","typeLabel":"string\u003cdate-time> | null"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"This API key has reached its spend limit of $100.00. It resets on 2026-10-22T10:00:00+00:00.","code":"key_limit_exceeded","limit":100,"used":99.5,"remaining":0.5,"resets_at":"2026-10-22T10:00:00+00:00"}}},"exampleType":"generated"}},"exampleType":"generated"},"a5a49ccb-431c-4357-92d4-89ca9c71b421":{"description":"The account is suspended. Applies to every endpoint that spends credits — generation, transcription and prompt enhancement — and is returned before any validation runs, so a suspended account sees this rather than a 422 about the body. Price-estimate endpoints are not gated and keep working.","content":{"application/json":{"schema":{"properties":{"message":{"description":"Human-readable explanation. No `errors` object accompanies this response.","type":"string","example":"Client account is suspended. If you believe this is a mistake, contact us.","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Client account is suspended. If you believe this is a mistake, contact us."}}},"exampleType":"generated"}},"exampleType":"generated"},"f6780f40-c682-4727-9d04-b33b04670e08":{"description":"Not found.","content":{"application/json":{"schema":{"properties":{"data":{"description":"Information from success endpoint","type":"object","uniqueKey":"data","typeLabel":"object"},"message":{"description":"Error general message","type":"string","uniqueKey":"message","typeLabel":"string"},"errors":{"description":"Information about errors","type":"array","items":{"oneOf":[{}],"uniqueKey":"errors.items.[INDEX]","typeLabel":"any"},"uniqueKey":"errors","typeLabel":"any[]"},"statusCode":{"description":"Status code","type":"integer","uniqueKey":"statusCode","typeLabel":"integer"},"code":{"description":"A stable, machine-readable reason, on the responses that publish one. Refused credentials (401): `missing_key` — no Bearer credentials arrived at all; `invalid_key` — a key was presented but is unknown, carries the wrong secret, or is malformed; `key_expired` — past its expiry date; `key_revoked` — deactivated. Refused requests: `insufficient_permissions` (403), `ip_not_allowed` (403), `active_key_limit_reached` (422), `insufficient_balance` (422), `key_limit_exceeded` (402), `rate_limited` (429). Absent wherever a response publishes no code, so treat an unknown value as the status code alone — the list grows.","type":"string","enum":["missing_key","invalid_key","key_expired","key_revoked","insufficient_permissions","ip_not_allowed","active_key_limit_reached","insufficient_balance","key_limit_exceeded","rate_limited"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{},"message":"\u003cstring>","errors":["\u003cunknown>"],"statusCode":123,"code":"missing_key"}}},"exampleType":"generated"}},"exampleType":"generated"},"bf007750-9ebd-4791-b45e-9949919f8d37":{"description":"Validation failed. Common errors include: model does not exist, model does not support the inference type for this endpoint, the model is not available on your plan (it requires a higher tier than your account has — upgrade to use it), or invalid request parameters.\n\nAn account without the funds for the request is refused here too, reported on the `balance` field and carrying `code: insufficient_balance`. It is the one validation failure worth branching on: nothing about the request is wrong, so retrying it unchanged succeeds once the account is topped up. The code is present only when `balance` is the sole failure — a request that is also malformed is not a money problem.","content":{"application/json":{"schema":{"properties":{"message":{"description":"General error message","type":"string","example":"The selected model does not support Text To Image.","uniqueKey":"message","typeLabel":"string"},"code":{"description":"Only on a refusal for want of funds: `insufficient_balance`. Absent on every other validation failure.","type":"string","example":"insufficient_balance","enum":["insufficient_balance"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"errors":{"description":"Detailed validation errors by field. A model your plan does not cover is reported on the \"model\" field with the message \"This model is not available on your plan. Please upgrade to access it.\" Such a model is also omitted from GET /models.","type":"object","example":{"model":["This model is not available on your plan. Please upgrade to access it."]},"uniqueKey":"errors","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"The selected model does not support Text To Image.","code":"insufficient_balance","errors":{"model":["This model is not available on your plan. Please upgrade to access it."]}}}},"exampleType":"generated"}},"exampleType":"generated"},"7eea49b2-3312-40d0-a6d7-12d191f180a5":{"description":"Rate limit exceeded. `X-RateLimit-Type` says which bucket refused you and which bucket the other `X-RateLimit-*` headers describe: the minute (RPM) or daily (RPD) request window, or — on a key carrying an IP whitelist — `ip-not-allowed`, the separate allowance for calls from an address the list refuses. That last one is counted against the calling address rather than the account, so being refused from a blocked address never spends the owner's request allowance.","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed per minute (RPM) — including on a `daily` rejection, where the day is reported by the Daily-* pair beside it. On a 429 whose `X-RateLimit-Type` names a bucket outside the request rate (`key-creation`, `ip-not-allowed`) it is that bucket's allowance instead, over the window `X-RateLimit-Policy` gives.","schema":{"type":"integer","example":3}},"X-RateLimit-Remaining":{"description":"Requests left in the window `X-RateLimit-Limit` describes — so on a `daily` rejection it is the minute window and can still be non-zero; `X-RateLimit-Daily-Remaining` is the one at 0 there.","schema":{"type":"integer","example":2}},"X-RateLimit-Daily-Limit":{"description":"Maximum requests allowed per day (RPD)","schema":{"type":"integer","example":100}},"X-RateLimit-Daily-Remaining":{"description":"Remaining requests in current day window","schema":{"type":"integer","example":95}},"X-RateLimit-Type":{"description":"Which limit rejected the request. Sent only on 429. Read it before anything else\non the response: it decides what the other `X-RateLimit-*` headers are counting.\n\n`minute` — the per-request RPM window. `X-RateLimit-Limit`/`-Remaining`/`-Reset`\ndescribe it, and the Daily-* pair describes the day next to it when one applies.\n\n`daily` — the per-request RPD window. The Daily-* pair is the one at 0; the\nunprefixed trio keeps describing the minute window, so it can be non-zero.\n\n`key-creation` — the hourly cap on keys created over the API (`POST /v2/keys`),\nper account and shared by its ADMIN keys, counted separately from the request\nrate. The whole `X-RateLimit-*` set describes that bucket and there are no\nDaily-* headers, so `Retry-After` can be an hour while your request rate is\nbarely touched. That is not a contradiction — it is a different bucket.\n\n`ip-not-allowed` — too many calls from an address your key's IP whitelist\nrefuses. Counted against that address, never against your account: a call from a\nblocked address does not spend your request allowance, which is why it cannot be\nused to exhaust it. Fix the whitelist or call from a listed address.\n\nThe buckets are independent, so do not compare figures across responses that\nreport different types — and do not assume the minute window when a 429 names\nanother one, or you will retry straight into the same refusal.","schema":{"type":"string","example":"minute","enum":["minute","daily","key-creation","ip-not-allowed"]}},"Retry-After":{"description":"Seconds until the window that rejected you frees up — the one `X-RateLimit-Type` names (up to 60 for minute, 3600 for key-creation, 86400 for daily). Counted from when that window opened, not to a calendar boundary. Sent only on 429.","schema":{"type":"integer","example":60}},"X-RateLimit-Reset":{"description":"Epoch second at which the window described by `X-RateLimit-Limit` refills — the minute (RPM) one unless `X-RateLimit-Type` names another bucket. Fixed window: the value does not drift as you spend the quota. Describes the same window as X-RateLimit-Limit, including on a daily rejection.","schema":{"type":"integer","example":1755800460}},"X-RateLimit-Daily-Reset":{"description":"Epoch second at which the daily (RPD) window refills — 86400 s after the first request that opened this bucket's window, not a calendar midnight. Present only when a daily limit applies.","schema":{"type":"integer","example":1755846000}},"X-RateLimit-Source":{"description":"Where the limit came from, so you know what would change it:\n`tier` — your account tier's rate for this endpoint;\n`fallback` — no rate configured for this tier and endpoint, degraded default in force;\n`model` — a per-model override for the model in the request, unaffected by your tier\n(only when the request carried a recognised `model`, otherwise the tier pool applies);\n`static` — a flat limit outside the tier system, identical for every account.\n\nIf you ever see `fallback`, tell us: it means no rate is configured for that tier and endpoint.","schema":{"type":"string","example":"tier","enum":["tier","fallback","model","static"]}},"X-RateLimit-Policy":{"description":"Every window that applies, as `\u003climit>;w=\u003cseconds>` elements. Always present on a throttled response, so a single element means there is no daily limit — do not infer that from the absence of the Daily-* headers. `300;w=60` is minute-only; `3;w=60, 100;w=86400` is both.","schema":{"type":"string","example":"3;w=60, 100;w=86400"}}},"content":{"application/json":{"schema":{"description":"Rate limit exceeded response","properties":{"message":{"description":"Error message","type":"string","example":"Too Many Attempts.","uniqueKey":"message","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"Too Many Attempts."}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"084152a6-dc84-46c9-b0b4-709f723efda8":{"bearerAuth":{"type":"http","description":"Sanctum personal access token, sent as `Authorization: Bearer \u003ctoken>`. The token is opaque — it carries no claims and no embedded expiry, so do not attempt to decode it. Issue and revoke tokens from your account dashboard.","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"232e82ca-05c0-4de0-b6fa-0a8bb607e14f":{"url":"https://api.deapi.ai","description":"Production API Server base URL"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Sanctum personal access token, sent as `Authorization: Bearer \u003ctoken>`. The token is opaque — it carries no claims and no embedded expiry, so do not attempt to decode it. Issue and revoke tokens from your account dashboard.","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Sanctum personal access token, sent as `Authorization: Bearer \u003ctoken>`. The token is opaque — it carries no claims and no embedded expiry, so do not attempt to decode it. Issue and revoke tokens from your account dashboard.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"deapi-f9ba3abb","siteName":"deAPI","title":"Web Search - deAPI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T11:55:17.894Z","originalFileLocation":"api/v2/web/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=\"Search the live web and get ranked results — optionally with each page\u0026#x27;s text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.\">\u003cmeta data-mint-head name=\"application-name\" content=\"deAPI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Web Search - deAPI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Search the live web and get ranked results — optionally with each page\u0026#x27;s text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"deAPI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.deapi.ai/api/v2/web/search\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://deapi-f9ba3abb.mintlify.site/_mintlify/api/og/v2?division=Web\u0026amp;title=Web+Search\u0026amp;description=Search+the+live+web+and+get+ranked+results+%E2%80%94+optionally+with+each+page%27s+text%2C+the+most+relevant+excerpts+and+an+AI-written+summary+%E2%80%94+in+a+single+synchronous+ca\u0026amp;theme=4ac60e264d9f8b3667e22e5a\u0026amp;signature=0620a9291e7cb12caa0679a948c888ed0bc6cc1fd82dea90a7daab317bec4702\">\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=\"Web Search - deAPI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Search the live web and get ranked results — optionally with each page\u0026#x27;s text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://deapi-f9ba3abb.mintlify.site/_mintlify/api/og/v2?division=Web\u0026amp;title=Web+Search\u0026amp;description=Search+the+live+web+and+get+ranked+results+%E2%80%94+optionally+with+each+page%27s+text%2C+the+most+relevant+excerpts+and+an+AI-written+summary+%E2%80%94+in+a+single+synchronous+ca\u0026amp;theme=4ac60e264d9f8b3667e22e5a\u0026amp;signature=0620a9291e7cb12caa0679a948c888ed0bc6cc1fd82dea90a7daab317bec4702\">\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/deapi-f9ba3abb/33g1Y_LWZKSlqOOT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"deAPI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FD9A00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.deapi.ai/api/v2/web/search\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/v2/web/search.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.deapi.ai/#organization\",\"name\":\"deAPI\",\"url\":\"https://docs.deapi.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/deapi-f9ba3abb/gSOvhf4F2Dm8oAad/logo/deapi-light.svg?fit=max\u0026auto=format\u0026n=gSOvhf4F2Dm8oAad\u0026q=85\u0026s=e44c94d9c161aa9264f717cd49f375e5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.deapi.ai#website\",\"name\":\"deAPI\",\"url\":\"https://docs.deapi.ai\",\"publisher\":{\"@id\":\"https://docs.deapi.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.deapi.ai/api/v2/web/search#webpage\",\"url\":\"https://docs.deapi.ai/api/v2/web/search\",\"name\":\"Web Search\",\"description\":\"Search the live web and get ranked results — optionally with each page's text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.\",\"dateModified\":\"2026-11-13T11:55:17.894Z\",\"isPartOf\":{\"@id\":\"https://docs.deapi.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.deapi.ai/api/v2/web/search#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.deapi.ai/api/v2/web/search#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"deAPI\",\"item\":\"https://docs.deapi.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Search\",\"item\":\"https://docs.deapi.ai/api/v2/web/search\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.deapi.ai/api/v2/web/search#apireference\",\"headline\":\"Web Search\",\"name\":\"Web Search\",\"description\":\"Search the live web and get ranked results — optionally with each page's text, the most relevant excerpts and an AI-written summary — in a single synchronous call. The response is returned directly: there is no request_id to poll, no webhook and no job status. The amount charged is returned in cost.\",\"url\":\"https://docs.deapi.ai/api/v2/web/search\",\"mainEntityOfPage\":{\"@id\":\"https://docs.deapi.ai/api/v2/web/search#webpage\"},\"dateModified\":\"2026-11-13T11:55:17.894Z\",\"publisher\":{\"@id\":\"https://docs.deapi.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.deapi.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"deAPI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"deAPI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api/v2/web/search.md","siteName":"deAPI","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API v2 (Latest)","groups":[{"group":"Overview","pages":[{"title":"API Overview","href":"/api/v2/overview"},{"title":"Errors","href":"/api/v2/errors"}]},{"group":"Images","pages":[{"title":"Image Generation","openapi":"openapi.json POST /api/v2/images/generations","href":"/api/v2/images/generations"},{"title":"Image Generation Price Calculation","openapi":"openapi.json POST /api/v2/images/generations/price","href":"/api/v2/images/generations-price"},{"title":"Image Edit","openapi":"openapi.json POST /api/v2/images/edits","href":"/api/v2/images/edits"},{"title":"Image Edit Price Calculation","openapi":"openapi.json POST /api/v2/images/edits/price","href":"/api/v2/images/edits-price"},{"title":"Image OCR","openapi":"openapi.json POST /api/v2/images/ocr","href":"/api/v2/images/ocr"},{"title":"Image OCR Price Calculation","openapi":"openapi.json POST /api/v2/images/ocr/price","href":"/api/v2/images/ocr-price"},{"title":"Image Background Removal","openapi":"openapi.json POST /api/v2/images/background-removals","href":"/api/v2/images/background-removals"},{"title":"Image Background Removal Price Calculation","openapi":"openapi.json POST /api/v2/images/background-removals/price","href":"/api/v2/images/background-removals-price"},{"title":"Image Upscale","openapi":"openapi.json POST /api/v2/images/upscales","href":"/api/v2/images/upscales"},{"title":"Image Upscale Price Calculation","openapi":"openapi.json POST /api/v2/images/upscales/price","href":"/api/v2/images/upscales-price"}]},{"group":"Videos","pages":[{"title":"Video Generation","openapi":"openapi.json POST /api/v2/videos/generations","href":"/api/v2/videos/generations"},{"title":"Video Generation Price Calculation","openapi":"openapi.json POST /api/v2/videos/generations/price","href":"/api/v2/videos/generations-price"},{"title":"Video Animation (Image-to-Video)","openapi":"openapi.json POST /api/v2/videos/animations","href":"/api/v2/videos/animations"},{"title":"Video Animation Price Calculation","openapi":"openapi.json POST /api/v2/videos/animations/price","href":"/api/v2/videos/animations-price"},{"title":"Video Audio Sync (Audio-to-Video)","openapi":"openapi.json POST /api/v2/videos/audio-syncs","href":"/api/v2/videos/audio-syncs"},{"title":"Video Audio Sync Price Calculation","openapi":"openapi.json POST /api/v2/videos/audio-syncs/price","href":"/api/v2/videos/audio-syncs-price"},{"title":"Video Upscale","openapi":"openapi.json POST /api/v2/videos/upscales","href":"/api/v2/videos/upscales"},{"title":"Video Upscale Price Calculation","openapi":"openapi.json POST /api/v2/videos/upscales/price","href":"/api/v2/videos/upscales-price"},{"title":"Video Description","openapi":"openapi.json POST /api/v2/videos/descriptions","href":"/api/v2/videos/descriptions"},{"title":"Video Description Price Calculation","openapi":"openapi.json POST /api/v2/videos/descriptions/price","href":"/api/v2/videos/descriptions-price"}]},{"group":"Audio","pages":[{"title":"Text-to-Speech","openapi":"openapi.json POST /api/v2/audio/speech","href":"/api/v2/audio/speech"},{"title":"Text-to-Speech Price Calculation","openapi":"openapi.json POST /api/v2/audio/speech/price","href":"/api/v2/audio/speech-price"},{"title":"Text-to-Music","openapi":"openapi.json POST /api/v2/audio/music","href":"/api/v2/audio/music"},{"title":"Text-to-Music Price Calculation","openapi":"openapi.json POST /api/v2/audio/music/price","href":"/api/v2/audio/music-price"},{"title":"Audio/Video Transcription","openapi":"openapi.json POST /api/v2/audio/transcriptions","href":"/api/v2/audio/transcriptions"},{"title":"Transcription Price Calculation","openapi":"openapi.json POST /api/v2/audio/transcriptions/price","href":"/api/v2/audio/transcriptions-price"}]},{"group":"Embeddings","pages":[{"title":"Embeddings","openapi":"openapi.json POST /api/v2/embeddings","href":"/api/v2/embeddings/embeddings"},{"title":"Embeddings Price Calculation","openapi":"openapi.json POST /api/v2/embeddings/price","description":"Estimate the price of an embedding request.","href":"/api/v2/embeddings/embeddings-price"}]},{"group":"Web","pages":[{"title":"Web Search","openapi":"openapi.json POST /api/v2/web/search","href":"/api/v2/web/search"},{"title":"Web Search Price Calculation","openapi":"openapi.json POST /api/v2/web/search/price","description":"Estimate what a web search would cost. Accepts the same body as `POST /api/v2/web/search` and validates it the same way. Nothing is charged.","href":"/api/v2/web/search-price"},{"title":"Web Contents","openapi":"openapi.json POST /api/v2/web/contents","href":"/api/v2/web/contents"},{"title":"Web Contents Price Calculation","openapi":"openapi.json POST /api/v2/web/contents/price","href":"/api/v2/web/contents-price"}]},{"group":"Prompt Enhancement","pages":[{"title":"Prompt Enhancement - Overview","href":"/api/v2/prompt-enhancement/overview"},{"title":"Prompt Booster","openapi":"openapi.json POST /api/v2/prompts/enhancements","href":"/api/v2/prompt-enhancement/prompt-booster"},{"title":"Prompt Booster Price","openapi":"openapi.json POST /api/v2/prompts/enhancements/price","href":"/api/v2/prompt-enhancement/prompt-booster-price"}]},{"group":"Utilities","pages":[{"title":"Check Balance","openapi":"openapi.json GET /api/v2/account/balance","href":"/api/v2/utilities/balance"},{"title":"Get Job Results","openapi":"openapi.json GET /api/v2/jobs/{job_request}","href":"/api/v2/utilities/jobs"},{"title":"Model Selection","openapi":"openapi.json GET /api/v2/models","href":"/api/v2/utilities/models"}]},{"group":"API Keys","pages":[{"title":"Get Current Key","openapi":"openapi.json GET /api/v2/key","href":"/api/v2/keys/get-current-key"},{"title":"Get Current Key Usage","openapi":"openapi.json GET /api/v2/key/usage","href":"/api/v2/keys/get-current-key-usage"},{"title":"List Keys","openapi":"openapi.json GET /api/v2/keys","href":"/api/v2/keys/list-keys"},{"title":"Create Key","openapi":"openapi.json POST /api/v2/keys","href":"/api/v2/keys/create-key"},{"title":"Get Key","openapi":"openapi.json GET /api/v2/keys/{id}","href":"/api/v2/keys/get-key"},{"title":"Update Key","openapi":"openapi.json PATCH /api/v2/keys/{id}","href":"/api/v2/keys/update-key"},{"title":"Delete Key","openapi":"openapi.json DELETE /api/v2/keys/{id}","href":"/api/v2/keys/delete-key"},{"title":"Get Key Usage","openapi":"openapi.json GET /api/v2/keys/{id}/usage","href":"/api/v2/keys/get-key-usage"}]},{"group":"Account","pages":[{"title":"Get Account Billing","openapi":"openapi.json GET /api/v2/account","href":"/api/v2/account/get-account"},{"title":"Get Account Usage","openapi":"openapi.json GET /api/v2/account/usage","href":"/api/v2/account/usage"},{"title":"List Payments","openapi":"openapi.json GET /api/v2/account/payments","href":"/api/v2/account/payments"}]}]},{"tab":"API v1 (Deprecated)","pages":[{"title":"API v1 (Deprecated)","href":"/api/v1/overview"}]}]},"basePath":"","title":"Web Search - deAPI","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","Page-DSpdRuhM.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}