duck.ai APIduck.ai ↗
Retrieve Duck.ai AI model configurations, capabilities, access tiers, supported tools, and live service status via two simple REST endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/ec7d8282-525d-433a-9943-342788add371/get_models' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetches all available AI models from Duck.ai including their capabilities, providers, access tiers, supported tools, and file type support. Returns structured model data along with a pre-formatted JavaScript export string.
No input parameters required.
{
"type": "object",
"fields": {
"models": "array of model objects with id, provider, name, capabilities, and access tier info",
"javascript": "string containing the model data formatted as JavaScript export statements",
"total_models": "integer count of models returned",
"attachment_limits": "object with file and image upload limits per subscription tier (free, plus, pro)"
},
"sample": {
"models": [
{
"id": "gpt-5-mini",
"name": "GPT-5 mini",
"provider": "openai",
"modelName": "GPT-5",
"settingId": "203",
"accessTier": [
"free",
"plus",
"pro",
"internal"
],
"modelVariant": "mini",
"modelShortName": "GPT-5",
"supportedTools": [
"WebSearch",
"RelatedSearchTerms",
"FindInDocument",
"ReadDocumentSelection",
"ReadDocument",
"LocationPrompt",
"GenerateImage"
],
"entityHasAccess": true,
"supportedFileTypes": [
"application/pdf"
],
"supportsImageUpload": true,
"reasoningEffortAccess": [
{
"id": "minimal",
"accessTier": [
"free",
"plus",
"pro",
"internal"
],
"entityHasAccess": true
}
],
"supportedReasoningEffort": [
"minimal",
"low"
]
}
],
"javascript": "const duckAIModels = [...];\n\nconst attachmentLimits = {...};\n\nexport { duckAIModels, attachmentLimits };\n",
"total_models": 11,
"attachment_limits": {
"free": {
"files": {
"maxFileSizeMB": 5,
"maxPerConversation": 3
},
"images": {
"maxPerTurn": 3,
"maxPerConversation": 5
}
}
}
}
}About the duck.ai API
The Duck.ai API exposes 2 endpoints that return structured data about DuckDuckGo's private AI chat service. The get_models endpoint delivers a full list of available AI models — including provider, capabilities, supported tools, file type support, and subscription tier requirements — plus a ready-to-use JavaScript export string. The get_status endpoint reports current service health so you can confirm availability before making downstream calls.
Model Data
The get_models endpoint returns an array of model objects, each containing fields such as id, provider, name, capabilities, and access tier information indicating whether a model is available on free, plus, or pro plans. The response also includes attachment_limits, an object that maps each subscription tier (free, plus, pro) to its file and image upload constraints. A total_models integer gives you a quick count without iterating the array. Alongside the structured data, the endpoint returns a javascript string — a pre-formatted export statement you can drop directly into a JS/TS project.
Service Status
The get_status endpoint returns three fields: status (a string code where "0" indicates fully operational), statusV2 (an integer version of the same signal), and secondaryStatus (a secondary string code for more granular health information). This is useful for uptime checks, conditional logic before triggering AI requests, or surfacing degraded-state warnings in a UI.
What the API Covers
Both endpoints require no input parameters — all responses are returned in full. The model data reflects the live Duck.ai catalog, including which models are gated behind paid tiers and what file types each model can accept as attachments. There is no filtering or pagination; you receive the complete dataset on every call.
- Build a model-picker UI that filters Duck.ai models by access tier (free, plus, or pro) using the
capabilitiesand tier fields. - Display attachment constraints to users before they upload files, using the
attachment_limitsobject keyed by subscription tier. - Run an uptime monitor that polls
get_statusand alerts when thestatusfield is non-zero. - Auto-generate TypeScript type definitions for Duck.ai models using the
javascriptexport string returned byget_models. - Track changes in the Duck.ai model catalog over time by recording
total_modelsand modelidlists on a schedule. - Gate AI chat features in your app behind a live availability check using
statusV2fromget_status.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Duck.ai have an official public developer API?+
What does the `get_models` endpoint return beyond a list of model names?+
id, provider, name, capabilities, and access tier details showing which subscription plans can use it. The response also includes attachment_limits (per-tier file and image upload constraints) and a javascript field containing the full model dataset as a pre-formatted JS export string.Does the API expose individual chat completions or message history from Duck.ai?+
How granular is the service status data?+
get_status endpoint returns three fields: a status string ("0" = operational), a statusV2 integer, and a secondaryStatus string. It does not break down status by individual model or geographic region. You can fork the API on Parse and revise it to add more granular health endpoints if needed.Can I filter `get_models` results to a specific provider or tier?+
provider and access tier fields in each model object. You can fork this API on Parse and revise it to add query parameters that pre-filter by provider or tier.