{
"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."
]
}
}
{
"message": "Too Many Attempts."
}
Web
Web Contents Price Calculation
Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.
{
"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."
]
}
}
{
"message": "Too Many Attempts."
}
Estimate the cost of reading web pages before running the request. Send the same body you would send to Web Contents — it is validated the same way. Nothing is charged.
Unlike the other /price endpoints, this one returns the price at the top level — {"price": 0.0012} — not inside data.
The quote assumes every URL can be read. Pages that come back as not_found or unknown are not charged, so the actual cost can be lower than the quote, never higher.
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
Request at least one of text, excerpts or summary — a request with none of them is refused with 422.
urls
string<uri>[]
required
Pages to read. Full URLs including the scheme (https://…).
Required array length: 1 - 20 elements
Example:
["https://deapi.ai"]
text
booleanobject
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 }
excerpts
booleanobject
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
summary
booleanobject
Return a short AI-written summary of each page. true writes a general summary; an object with query focuses the summary on a question. Billed per page (see pricing).
Example:
{ "query": "What does this company offer?" }
Response
Calculated price.
Unlike the other price endpoints, the price is returned at the top level, not inside data.
price
number<float>
What the request would cost, in USD. A quote only — nothing is charged by this endpoint.
Example:
0.0048
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/contents-price","slug":"/api/v2/web/contents-price","pageMetadata":{"title":"Web Contents Price Calculation","openapi":"openapi.json POST /api/v2/web/contents/price","description":"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as `POST /api/v2/web/contents` and validates it the same way. Nothing is charged.","href":"/api/v2/web/contents-price"},"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: [\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as \", _jsx(_components.code, {\n children: \"POST /api/v2/web/contents\"\n }), \" and validates it the same way. Nothing is charged.\"]\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`,p:`p`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Estimate the cost of reading web pages before running the request. Send the same body you would send to `,_jsx(_components.a,{href:`/api/v2/web/contents`,children:`Web Contents`}),` — it is validated the same way. Nothing is charged.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Unlike the other `,_jsx(_components.code,{children:`/price`}),` endpoints, this one returns the price at the top level — `,_jsx(_components.code,{children:`{\"price\": 0.0012}`}),` — not inside `,_jsx(_components.code,{children:`data`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`The quote assumes every URL can be read. Pages that come back as `,_jsx(_components.code,{children:`not_found`}),` or `,_jsx(_components.code,{children:`unknown`}),` are not charged, so the actual `,_jsx(_components.code,{children:`cost`}),` can be lower than the quote, never higher.`]})]})}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 Contents Price Calculation","openapi":"openapi.json POST /api/v2/web/contents/price","description":"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as `POST /api/v2/web/contents` and validates it the same way. Nothing is charged.","href":"/api/v2/web/contents-price"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Client API v2"],"summary":"Estimate the price of reading web pages","description":"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as `POST /api/v2/web/contents` and validates it the same way. Nothing is charged.","operationId":"estimateWebContentsPrice","parameters":["57652e24-deb3-49ea-8722-3e38dcff534a"],"requestBody":"38a049c1-517d-4244-b8c7-b6cb470b8e46","responses":{"200":"26746b7d-95df-40a9-b5be-10213e7c9eb3","401":"a28be279-8823-4ece-940c-ed4da13c5b71","404":"ff65d97b-d480-4602-8c2f-dabcf220fc25","422":"1a4d79ab-ce3a-480d-9921-893eec147787","429":"4eb73b37-f496-4679-a543-95cb7791a1f2"},"security":["ce034390-36a5-43e8-8c59-20b511a66ac5"],"method":"post","type":"path","servers":["232e82ca-05c0-4de0-b6fa-0a8bb607e14f"],"path":"/api/v2/web/contents/price","baseUrlOptions":["https://api.deapi.ai"],"title":"Estimate the price of reading web pages","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"57652e24-deb3-49ea-8722-3e38dcff534a":{"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":["urls"],"description":"Request at least one of `text`, `excerpts` or `summary` — a request with none of them is refused with 422.","properties":{"urls":{"description":"Pages to read. Full URLs including the scheme (`https://…`).","type":"array","minItems":1,"maxItems":20,"items":{"type":"string","format":"uri","uniqueKey":"urls.items.[INDEX]","typeLabel":"string\u003curi>"},"example":["https://deapi.ai"],"isRequired":true,"uniqueKey":"urls","typeLabel":"string\u003curi>[]"},"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":"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":"text.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"text.oneOf.1","typeLabel":"object"}],"uniqueKey":"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":"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":"excerpts.oneOf.1.query","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"excerpts.oneOf.1","typeLabel":"object"}],"uniqueKey":"excerpts","typeLabel":"boolean | object"},"summary":{"oneOf":[{"type":"boolean","description":"Return a short AI-written summary of each page. `true` writes a general summary; an object with `query` focuses the summary on a question. Billed per page (see pricing).","example":{"query":"What does this company offer?"},"uniqueKey":"summary.oneOf.0","typeLabel":"boolean"},{"type":"object","description":"Return a short AI-written summary of each page. `true` writes a general summary; an object with `query` focuses the summary on a question. Billed per page (see pricing).","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":"summary.oneOf.1.query","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"summary.oneOf.1","typeLabel":"object"}],"uniqueKey":"summary","typeLabel":"boolean | object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"urls":["https://deapi.ai"],"text":{"max_length":5000},"excerpts":true,"summary":{"query":"What does this company offer?"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"26746b7d-95df-40a9-b5be-10213e7c9eb3":{"description":"Calculated price.","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":"Unlike the other price endpoints, the price is returned at the top level, not inside `data`.","properties":{"price":{"description":"What the request would cost, in USD. A quote only — nothing is charged by this endpoint.","type":"number","format":"float","example":0.0048,"uniqueKey":"price","typeLabel":"number\u003cfloat>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"text":{"title":"text","value":{"price":0.0012}}},"exampleType":"examples"}},"exampleType":"examples"},"a28be279-8823-4ece-940c-ed4da13c5b71":{"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"},"ff65d97b-d480-4602-8c2f-dabcf220fc25":{"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"},"1a4d79ab-ce3a-480d-9921-893eec147787":{"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"},"4eb73b37-f496-4679-a543-95cb7791a1f2":{"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":{"ce034390-36a5-43e8-8c59-20b511a66ac5":{"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 Contents Price Calculation - deAPI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T11:55:17.894Z","originalFileLocation":"api/v2/web/contents-price.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=\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.\">\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 Contents Price Calculation - deAPI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.\">\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/contents-price\">\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+Contents+Price+Calculation\u0026amp;description=Estimate+what+a+web+contents+request+would+cost%2C+assuming+every+URL+can+be+read.+Accepts+the+same+body+as+%60POST+%2Fapi%2Fv2%2Fweb%2Fcontents%60+and+validates+it+the+same+\u0026amp;theme=4ac60e264d9f8b3667e22e5a\u0026amp;signature=7263ada9fc874c7ff375aead2db52f5026dedfd66a3d71fd4d2607e314b3dbd4\">\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 Contents Price Calculation - deAPI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://deapi-f9ba3abb.mintlify.site/_mintlify/api/og/v2?division=Web\u0026amp;title=Web+Contents+Price+Calculation\u0026amp;description=Estimate+what+a+web+contents+request+would+cost%2C+assuming+every+URL+can+be+read.+Accepts+the+same+body+as+%60POST+%2Fapi%2Fv2%2Fweb%2Fcontents%60+and+validates+it+the+same+\u0026amp;theme=4ac60e264d9f8b3667e22e5a\u0026amp;signature=7263ada9fc874c7ff375aead2db52f5026dedfd66a3d71fd4d2607e314b3dbd4\">\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/contents-price\">\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/contents-price.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/contents-price#webpage\",\"url\":\"https://docs.deapi.ai/api/v2/web/contents-price\",\"name\":\"Web Contents Price Calculation\",\"description\":\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.\",\"dateModified\":\"2026-11-13T11:55:17.894Z\",\"isPartOf\":{\"@id\":\"https://docs.deapi.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.deapi.ai/api/v2/web/contents-price#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.deapi.ai/api/v2/web/contents-price#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Web\",\"item\":\"https://docs.deapi.ai/api/v2/web/search\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Contents Price Calculation\",\"item\":\"https://docs.deapi.ai/api/v2/web/contents-price\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.deapi.ai/api/v2/web/contents-price#apireference\",\"headline\":\"Web Contents Price Calculation\",\"name\":\"Web Contents Price Calculation\",\"description\":\"Estimate what a web contents request would cost, assuming every URL can be read. Accepts the same body as POST /api/v2/web/contents and validates it the same way. Nothing is charged.\",\"url\":\"https://docs.deapi.ai/api/v2/web/contents-price\",\"mainEntityOfPage\":{\"@id\":\"https://docs.deapi.ai/api/v2/web/contents-price#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/contents-price.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","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","href":"/api/v2/web/search-price"},{"title":"Web Contents","openapi":"openapi.json POST /api/v2/web/contents","description":"Fetch up to 20 URLs and get clean page text, the most relevant excerpts and/or an AI-written summary of each — in a single synchronous call. Request at least one of `text`, `excerpts` or `summary`. Each page reports its own `status`; pages that could not be read are not charged. The response is returned directly — there is no job to poll.","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","description":"AI-powered prompt optimization tools for better generation results.","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 Contents Price Calculation - 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"]}