Reference
Model page schema reference
Fields on a ModelEntity record: identifiers, lifecycle, pricing, modality, capabilities, source trail. Includes the JSON-LD rules that guarantee unverified metrics never reach search-engine markup.
Last updated: 2026-05-21
Field reference
| Field | Definition | Rule / note |
|---|---|---|
| id | Stable internal record id. | |
| slug | URL slug used in /models/<slug>. | Once shipped, never renamed. |
| providerSlug | Foreign key into providers. | |
| apiIdentifiers | MaybeVerified<{canonical, alias?, bedrock?, vertex?, other?}> | Canonical is the pinned snapshot; alias is the rolling pointer. |
| lifecycle | MaybeVerified<{status, retirementDate?, migrationTarget?}> | Drives /models?lifecycle= filter and the lifecycle badge. |
| contextWindow | MaybeVerified<number> input token limit. | |
| maxOutputTokens | MaybeVerified<number> output token limit. | |
| modality | MaybeVerified<ModalityChannel[]> | Input + output channels tracked separately. |
| features | MaybeVerified<{extendedThinking, adaptiveThinking, priorityTier, visionInput, toolUse}> | |
| pricing | VerifiedPricingTier[] — see /docs/pricing-fields. | Every row with a verified amount carries a citation. |
| benchmarks | VerifiedBenchmarkScore[] | Empty across every model today. No scores published. |
| infrastructure | {regions, avgLatencyMs, uptimePercent} — all MaybeVerified. | All null today. No fabricated latency/uptime/regions. |
| citations | Deduplicated union of every citation referenced by verified fields. |
ModelEntity shape
interface ModelEntity {
id: string;
slug: string;
name: string;
description: string;
providerSlug: string;
verified: boolean;
verificationStatus: 'verified' | 'partial' | 'unverified';
lastCheckedAt: string | null;
updatedDate: string | null;
apiIdentifiers: MaybeVerified<ModelApiIdentifiers>;
releaseDate: MaybeVerified<string>;
snapshotDate: MaybeVerified<string>;
knowledgeCutoff: MaybeVerified<ModelKnowledgeCutoff>;
contextWindow: MaybeVerified<number>;
maxOutputTokens: MaybeVerified<number>;
modality: MaybeVerified<ModalityChannel[]>;
features: MaybeVerified<ModelFeatures>;
lifecycle: MaybeVerified<ModelLifecycle>;
pricing: VerifiedPricingTier[];
benchmarks: VerifiedBenchmarkScore[];
infrastructure: ModelInfrastructure;
citations: SourceCitation[];
}API identifiers
The apiIdentifiers field records:
canonical— the pinned snapshot ID (e.g.claude-opus-4-20250514).alias— the rolling alias the provider promotes for general use (e.g.claude-opus-4-0). Aliases resolve to different snapshots over time and should not be used as a stable identifier in benchmarks.bedrock/vertex— platform-specific IDs where the model is also served via Amazon Bedrock or Google Vertex AI.other— array of{ platform, id }for any additional inference platforms.
Lifecycle and snapshot
snapshotDate is the date encoded in the pinned canonical identifier (e.g. 2025-05-14 for claude-opus-4-20250514). It is distinct from releaseDate (public-release date) — the catalogue records snapshot dates from canonical IDs and leaves release date null unless the vendor publishes a separate public-release record.
lifecycle is an object with status (active / preview / deprecated / retired), optional retirementDate, and optional migrationTarget (slug of the recommended successor). The /models filter surfaces this directly.
Modality, context, output, features
modality— array ofModalityChannelvalues:text-in,image-in,audio-in,video-in,text-out,image-out,audio-out. Input and output channels are tracked separately.contextWindow— published max input tokens.maxOutputTokens— published max output tokens in a single response.features— object recordingextendedThinking,adaptiveThinking,priorityTier,visionInput,toolUse. Each flag is null when the vendor does not document the capability.
Pricing tiers
The pricing array carries one VerifiedPricingTier per pricing unit. See pricing fields for the full enum and the validation rules.
Infrastructure fields
infrastructure is an object with three MaybeVerified slots: regions, avgLatencyMs, uptimePercent. All three are null today across every model in the catalogue. See inference infrastructure for why.
Benchmarks
The benchmarks array on each model record is empty today; no per-model scores are published. The benchmark structural catalogue lives at /benchmarks and explains why.
Source trail
citations is the deduplicated union of every citation referenced by any verified field on the record. Built once via the mergeCitations() helper at module-load time. Model detail pages render the list as the "Sources" section.
JSON-LD rules
The model JSON-LD helper at lib/model-jsonld.ts gates every metric behind isVerified(). Unverified pricing, benchmark, latency, uptime, region, or features properties are never emitted. The integrity guard "model-jsonld omits benchmark / latency / uptime fields entirely" refuses the build if a banned property assignment appears in the helper.
Continue