KB / Memory / project-anyrouter-catalog-one-id

One AnyRouter listing id per model

Catalog id is owner/model; host SKUs (date, vision-exp, fast, casing) are upstream names or aliases

project
projectanyrouterllmcatalog
raw .md

A public catalog id is the product slug (owner/model), not a host SKU. Date tags, vision-exp, fast, quantization suffixes, and casing variants belong on upstreams[].model_name or aliases: — never as sibling listing rows.

Example (2026-08-28): DeepSeek V4 Flash lists as deepseek/deepseek-v4-flash. Former rows deepseek/DeepSeek-V4-Flash, deepseek/deepseek-v4-flash-0731-fast, and deepseek/deepseek-v4-flash-vision-exp resolve as aliases.

Why: callers and /models should see one model, not three host spellings. How to apply: one lowercase owner/model listing id; keep working upstreams on that row; alias old ids; remove sibling YAML so it cannot occupy the id. Prefer unlist/alias over deleting history (project-anyrouter-unlist-broken-models). Do not invent ids. Do not add image/video generation endpoints.

Hub: project-anyrouter.