kie APIkie.ai ↗
Browse, search, and retrieve AI model listings from the kie.ai marketplace. Get providers, task types, sub-model pricing, and playground parameters via 3 endpoints.
What is the kie API?
The kie.ai API exposes 3 endpoints for querying the kie.ai AI model marketplace, returning structured data across model listings, providers, and per-model detail pages. Using search_models, you can filter listings by task type, provider, and name substring, getting back fields like tagline, cover media URL, sub-model count, and listing-card price info. get_model_details drills into a single model group to return sub-model identifiers, pricing descriptions, API document URLs, and related models from the same provider.
curl -X GET 'https://api.parse.bot/scraper/4856af6b-83d5-4b07-ac63-7cbd263ae21c/search_models?task=Text+to+Video&query=kling' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace kie-ai-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: kie.ai Models Market — browse, search, and drill into AI model details."""
from parse_apis.kie_ai_api import KieAI, TaskType, ModelNotFound
client = KieAI()
# List available providers and task types from the marketplace catalog.
catalog = client.catalogs.get()
print("Providers:", catalog.providers[:5])
print("Task types:", catalog.tasks[:5])
# Search text-to-video models, capped at 5 results.
for summary in client.model_summaries.search(task=TaskType.TEXT_TO_VIDEO, limit=5):
print(summary.name, "|", summary.provider, "| sub-models:", summary.model_count)
# Drill into the first search hit for full detail (sub-models, parameters, pricing).
hit = client.model_summaries.search(task=TaskType.TEXT_TO_VIDEO, limit=1).first()
if hit is not None:
detail = hit.details()
print("Detail:", detail.name, "—", detail.tagline)
if detail.sub_models:
for sm in detail.sub_models:
print(" ", sm.model, sm.output_media_type, sm.pricing_desc or "(no pricing)")
for param in sm.parameters:
print(" param:", param.key, "default:", param.default_value)
# Related models from the same provider
for related in detail.related_models[:3]:
print(" Related:", related.name, related.task_types)
# Point lookup by path, with typed error handling for unknown models.
try:
model = client.models.get(path=hit.path) if hit else client.models.get(path="kling-o3")
print("Fetched:", model.name, "| languages:", model.support_languages)
except ModelNotFound:
print("Model not found on the marketplace.")
print("exercised: catalogs.get / model_summaries.search / details / models.get")
Searches and pages through the kie.ai Models Market. Each row is one model group (a marketplace listing such as 'Kling O3') with its tagline, provider, task types, cover media URL, number of sub-models, supported languages, and the listing-card price_info (price in USD, discount, credits, marketPrice label; all four are null for most listings since the site only fills them for promoted models). Results are filtered by task (defaults to 'Text to Video'; pass an empty string to disable the task filter), optional case-insensitive name query, and optional comma-separated provider names. Pagination is page/page_size (page_size 1-50); total and total_pages are the site's counts for the applied filters and has_more says whether a next page exists. One upstream request per call. An unknown provider name yields an empty models list.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based page number. |
| task | string | Task-type tab to filter by. Pass an empty string to list models across all task types. |
| query | string | Case-insensitive substring matched against model names. Omitted = no name filter. |
| provider | string | Comma-separated provider names exactly as returned by list_providers.providers (e.g. Google,Wan). Omitted = all providers. |
| page_size | integer | Rows per page, 1 to 50. |
{
"type": "object",
"fields": {
"page": "page number echoed",
"total": "total listings matching the filters (site count)",
"models": "array of model-group listings: id (integer), path (slug accepted by get_model_details.path), name, tagline, provider, task_types (array of task names), model_count (number of sub-models), cover_url, created_at_ms (epoch milliseconds), support_languages (array of locale codes), price_info (object: price USD string, discount, credits, marketPrice; each null when the site does not publish it)",
"has_more": "true when a later page exists",
"page_size": "rows per page echoed",
"total_pages": "number of pages at this page_size"
},
"sample": {
"data": {
"page": 2,
"total": 8,
"models": [
{
"id": 63,
"name": "Kling 2.6",
"path": "kling-2-6",
"tagline": "Kling 2.6 is Kling AI’s audio-visual generation model that produces synchronized video, speech, ambient sound, and sound effects from text or image inputs.",
"provider": "Kling",
"cover_url": "https://static.aiquickdraw.com/aa/kie-maket/1764900793345_ls7yXB9a.mp4",
"price_info": {
"price": "0.28",
"credits": "55",
"discount": "20%",
"marketPrice": "5s"
},
"task_types": [
"Text to Video",
"Image to Video"
],
"model_count": 2,
"created_at_ms": 1764814805000,
"support_languages": [
"en",
"de",
"zh-CN",
"ru",
"es",
"fr"
]
},
{
"id": 5,
"name": "Kling V2.1",
"path": "kling/v2-1",
"tagline": "The Kling 2.1 model powers cutting-edge video generation with hyper-realistic motion, advanced physics, and high-resolution outputs up to 1080p.",
"provider": "Kling",
"cover_url": "https://file.aiquickdraw.com/static//kie-maket/176043490634201gk2mdm.mp4",
"price_info": {
"price": null,
"credits": null,
"discount": null,
"marketPrice": null
},
"task_types": [
"Text to Video",
"Image to Video"
],
"model_count": 4,
"created_at_ms": 1755605403000,
"support_languages": [
"en",
"fr",
"de"
]
}
],
"has_more": false,
"page_size": 5,
"total_pages": 2
},
"status": "success"
}
}About the kie API
What the API Covers
The kie.ai marketplace API reflects the public model catalog at kie.ai, with a default focus on text-to-video models but covering all task types the site lists. list_providers returns the full provider vocabulary and the complete array of task-type names — these are the exact values accepted by search_models for filtering. No inputs are required; one call returns both arrays.
Searching and Paging the Catalog
search_models accepts up to five optional inputs: page (1-based), page_size (1–50), task (exact task-type name from list_providers), query (case-insensitive substring on model name), and provider (comma-separated provider names). The response includes total, total_pages, and has_more for pagination, plus an array of model-group objects. Each object carries an integer id, a path slug used by get_model_details, name, tagline, provider, task_types array, cover_media_url, sub-model count, support_languages, and listing-card price_info including USD price and discount flag.
Per-Model Detail
get_model_details takes a path string exactly as returned by search_models (e.g. kling/v2-1) and returns the full detail page for that model group. The models array contains each sub-model's site identifier, task_path, free-text pricing_desc (or null), api_document_url, and output type metadata. The response also includes created_at_ms (epoch milliseconds or null), support_languages, SEO description (or null), and a related_models_same_provider array in the same shape as search_models listings for discovery of related offerings.
The kie API is a managed, monitored endpoint for kie.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kie.ai changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kie.ai API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a comparison table of text-to-video AI models by pulling listings and their listing-card price_info via search_models.
- Enumerate all task types and providers programmatically using list_providers to populate filter UI in an AI tool directory.
- Monitor when new model groups appear on kie.ai by tracking changes in search_models total and created_at_ms from get_model_details.
- Retrieve sub-model pricing descriptions and API document URLs for a specific model using get_model_details with its path slug.
- Discover related models from the same provider via the related_models_same_provider array in a get_model_details response.
- Filter the marketplace to a single provider's offerings by passing provider names from list_providers into search_models.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.