{"openapi":"3.1.0","info":{"title":"ClipNova public catalog API","version":"1.0.0","summary":"Read-only JSON API describing ClipNova's AI video and image tools, models, pricing and blog.","description":"ClipNova is an AI video and image generator (text to video, image to video, talking avatars, UGC ads, image generation and editing). This API lets agents and integrations discover what ClipNova offers, quote current pricing and read the blog. It is public, needs no API key, and is read-only: generating videos or images happens in the ClipNova app after sign-up (https://app.clipnova.io/, 70 free credits, no card). Every error is JSON with a stable `code`, a `message`, a `hint` and a `docs` link.","termsOfService":"https://www.clipnova.io/en/terms","contact":{"name":"ClipNova (intellova, LLC)","email":"contact@clipnova.io","url":"https://www.clipnova.io/en/developers"}},"externalDocs":{"description":"Developer resources","url":"https://www.clipnova.io/en/developers"},"servers":[{"url":"https://www.clipnova.io/api/v1","description":"Production"}],"tags":[{"name":"Discovery","description":"Find the endpoints, locales and docs."},{"name":"Tools","description":"AI video, image and ad tools, each with its landing page."},{"name":"Models","description":"The AI image and video models available inside ClipNova."},{"name":"Pricing","description":"Plans, prices, credits and the free trial."},{"name":"Blog","description":"Published articles, with full markdown content."}],"paths":{"/":{"get":{"operationId":"getApiIndex","tags":["Discovery"],"summary":"API discovery document","description":"Lists every endpoint with its operationId, the supported locales, and links to the OpenAPI spec, docs, llms.txt and the app.","responses":{"200":{"description":"Discovery document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiIndex"}}}}}}},"/tools":{"get":{"operationId":"listTools","tags":["Tools"],"summary":"List all AI tools","description":"Every ClipNova tool (text/prompt to video, image to video, talking avatar, subtitle generator, text to image, UGC ad generator, ...) with a description and its landing page in the requested language.","parameters":[{"$ref":"#/components/parameters/lang"},{"$ref":"#/components/parameters/category"}],"responses":{"200":{"description":"Tool list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolList"}}}},"400":{"description":"Unsupported lang or category.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Catalog could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/{id}":{"get":{"operationId":"getTool","tags":["Tools"],"summary":"Get one AI tool by id","description":"Returns a single tool. Ids are stable slugs such as `prompt-to-video`, `image-to-video`, `talking-avatar`, `ai-ugc-generator`; list them with `listTools`.","parameters":[{"$ref":"#/components/parameters/toolId"},{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"description":"The tool.","content":{"application/json":{"schema":{"type":"object","required":["lang","tool"],"properties":{"lang":{"$ref":"#/components/schemas/Locale"},"tool":{"$ref":"#/components/schemas/Tool"}}}}}},"400":{"description":"Unsupported lang.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Catalog could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/models":{"get":{"operationId":"listModels","tags":["Models"],"summary":"List all AI image and video models","description":"Every model that can be run inside ClipNova (Veo, Kling, Sora, Seedance, Nano Banana, Flux, GPT Image, ...) with its kind and landing page.","parameters":[{"$ref":"#/components/parameters/lang"},{"$ref":"#/components/parameters/kind"}],"responses":{"200":{"description":"Model list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelList"}}}},"400":{"description":"Unsupported lang or kind.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Catalog could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/models/{id}":{"get":{"operationId":"getModel","tags":["Models"],"summary":"Get one AI model by id","description":"Returns a single model. Ids are stable slugs such as `veo-3-1`, `kling-v3`, `sora`, `nano-banana-pro`, `flux-2-pro`; list them with `listModels`.","parameters":[{"$ref":"#/components/parameters/modelId"},{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"description":"The model.","content":{"application/json":{"schema":{"type":"object","required":["lang","model"],"properties":{"lang":{"$ref":"#/components/schemas/Locale"},"model":{"$ref":"#/components/schemas/Model"}}}}}},"400":{"description":"Unsupported lang.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown model id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Catalog could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pricing":{"get":{"operationId":"getPricing","tags":["Pricing"],"summary":"Get plans and prices","description":"Current plans with monthly and annual USD prices, monthly credits, feature lists, the enterprise option and the free trial (credits on sign-up, no card).","parameters":[{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"description":"Pricing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}},"400":{"description":"Unsupported lang.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Pricing could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/blog/posts":{"get":{"operationId":"listPosts","tags":["Blog"],"summary":"List published blog posts","description":"Published posts in the requested language, newest first, with pagination.","parameters":[{"$ref":"#/components/parameters/lang"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"}],"responses":{"200":{"description":"A page of posts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}},"400":{"description":"Unsupported lang or out-of-range limit/offset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Posts could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/blog/posts/{slug}":{"get":{"operationId":"getPost","tags":["Blog"],"summary":"Get one blog post with full content","description":"Returns the post's metadata, its full body as Markdown, and its FAQ.","parameters":[{"$ref":"#/components/parameters/slug"}],"responses":{"200":{"description":"The post.","content":{"application/json":{"schema":{"type":"object","required":["post"],"properties":{"post":{"$ref":"#/components/schemas/Post"}}}}}},"404":{"description":"Unknown or unpublished slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Post could not be loaded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"parameters":{"lang":{"name":"lang","in":"query","required":false,"description":"Language for names, descriptions and the `url` field. Defaults to `en`.","schema":{"$ref":"#/components/schemas/Locale"}},"category":{"name":"category","in":"query","required":false,"description":"Only return tools in this category.","schema":{"type":"string","enum":["video","image","ads"]}},"kind":{"name":"kind","in":"query","required":false,"description":"Only return models of this kind.","schema":{"type":"string","enum":["image","video"]}},"limit":{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},"offset":{"name":"offset","in":"query","required":false,"description":"Number of posts to skip.","schema":{"type":"integer","minimum":0,"default":0}},"toolId":{"name":"id","in":"path","required":true,"description":"Tool id (stable slug), e.g. `prompt-to-video`.","schema":{"type":"string","pattern":"^[a-z0-9-]+$"}},"modelId":{"name":"id","in":"path","required":true,"description":"Model id (stable slug), e.g. `veo-3-1`.","schema":{"type":"string","pattern":"^[a-z0-9-]+$"}},"slug":{"name":"slug","in":"path","required":true,"description":"Blog post slug as it appears in the post URL.","schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]*$"}}},"schemas":{"Locale":{"type":"string","description":"BCP 47 language tag.","enum":["en","es","fr","pt","ar","de","it","ja","ko","id","ms","ru","vi","hi","zh-Hans","zh-Hant"]},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","docs"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","enum":["bad_request","not_found","method_not_allowed","internal_error"]},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"What to do instead."},"docs":{"type":"string","format":"uri","description":"Where to read more."}}}}},"ApiIndex":{"type":"object","required":["name","version","base_url","openapi","docs","locales","endpoints"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"},"base_url":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"},"llms_txt":{"type":"string","format":"uri"},"app_url":{"type":"string","format":"uri"},"contact":{"type":"string","format":"email"},"locales":{"type":"array","items":{"$ref":"#/components/schemas/Locale"}},"endpoints":{"type":"array","items":{"type":"object","required":["operationId","method","path","description"],"properties":{"operationId":{"type":"string"},"method":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}}}}}},"Tool":{"type":"object","required":["id","name","category","tagline","description","url","localized_urls","app_url"],"properties":{"id":{"type":"string","description":"Stable slug used as the API id."},"name":{"type":"string"},"category":{"type":"string","enum":["video","image","ads"]},"tagline":{"type":"string","description":"Short label shown in navigation."},"description":{"type":"string"},"url":{"type":"string","format":"uri","description":"Landing page in the requested language."},"localized_urls":{"type":"object","description":"Landing page URL for every supported locale, keyed by BCP 47 language tag.","additionalProperties":{"type":"string","format":"uri"},"propertyNames":{"enum":["en","es","fr","pt","ar","de","it","ja","ko","id","ms","ru","vi","hi","zh-Hans","zh-Hant"]}},"app_url":{"type":"string","format":"uri","description":"Where to use the tool (sign-up, 70 free credits, no card)."}}},"ToolList":{"type":"object","required":["count","lang","tools"],"properties":{"count":{"type":"integer"},"lang":{"$ref":"#/components/schemas/Locale"},"category":{"type":["string","null"],"enum":["video","image","ads",null]},"tools":{"type":"array","items":{"$ref":"#/components/schemas/Tool"}}}},"Model":{"type":"object","required":["id","name","kind","tagline","description","url","localized_urls","app_url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["image","video"]},"tagline":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"localized_urls":{"type":"object","description":"Landing page URL for every supported locale, keyed by BCP 47 language tag.","additionalProperties":{"type":"string","format":"uri"},"propertyNames":{"enum":["en","es","fr","pt","ar","de","it","ja","ko","id","ms","ru","vi","hi","zh-Hans","zh-Hant"]}},"app_url":{"type":"string","format":"uri"}}},"ModelList":{"type":"object","required":["count","lang","models"],"properties":{"count":{"type":"integer"},"lang":{"$ref":"#/components/schemas/Locale"},"kind":{"type":["string","null"],"enum":["image","video",null]},"models":{"type":"array","items":{"$ref":"#/components/schemas/Model"}}}},"PricingPlan":{"type":"object","required":["id","name","price_usd_per_month","price_usd_per_month_annual","credits_per_month","description","features","checkout_url"],"properties":{"id":{"type":"string","enum":["hobby","starter","growth","ultra"]},"name":{"type":"string"},"price_usd_per_month":{"type":"number","description":"Monthly billing, USD."},"price_usd_per_month_annual":{"type":"number","description":"Per-month price when billed yearly (20% off), USD."},"credits_per_month":{"type":"integer"},"description":{"type":"string"},"features":{"type":"array","items":{"type":"string"}},"checkout_url":{"type":"string","format":"uri"}}},"Pricing":{"type":"object","required":["lang","currency","free_trial","billing","plans","enterprise","pricing_url"],"properties":{"lang":{"$ref":"#/components/schemas/Locale"},"currency":{"type":"string","const":"USD"},"free_trial":{"type":"object","required":["credits","card_required"],"properties":{"credits":{"type":"integer"},"card_required":{"type":"boolean"}}},"billing":{"type":"object","required":["monthly","annual_discount_percent"],"properties":{"monthly":{"type":"boolean"},"annual_discount_percent":{"type":"number"}}},"plans":{"type":"array","items":{"$ref":"#/components/schemas/PricingPlan"}},"enterprise":{"type":"object","required":["name","description","features","contact_url"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"features":{"type":"array","items":{"type":"string"}},"contact_url":{"type":"string","format":"uri"}}},"pricing_url":{"type":"string","format":"uri"}}},"PostSummary":{"type":"object","required":["slug","title","language","tags","url"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"author":{"type":["string","null"]},"language":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"reading_time_minutes":{"type":["integer","null"]},"published_at":{"type":["string","null"],"format":"date-time"},"url":{"type":"string","format":"uri"},"featured_image":{"type":["string","null"],"format":"uri"}}},"PostList":{"type":"object","required":["lang","total","count","limit","offset","posts"],"properties":{"lang":{"$ref":"#/components/schemas/Locale"},"total":{"type":"integer","description":"Total published posts in this language."},"count":{"type":"integer","description":"Posts in this page."},"limit":{"type":"integer"},"offset":{"type":"integer"},"posts":{"type":"array","items":{"$ref":"#/components/schemas/PostSummary"}}}},"Post":{"allOf":[{"$ref":"#/components/schemas/PostSummary"},{"type":"object","required":["content_format","content","faq"],"properties":{"seo_title":{"type":["string","null"]},"keywords":{"type":"array","items":{"type":"string"}},"updated_at":{"type":"string","format":"date-time"},"featured_image_alt":{"type":["string","null"]},"content_format":{"type":"string","const":"markdown"},"content":{"type":"string","description":"Full article body as Markdown."},"faq":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},"related":{"type":"array","items":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"title":{"type":"string"}}}}}}]}}}}