Properties
| Name | Type | Description |
|---|---|---|
| pageUpdatedAt | string | Observed significant public content change, ISO 8601; omitted until a change is recorded |
| id | string | Public model id, also used as the URL slug |
| group | string | Routing group shared by related models |
| name | string | Display name |
| description | string | Marketing description |
| descriptionLocales | object | Marketing descriptions keyed by locale, for example { en: "…", ru: "…" } |
| type | string | Generation type |
| kind | string | Media generation model or LLM chat model |
| vendor | string | Upstream vendor, e.g. Google |
| releasedAt | string | Date the vendor released the model, `YYYY-MM-DD`; absent when never announced |
| tags | array | Catalog tags |
| capabilities | array | Capability tags derived from the model's parameters |
| pricing | array | Price table; empty when the model has no published price |
| priceFrom | string | Headline price in USD, in the same unit as `pricing` (see `priceUnit`): the base-tier price for media models (or the cheapest complete tariff variant when no base tier resolves), the input-token rate |
| priceUnit | string | What one price in `pricing` and `priceFrom` buys: a whole generation, one second of output (per-second video tariffs) or 1M tokens (chat models) |
| params | array | Input parameters, in the order the form should render them |
| protocols | array | Wire protocols available for an LLM model |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/api-stock-com/json-schema/api-stock-com-catalog-model-dto-schema.json",
"title": "CatalogModelDto",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/api-stock-com-openapi.json#/components/schemas/CatalogModelDto",
"type": "object",
"properties": {
"pageUpdatedAt": {
"type": "string",
"description": "Observed significant public content change, ISO 8601; omitted until a change is recorded"
},
"id": {
"type": "string",
"description": "Public model id, also used as the URL slug"
},
"group": {
"type": "string",
"description": "Routing group shared by related models"
},
"name": {
"type": "string",
"description": "Display name"
},
"description": {
"type": "string",
"description": "Marketing description"
},
"descriptionLocales": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Marketing descriptions keyed by locale, for example { en: \"…\", ru: \"…\" }"
},
"type": {
"type": "string",
"description": "Generation type",
"enum": [
"TEXT",
"MUSIC",
"IMAGE",
"VIDEO"
]
},
"kind": {
"type": "string",
"description": "Media generation model or LLM chat model",
"enum": [
"media",
"llm"
]
},
"vendor": {
"type": "string",
"description": "Upstream vendor, e.g. Google"
},
"releasedAt": {
"type": "string",
"description": "Date the vendor released the model, `YYYY-MM-DD`; absent when never announced"
},
"tags": {
"description": "Catalog tags",
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"description": "Capability tags derived from the model's parameters",
"type": "array",
"items": {
"type": "string"
}
},
"pricing": {
"description": "Price table; empty when the model has no published price",
"type": "array",
"items": {
"$ref": "#/$defs/CatalogPriceDto"
}
},
"priceFrom": {
"type": "string",
"description": "Headline price in USD, in the same unit as `pricing` (see `priceUnit`): the base-tier price for media models (or the cheapest complete tariff variant when no base tier resolves), the input-token rate for chat models"
},
"priceUnit": {
"type": "string",
"description": "What one price in `pricing` and `priceFrom` buys: a whole generation, one second of output (per-second video tariffs) or 1M tokens (chat models)",
"enum": [
"generation",
"second",
"megatoken"
]
},
"params": {
"description": "Input parameters, in the order the form should render them",
"type": "array",
"items": {
"$ref": "#/$defs/CatalogParamFieldDto"
}
},
"protocols": {
"type": "array",
"description": "Wire protocols available for an LLM model",
"items": {
"type": "string",
"enum": [
"openai",
"anthropic"
]
}
}
},
"required": [
"id",
"group",
"name",
"type",
"kind",
"tags",
"capabilities",
"pricing",
"priceUnit",
"params"
],
"$defs": {
"CatalogParamFieldDto": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Field name as sent in `input`"
},
"label": {
"type": "string",
"description": "Label for the form control"
},
"description": {
"type": "string",
"description": "Field description"
},
"kind": {
"type": "string",
"description": "Scalar kind of the field (of its items when `isArray`)",
"enum": [
"string",
"number",
"boolean",
"object"
]
},
"isArray": {
"type": "boolean",
"description": "Whether the field accepts a list of values"
},
"required": {
"type": "boolean",
"description": "Whether the field is mandatory"
},
"default": {
"description": "Default value, if any",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {}
}
]
},
"options": {
"description": "Allowed values — render as a select",
"type": "array",
"items": {
"$ref": "#/$defs/CatalogParamOptionDto"
}
},
"minimum": {
"type": "number"
},
"maximum": {
"type": "number"
},
"maxLength": {
"type": "number"
},
"isMedia": {
"type": "boolean",
"description": "Field holds a URL of user-supplied media"
},
"isPrompt": {
"type": "boolean",
"description": "Field is the model's main prompt"
},
"multiline": {
"type": "boolean",
"description": "Render as a textarea rather than an input"
},
"deprecated": {
"type": "boolean",
"description": "Field is kept for compatibility only"
}
},
"required": [
"name",
"label",
"kind",
"isArray",
"required",
"isMedia",
"isPrompt",
"multiline",
"deprecated"
]
},
"CatalogParamOptionDto": {
"type": "object",
"properties": {
"value": {
"description": "Value sent to the API",
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"label": {
"type": "string",
"description": "Human-readable label"
}
},
"required": [
"value",
"label"
]
},
"CatalogPriceDto": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Cost key from the model catalog (\"default\", a resolution, a size…)"
},
"price": {
"type": "string",
"description": "Price in USD, as a string, for one unit of `CatalogModelDto.priceUnit` — a whole generation, one second of output or 1M tokens"
},
"isDefault": {
"type": "boolean",
"description": "Whether this is the model's base tier: what a request that sets no parameters is billed"
},
"dimensions": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Resolved tariff dimensions for this price; present for matrix tariffs"
}
},
"required": [
"key",
"price",
"isDefault"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/api-stock-com-catalog-model-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.