{"schema_version":"model-demand.agent-about.v1","api_schema_version":"model-demand.agent-api.v1","documentation_version":"2026-08-26","routes":[{"method":"GET","path":"/api/v1/about","description":"Return this static API contract, definitions, and source limits."},{"method":"GET","path":"/api/v1/models","description":"Return validated public demand and model-fact records."}],"query_parameters":[{"name":"model_id","type":"string","required":false,"default":null,"allowed_values":null,"description":"Return one exact model ID. Do not combine model_id with sort, order, limit, or offset."},{"name":"sort","type":"string","required":false,"default":"tokens_30d","allowed_values":["tokens_30d","latest_rank","total_parameters","active_parameters","smallest_quant_checkpoint_bytes","full_sequence_attention_bytes"],"description":"Sort list results by one supported field."},{"name":"order","type":"string","required":false,"default":"desc","allowed_values":["asc","desc"],"description":"Use ascending or descending list order."},{"name":"limit","type":"integer","required":false,"default":25,"allowed_values":null,"description":"Return 1 through 100 models."},{"name":"offset","type":"integer","required":false,"default":0,"allowed_values":null,"description":"Skip zero or more matching models before the returned page."}],"field_definitions":[{"path":"schema_version","type":"string","unit":null,"nullable":false,"description":"The version of the model response schema."},{"path":"generated_at","type":"string","unit":"UTC timestamp","nullable":false,"description":"The time when the accepted public export was generated."},{"path":"evaluation_cutoff","type":"string","unit":"UTC timestamp","nullable":false,"description":"The latest evidence time included in the accepted export."},{"path":"freshness","type":"object","unit":null,"nullable":false,"description":"The export freshness result."},{"path":"freshness.state","type":"string","unit":null,"nullable":false,"description":"The fresh or stale export state."},{"path":"freshness.fresh_until","type":"string","unit":"UTC timestamp","nullable":true,"description":"The freshness deadline when one is available."},{"path":"freshness.reason","type":"string","unit":null,"nullable":false,"description":"The stable reason for the freshness state."},{"path":"window","type":"object","unit":null,"nullable":false,"description":"The completed UTC demand window."},{"path":"window.start_date","type":"string","unit":"UTC date","nullable":false,"description":"The first window date."},{"path":"window.end_date","type":"string","unit":"UTC date","nullable":false,"description":"The last window date."},{"path":"window.days","type":"integer","unit":"days","nullable":false,"description":"The fixed 30-day window length."},{"path":"source","type":"object","unit":null,"nullable":false,"description":"The demand source and attribution."},{"path":"source.name","type":"string","unit":null,"nullable":false,"description":"The demand source name."},{"path":"source.url","type":"string","unit":null,"nullable":false,"description":"The public demand source URL."},{"path":"source.terms_url","type":"string","unit":null,"nullable":false,"description":"The demand source terms URL."},{"path":"source.checked_at","type":"string","unit":"UTC timestamp","nullable":false,"description":"The time when the source terms were checked."},{"path":"source.license","type":"string","unit":null,"nullable":false,"description":"The source data license."},{"path":"source.attribution","type":"string","unit":null,"nullable":false,"description":"The required source attribution."},{"path":"query","type":"object","unit":null,"nullable":false,"description":"The normalized effective query."},{"path":"query.mode","type":"string","unit":null,"nullable":false,"description":"The list or exact_model query mode."},{"path":"query.model_id","type":"string","unit":null,"nullable":true,"description":"The exact model ID when requested."},{"path":"query.sort","type":"string","unit":null,"nullable":true,"description":"The effective list sort field."},{"path":"query.order","type":"string","unit":null,"nullable":true,"description":"The effective list sort order."},{"path":"query.limit","type":"integer","unit":"models","nullable":false,"description":"The effective result limit."},{"path":"query.offset","type":"integer","unit":"models","nullable":false,"description":"The effective result offset."},{"path":"pagination","type":"object","unit":null,"nullable":false,"description":"The result page information."},{"path":"pagination.total_matching_models","type":"integer","unit":"models","nullable":false,"description":"The number of models that match the query."},{"path":"pagination.offset","type":"integer","unit":"models","nullable":false,"description":"The page offset."},{"path":"pagination.limit","type":"integer","unit":"models","nullable":false,"description":"The page limit."},{"path":"pagination.returned_count","type":"integer","unit":"models","nullable":false,"description":"The number of models in this response."},{"path":"pagination.has_next_page","type":"boolean","unit":null,"nullable":false,"description":"True when another result page is available."},{"path":"models","type":"array","unit":null,"nullable":false,"description":"The public model result records."},{"path":"models[]","type":"object","unit":null,"nullable":false,"description":"One public model result record."},{"path":"models[].model_id","type":"string","unit":null,"nullable":false,"description":"The stable public model ID."},{"path":"models[].model_release_id","type":"string","unit":null,"nullable":false,"description":"The stable public release ID."},{"path":"models[].first_visible_date","type":"string","unit":"UTC date","nullable":false,"description":"The first completed date when the model was visible in the demand data."},{"path":"models[].latest_rank","type":"object","unit":null,"nullable":false,"description":"The latest available daily rank."},{"path":"models[].latest_rank.value","type":"integer","unit":"rank","nullable":true,"description":"The latest rank. Null means that the value is unavailable."},{"path":"models[].latest_rank.state","type":"string","unit":null,"nullable":false,"description":"The latest-rank availability state."},{"path":"models[].latest_rank.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when the latest rank is unavailable."},{"path":"models[].latest_tokens","type":"object","unit":null,"nullable":false,"description":"The latest daily token count."},{"path":"models[].latest_tokens.value","type":"string","unit":"tokens","nullable":true,"description":"The latest daily token count. Null means that the value is unavailable."},{"path":"models[].latest_tokens.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].latest_tokens."},{"path":"models[].latest_tokens.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].latest_tokens."},{"path":"models[].latest_tokens.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].latest_tokens is unavailable."},{"path":"models[].tokens_7d","type":"object","unit":null,"nullable":false,"description":"The exact 7-day token total."},{"path":"models[].tokens_7d.value","type":"string","unit":"tokens","nullable":true,"description":"The exact 7-day token total. Null means that the value is unavailable."},{"path":"models[].tokens_7d.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].tokens_7d."},{"path":"models[].tokens_7d.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].tokens_7d."},{"path":"models[].tokens_7d.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].tokens_7d is unavailable."},{"path":"models[].tokens_30d","type":"object","unit":null,"nullable":false,"description":"The exact 30-day token total."},{"path":"models[].tokens_30d.value","type":"string","unit":"tokens","nullable":true,"description":"The exact 30-day token total. Null means that the value is unavailable."},{"path":"models[].tokens_30d.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].tokens_30d."},{"path":"models[].tokens_30d.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].tokens_30d."},{"path":"models[].tokens_30d.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].tokens_30d is unavailable."},{"path":"models[].share_7d","type":"object","unit":null,"nullable":false,"description":"The exact 7-day demand share."},{"path":"models[].share_7d.value","type":"string","unit":"fraction","nullable":true,"description":"The exact 7-day demand share. Null means that the value is unavailable."},{"path":"models[].share_7d.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].share_7d."},{"path":"models[].share_7d.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].share_7d."},{"path":"models[].share_7d.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].share_7d is unavailable."},{"path":"models[].share_30d","type":"object","unit":null,"nullable":false,"description":"The exact 30-day demand share."},{"path":"models[].share_30d.value","type":"string","unit":"fraction","nullable":true,"description":"The exact 30-day demand share. Null means that the value is unavailable."},{"path":"models[].share_30d.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].share_30d."},{"path":"models[].share_30d.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].share_30d."},{"path":"models[].share_30d.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].share_30d is unavailable."},{"path":"models[].share_prior_7d","type":"object","unit":null,"nullable":false,"description":"The exact prior 7-day demand share."},{"path":"models[].share_prior_7d.value","type":"string","unit":"fraction","nullable":true,"description":"The exact prior 7-day demand share. Null means that the value is unavailable."},{"path":"models[].share_prior_7d.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for models[].share_prior_7d."},{"path":"models[].share_prior_7d.state","type":"string","unit":null,"nullable":false,"description":"The availability state for models[].share_prior_7d."},{"path":"models[].share_prior_7d.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when models[].share_prior_7d is unavailable."},{"path":"models[].trend","type":"object","unit":null,"nullable":false,"description":"The 7-day demand-share trend."},{"path":"models[].trend.direction","type":"string","unit":null,"nullable":false,"description":"The trend direction."},{"path":"models[].trend.state","type":"string","unit":null,"nullable":false,"description":"The trend availability state."},{"path":"models[].trend.reason","type":"string","unit":null,"nullable":true,"description":"The reason when trend is unavailable."},{"path":"models[].trend.relative_change","type":"string","unit":"ratio","nullable":true,"description":"The exact relative share change."},{"path":"models[].trend.percentage_point_change","type":"string","unit":"percentage points","nullable":true,"description":"The exact absolute share change."},{"path":"models[].facts","type":"object","unit":null,"nullable":false,"description":"The versioned public model facts."},{"path":"models[].facts.total_parameters","type":"object","unit":null,"nullable":false,"description":"The total_parameters model fact."},{"path":"models[].facts.total_parameters.value","type":"string","unit":"parameters","nullable":true,"description":"The exact total_parameters value. Null means that the value is unavailable."},{"path":"models[].facts.total_parameters.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for total_parameters."},{"path":"models[].facts.total_parameters.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for total_parameters."},{"path":"models[].facts.total_parameters.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when total_parameters is unavailable."},{"path":"models[].facts.total_parameters.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for total_parameters."},{"path":"models[].facts.active_parameters","type":"object","unit":null,"nullable":false,"description":"The active_parameters model fact."},{"path":"models[].facts.active_parameters.value","type":"string","unit":"parameters","nullable":true,"description":"The exact active_parameters value. Null means that the value is unavailable."},{"path":"models[].facts.active_parameters.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for active_parameters."},{"path":"models[].facts.active_parameters.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for active_parameters."},{"path":"models[].facts.active_parameters.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when active_parameters is unavailable."},{"path":"models[].facts.active_parameters.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for active_parameters."},{"path":"models[].facts.architecture_type","type":"object","unit":null,"nullable":false,"description":"The architecture_type model fact."},{"path":"models[].facts.architecture_type.value","type":"string","unit":"architecture","nullable":true,"description":"The exact architecture_type value. Null means that the value is unavailable."},{"path":"models[].facts.architecture_type.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for architecture_type."},{"path":"models[].facts.architecture_type.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for architecture_type."},{"path":"models[].facts.architecture_type.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when architecture_type is unavailable."},{"path":"models[].facts.architecture_type.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for architecture_type."},{"path":"models[].facts.base_checkpoint_bytes","type":"object","unit":null,"nullable":false,"description":"The base_checkpoint_bytes model fact."},{"path":"models[].facts.base_checkpoint_bytes.value","type":"string","unit":"bytes","nullable":true,"description":"The exact base_checkpoint_bytes value. Null means that the value is unavailable."},{"path":"models[].facts.base_checkpoint_bytes.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for base_checkpoint_bytes."},{"path":"models[].facts.base_checkpoint_bytes.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for base_checkpoint_bytes."},{"path":"models[].facts.base_checkpoint_bytes.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when base_checkpoint_bytes is unavailable."},{"path":"models[].facts.base_checkpoint_bytes.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for base_checkpoint_bytes."},{"path":"models[].facts.bf16_weights_bytes","type":"object","unit":null,"nullable":false,"description":"The bf16_weights_bytes model fact."},{"path":"models[].facts.bf16_weights_bytes.value","type":"string","unit":"bytes","nullable":true,"description":"The exact bf16_weights_bytes value. Null means that the value is unavailable."},{"path":"models[].facts.bf16_weights_bytes.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for bf16_weights_bytes."},{"path":"models[].facts.bf16_weights_bytes.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for bf16_weights_bytes."},{"path":"models[].facts.bf16_weights_bytes.reason","type":"string","unit":null,"nullable":true,"description":"The four automatic-discovery missing-size reasons are: closed_weights: A checked official source says that the release has no public weights. weights_access_unknown: No exact public checkpoint link exists. No checked source says that the weights are closed. open_checkpoint_unavailable: An exact checkpoint claim exists. The collector cannot collect the repository. size_calculation_failed: The collector collected the checkpoint. The checked facts do not support one size. Legacy public BF16 reasons can also occur."},{"path":"models[].facts.bf16_weights_bytes.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for bf16_weights_bytes."},{"path":"models[].facts.smallest_quant_checkpoint_bytes","type":"object","unit":null,"nullable":false,"description":"The smallest_quant_checkpoint_bytes model fact."},{"path":"models[].facts.smallest_quant_checkpoint_bytes.value","type":"string","unit":"bytes","nullable":true,"description":"The exact smallest_quant_checkpoint_bytes value. Null means that the value is unavailable."},{"path":"models[].facts.smallest_quant_checkpoint_bytes.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for smallest_quant_checkpoint_bytes."},{"path":"models[].facts.smallest_quant_checkpoint_bytes.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for smallest_quant_checkpoint_bytes."},{"path":"models[].facts.smallest_quant_checkpoint_bytes.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when smallest_quant_checkpoint_bytes is unavailable."},{"path":"models[].facts.smallest_quant_checkpoint_bytes.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for smallest_quant_checkpoint_bytes."},{"path":"models[].facts.smallest_quant_format","type":"object","unit":null,"nullable":false,"description":"The smallest_quant_format model fact."},{"path":"models[].facts.smallest_quant_format.value","type":"string","unit":"format","nullable":true,"description":"The exact smallest_quant_format value. Null means that the value is unavailable."},{"path":"models[].facts.smallest_quant_format.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for smallest_quant_format."},{"path":"models[].facts.smallest_quant_format.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for smallest_quant_format."},{"path":"models[].facts.smallest_quant_format.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when smallest_quant_format is unavailable."},{"path":"models[].facts.smallest_quant_format.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for smallest_quant_format."},{"path":"models[].facts.smallest_quant_bit_width","type":"object","unit":null,"nullable":false,"description":"The smallest_quant_bit_width model fact."},{"path":"models[].facts.smallest_quant_bit_width.value","type":"string","unit":"bits","nullable":true,"description":"The exact smallest_quant_bit_width value. Null means that the value is unavailable."},{"path":"models[].facts.smallest_quant_bit_width.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for smallest_quant_bit_width."},{"path":"models[].facts.smallest_quant_bit_width.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for smallest_quant_bit_width."},{"path":"models[].facts.smallest_quant_bit_width.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when smallest_quant_bit_width is unavailable."},{"path":"models[].facts.smallest_quant_bit_width.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for smallest_quant_bit_width."},{"path":"models[].facts.attention_bytes_per_token","type":"object","unit":null,"nullable":false,"description":"The attention_bytes_per_token model fact."},{"path":"models[].facts.attention_bytes_per_token.value","type":"string","unit":"bytes_per_token","nullable":true,"description":"The exact attention_bytes_per_token value. Null means that the value is unavailable."},{"path":"models[].facts.attention_bytes_per_token.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for attention_bytes_per_token."},{"path":"models[].facts.attention_bytes_per_token.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for attention_bytes_per_token."},{"path":"models[].facts.attention_bytes_per_token.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when attention_bytes_per_token is unavailable."},{"path":"models[].facts.attention_bytes_per_token.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for attention_bytes_per_token."},{"path":"models[].facts.full_sequence_attention_bytes","type":"object","unit":null,"nullable":false,"description":"The full_sequence_attention_bytes model fact."},{"path":"models[].facts.full_sequence_attention_bytes.value","type":"string","unit":"bytes","nullable":true,"description":"The exact full_sequence_attention_bytes value. Null means that the value is unavailable."},{"path":"models[].facts.full_sequence_attention_bytes.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for full_sequence_attention_bytes."},{"path":"models[].facts.full_sequence_attention_bytes.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for full_sequence_attention_bytes."},{"path":"models[].facts.full_sequence_attention_bytes.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when full_sequence_attention_bytes is unavailable."},{"path":"models[].facts.full_sequence_attention_bytes.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for full_sequence_attention_bytes."},{"path":"models[].facts.recurrent_state_bytes","type":"object","unit":null,"nullable":false,"description":"The recurrent_state_bytes model fact."},{"path":"models[].facts.recurrent_state_bytes.value","type":"string","unit":"bytes","nullable":true,"description":"The exact recurrent_state_bytes value. Null means that the value is unavailable."},{"path":"models[].facts.recurrent_state_bytes.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for recurrent_state_bytes."},{"path":"models[].facts.recurrent_state_bytes.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for recurrent_state_bytes."},{"path":"models[].facts.recurrent_state_bytes.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when recurrent_state_bytes is unavailable."},{"path":"models[].facts.recurrent_state_bytes.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for recurrent_state_bytes."},{"path":"models[].facts.calculation_sequence_length","type":"object","unit":null,"nullable":false,"description":"The calculation_sequence_length model fact."},{"path":"models[].facts.calculation_sequence_length.value","type":"string","unit":"tokens","nullable":true,"description":"The exact calculation_sequence_length value. Null means that the value is unavailable."},{"path":"models[].facts.calculation_sequence_length.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for calculation_sequence_length."},{"path":"models[].facts.calculation_sequence_length.state","type":"string","unit":null,"nullable":false,"description":"The public evidence state for calculation_sequence_length."},{"path":"models[].facts.calculation_sequence_length.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when calculation_sequence_length is unavailable."},{"path":"models[].facts.calculation_sequence_length.source_url","type":"string","unit":null,"nullable":true,"description":"The pinned public source URL for calculation_sequence_length."},{"path":"models[].supply","type":"object","unit":null,"nullable":false,"description":"The model supply state and reserved summary."},{"path":"models[].supply.state","type":"string","unit":null,"nullable":false,"description":"The fixed supply state."},{"path":"models[].supply.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when supply is unavailable."},{"path":"models[].supply.summary","type":"object","unit":null,"nullable":true,"description":"The supply summary. It is null unless supply is available."},{"path":"models[].supply.summary.route_id","type":"string","unit":null,"nullable":false,"description":"The exact public route ID."},{"path":"models[].supply.summary.route_type","type":"string","unit":null,"nullable":false,"description":"The paid, free, batch, or thinking route type."},{"path":"models[].supply.summary.collection_finished_at","type":"string","unit":"UTC timestamp","nullable":false,"description":"The supply collection finish time."},{"path":"models[].supply.summary.history_ready","type":"boolean","unit":null,"nullable":false,"description":"True when the required supply history is ready."},{"path":"models[].supply.summary.listed_endpoints","type":"object","unit":null,"nullable":false,"description":"The listed_endpoints supply metric."},{"path":"models[].supply.summary.listed_endpoints.value","type":"integer","unit":"endpoints","nullable":true,"description":"The listed_endpoints value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.listed_endpoints.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for listed_endpoints."},{"path":"models[].supply.summary.listed_endpoints.state","type":"string","unit":null,"nullable":false,"description":"The availability state for listed_endpoints."},{"path":"models[].supply.summary.listed_endpoints.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when listed_endpoints is unavailable."},{"path":"models[].supply.summary.listed_providers","type":"object","unit":null,"nullable":false,"description":"The listed_providers supply metric."},{"path":"models[].supply.summary.listed_providers.value","type":"integer","unit":"providers","nullable":true,"description":"The listed_providers value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.listed_providers.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for listed_providers."},{"path":"models[].supply.summary.listed_providers.state","type":"string","unit":null,"nullable":false,"description":"The availability state for listed_providers."},{"path":"models[].supply.summary.listed_providers.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when listed_providers is unavailable."},{"path":"models[].supply.summary.median_input_price_per_million","type":"object","unit":null,"nullable":false,"description":"The median_input_price_per_million supply metric."},{"path":"models[].supply.summary.median_input_price_per_million.value","type":"string","unit":"usd_per_million_tokens","nullable":true,"description":"The median_input_price_per_million value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.median_input_price_per_million.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for median_input_price_per_million."},{"path":"models[].supply.summary.median_input_price_per_million.state","type":"string","unit":null,"nullable":false,"description":"The availability state for median_input_price_per_million."},{"path":"models[].supply.summary.median_input_price_per_million.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when median_input_price_per_million is unavailable."},{"path":"models[].supply.summary.median_output_price_per_million","type":"object","unit":null,"nullable":false,"description":"The median_output_price_per_million supply metric."},{"path":"models[].supply.summary.median_output_price_per_million.value","type":"string","unit":"usd_per_million_tokens","nullable":true,"description":"The median_output_price_per_million value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.median_output_price_per_million.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for median_output_price_per_million."},{"path":"models[].supply.summary.median_output_price_per_million.state","type":"string","unit":null,"nullable":false,"description":"The availability state for median_output_price_per_million."},{"path":"models[].supply.summary.median_output_price_per_million.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when median_output_price_per_million is unavailable."},{"path":"models[].supply.summary.median_latency_ms","type":"object","unit":null,"nullable":false,"description":"The median_latency_ms supply metric."},{"path":"models[].supply.summary.median_latency_ms.value","type":"string","unit":"milliseconds","nullable":true,"description":"The median_latency_ms value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.median_latency_ms.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for median_latency_ms."},{"path":"models[].supply.summary.median_latency_ms.state","type":"string","unit":null,"nullable":false,"description":"The availability state for median_latency_ms."},{"path":"models[].supply.summary.median_latency_ms.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when median_latency_ms is unavailable."},{"path":"models[].supply.summary.median_throughput_tokens_per_second","type":"object","unit":null,"nullable":false,"description":"The median_throughput_tokens_per_second supply metric."},{"path":"models[].supply.summary.median_throughput_tokens_per_second.value","type":"string","unit":"tokens_per_second","nullable":true,"description":"The median_throughput_tokens_per_second value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.median_throughput_tokens_per_second.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for median_throughput_tokens_per_second."},{"path":"models[].supply.summary.median_throughput_tokens_per_second.state","type":"string","unit":null,"nullable":false,"description":"The availability state for median_throughput_tokens_per_second."},{"path":"models[].supply.summary.median_throughput_tokens_per_second.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when median_throughput_tokens_per_second is unavailable."},{"path":"models[].supply.summary.median_uptime_percent","type":"object","unit":null,"nullable":false,"description":"The median_uptime_percent supply metric."},{"path":"models[].supply.summary.median_uptime_percent.value","type":"string","unit":"percent","nullable":true,"description":"The median_uptime_percent value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.median_uptime_percent.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for median_uptime_percent."},{"path":"models[].supply.summary.median_uptime_percent.state","type":"string","unit":null,"nullable":false,"description":"The availability state for median_uptime_percent."},{"path":"models[].supply.summary.median_uptime_percent.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when median_uptime_percent is unavailable."},{"path":"models[].supply.summary.maximum_context_tokens","type":"object","unit":null,"nullable":false,"description":"The maximum_context_tokens supply metric."},{"path":"models[].supply.summary.maximum_context_tokens.value","type":"integer","unit":"tokens","nullable":true,"description":"The maximum_context_tokens value. Null means that the metric is unavailable."},{"path":"models[].supply.summary.maximum_context_tokens.unit","type":"string","unit":null,"nullable":false,"description":"The fixed unit for maximum_context_tokens."},{"path":"models[].supply.summary.maximum_context_tokens.state","type":"string","unit":null,"nullable":false,"description":"The availability state for maximum_context_tokens."},{"path":"models[].supply.summary.maximum_context_tokens.reason","type":"string","unit":null,"nullable":true,"description":"The public reason when maximum_context_tokens is unavailable."},{"path":"models[].supply.summary.quantizations","type":"array","unit":null,"nullable":false,"description":"The sorted unique quantization names."}],"availability_states":[{"state":"available","meaning":"The field has a checked public value."},{"state":"unavailable","meaning":"The field has no checked public value. Treat it as unknown, not zero."},{"state":"not_publicly_cleared","meaning":"The model fact has no public evidence that is cleared for this export."},{"state":"not_available","meaning":"The checked public model source does not supply this fact."},{"state":"not_found_under_policy","meaning":"The selected public checkpoint policy did not find this model fact."}],"sources":[{"name":"OpenRouter","url":"https://openrouter.ai/rankings","terms_url":"https://openrouter.ai/docs/cookbook/administration/data-api","license":"CC BY 4.0","limit_note":"OpenRouter is the demand source. Demand data contains the OpenRouter top 50 models. Models outside the cutoff do not have separate rows. Missing detail is unknown, not zero."},{"name":"Hugging Face","url":"https://huggingface.co","terms_url":"https://huggingface.co/terms-of-service","license":null,"limit_note":"Exact official Hugging Face repository evidence is a separate source for model facts. BF16 facts have explicit missing-size reasons. Other facts can be unavailable. The reason states whether evidence is missing, unsafe, not checked, or not found under the public policy."}],"supply":{"launch_state":"enabled","states":["not_collected","temporarily_unavailable","current_route_not_found","current_route_ambiguous","available"],"description":"The separate /api/supply dashboard feed contains provider supply and supply history. This feed is outside the formal v1 models schema."},"links":{"documentation":"https://model-demand-analytics.vercel.app/docs/api","openapi":"https://model-demand-analytics.vercel.app/api/openapi.json","full_export":"https://model-demand-analytics.vercel.app/api/export"},"agent_instructions":["Read this document before you query the models route.","OpenRouter demand and exact official Hugging Face evidence are separate sources.","Use only fields that this contract defines.","Preserve unavailable and missing values as unknown, not zero.","State generated_at, evaluation_cutoff, freshness, and source limits when you report results.","Use the full export when you need daily demand history.","Use the separate /api/supply dashboard feed when you need provider supply or supply history.","The /api/supply feed is outside the formal v1 models schema.","Do not infer that any model is underserved from demand, missing data, or the launch supply state."]}