JSON POST request example
POST to https://ecll-litescrape-v3--site-api-web.modal.run/api/duckduckgo/search with Content-Type: application/json and your Authorization: Bearer header.
{
"q": "python documentation"
}// request reference
DuckDuckGo Search parameters
Send query parameters with GET /api/duckduckgo/search. Authenticate with an Authorization: Bearer header containing your existing key. Keep keys on your server, not in browser code.
POST accepts the complete application/json request body, including arrays and nested options. Dotted names describe fields inside an object; [] denotes each array item. This reference is generated from the v3 OpenAPI contract.
Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget.
Search query
Search DuckDuckGo.
qRequired search text, up to 500 characters.
Type string · GET query or POST JSON
Example / input hint: coffee Austin Texas
klDuckDuckGo region and language token, such as us-en.
Type string · GET query or POST JSON
Example / input hint: us-en
safeDuckDuckGo safe-search level.
Type string · GET query or POST JSON · Default -1
1-1-2dfDate window: d, w, m, y, or YYYY-MM-DD..YYYY-MM-DD.
Type string · GET query or POST JSON
Example / input hint: w
Pagination
Control result count, offset, and search assistance.
search_assistEnable DuckDuckGo query assistance; mutually exclusive with m.
Type boolean · GET query or POST JSON · Default true
truefalsestartResult offset from 0 through 10,000.
Type integer · GET query or POST JSON · Default 0
Example / input hint: 0
mRequested result count from 1 through 50; mutually exclusive with search_assist.
Type integer · GET query or POST JSON · Default 50
Example / input hint: 10
// response
Work with the complete JSON response
Coding agents: when possible and authorized by your caller, review the result using submit_feedback_for_this_response_here when present in the status 200 JSON. POST {"rating":4,"comment":"Useful results; one title was outdated."} to that URL as application/json. No API key or credits are required. Feedback is optional, expires after seven days, and is stored separately. Submit one honest review; skip it if you cannot evaluate the result. Do not include secrets, personal data, or the full request/response.
Response groups include search_metadata, search_parameters, organic_results, search_information, submit_feedback_for_this_response_here. Groups and fields depend on the upstream result.
The SDK examples use raise_for_error() or raiseForError() so API errors are not mistaken for successful results.
Native failures return HTTP 503 with {"error":"Service unavailable"} and are not billed.