import{r as x,j as e,f as U,w as O}from"./jsx-runtime-CgWCn3gT.js";import{S as $,L as P}from"./legacy-shell-D4JdMu14.js";import{J as W,e as G,a as J,o as K}from"./seo-meta-Bpqygpx8.js";import{i as Q,d as h,S as D,e as B,M as Y,N as E,c as Z}from"./index-Cq8XyhQL.js";import"./providerSeo-RwIhoovz.js";import"./modelRetire-D9cZQWKz.js";import{u as M}from"./useTranslation-CksCcIr-.js";import{p as V}from"./index-hXL9_ymv.js";import{E as Ne}from"./error-page-Bt0s4Oe9.js";import"./i18nInstance-C_7vXBXC.js";import"./index-ao6ir_VS.js";import"./preload-helper-BXl3LOEh.js";const u=i=>({t:i}),I=i=>({code:i});function q({count:i,q:n,hotPair:t},o){const l=Q(o),c=[];if(c.push(l?{q:"这些模型真的免费吗？",a:[[u(`是的。这 ${i} 个模型的输入和输出 token 都按 $0 计费。推理成本由 AIHubMix 补贴，用量靠配额约束，而不是靠账单。`)]]}:{q:"Are these models really free?",a:[[u(`Yes. All ${i} models bill $0 for input and output tokens. AIHubMix subsidizes the inference cost; usage is bounded by quotas instead of a bill.`)]]}),n&&n.trial&&c.push(l?{q:"充值前能用到什么？",a:[[u(`${n.trial} 次试用调用，全部免费模型共享，永不过期。用完之后 API 仍会正常响应，只是提示试用额度已用尽——你的集成不会遇到硬错误。`)]]}:{q:"What do I get before topping up?",a:[[u(`${n.trial} trial calls, shared across all free models, with no expiry. When they run out the API keeps answering with a note that the trial is used up — your integration never sees a hard error.`)]]}),n&&n.day&&c.push(l?{q:"充值后能用到什么？",a:[[u(`任意一次 $${n.thresholdUsd} 及以上的充值即可把账户永久切换为每日配额：每分钟 ${n.minute} 次、每天 ${n.day} 次请求${n.tokens?`，外加每天 ${h(n.tokens)} token`:""}，全部免费目录共享、每天重置。权重更高的模型一次调用计为多次请求——每个模型的实际上限见表格。超过上限后 API 返回 429，到下一分钟或下一天自动恢复。`)]]}:{q:"What do I get after topping up?",a:[[u(`Any top-up of $${n.thresholdUsd} or more permanently switches your account to daily quotas: ${n.minute} requests per minute, ${n.day} requests per day${n.tokens?` and ${h(n.tokens)} tokens per day`:""}, shared across the free catalog and reset every day. Models with a higher request weight count as several requests per call — the exact caps are in the table. Past a cap the API returns 429 until the next minute or day starts.`)]]}),t){const a=t.freeName||t.free,d=t.paidName||t.paid;c.push(l?{q:`${a} 和 ${d} 有什么区别？`,a:[[u("除了价格没有其他区别——它们是同一个上游模型，能力和效果完全一样。"),I("-free"),u(" 版 $0 计费、受上面的配额约束；付费版按 token 计费、没有每日上限。两者切换只是改一行模型名。")]]}:{q:`What is the difference between ${a} and ${d}?`,a:[[u("Price is the only difference — they are the same upstream model with identical capability. The "),I("-free"),u(" ID bills $0 within the quotas above; the paid ID bills per token with no daily cap. Switching between them is a one-line model-name change.")]]})}return c}const X="https://console.aihubmix.com/token";function ee({id:i,copiedId:n,onCopy:t}){const{t:o}=M(),l=n===i;return e.jsx("button",{className:`pv-copy${l?" is-done":""}`,type:"button",onClick:()=>t(i),"aria-label":l?o("Copied"):o("Copy model ID {{id}}",{id:i}),children:e.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[e.jsx("rect",{x:"5.5",y:"5.5",width:"8",height:"8",rx:"1.5"}),e.jsx("path",{d:"M10.5 3.5v-1a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h1"})]})})}function ae(i,n){const t=n.length?{c:`# ${n.join(" / ")}`}:null,o=l=>t?[l,"  ",t]:[l];return[{id:"chat",label:"Chat Completions",endpoint:"POST /v1/chat/completions",lines:[["curl https://aihubmix.com/v1/chat/completions \\"],['  -H "Authorization: Bearer sk-***" \\'],['  -H "Content-Type: application/json" \\'],["  -d '{"],['    "model": "',{m:i},'",'],['    "messages": [{"role":"user","content":"Hi"}]'],o("  }'")]},{id:"messages",label:"Messages",endpoint:"POST /v1/messages",lines:[["curl https://aihubmix.com/v1/messages \\"],['  -H "x-api-key: sk-***" \\'],['  -H "anthropic-version: 2023-06-01" \\'],['  -H "content-type: application/json" \\'],["  -d '{"],['    "model": "',{m:i},'", "max_tokens": 1024,'],['    "messages": [{"role":"user","content":"Hi"}]'],o("  }'")]},{id:"responses",label:"Responses",endpoint:"POST /v1/responses",lines:[["curl https://aihubmix.com/v1/responses \\"],['  -H "Authorization: Bearer sk-***" \\'],['  -H "Content-Type: application/json" \\'],["  -d '{"],['    "model": "',{m:i},'",'],['    "input": "Hi"'],o("  }'")]}]}function se({lines:i}){return e.jsx("div",{className:"fm-code",children:i.map((n,t)=>e.jsx("div",{children:n.map((o,l)=>typeof o=="string"?e.jsx("span",{children:o},l):o.m?e.jsx("span",{className:"m",children:o.m},l):e.jsx("span",{className:"c",children:o.c},l))},t))})}function te({rows:i,quota:n,usage:t,hero:o,hotPair:l,demo:c}){const{t:a,i18n:d}=M(),A=String(d.language||"").startsWith("zh"),[g,m]=x.useState("tok"),[N,T]=x.useState("chat"),[S,_]=x.useState(""),[L,z]=x.useState(!1);x.useEffect(()=>z(!0),[]);const R=x.useMemo(()=>q({count:i.length,q:n,hotPair:l},d.language),[i.length,n,l,d.language]),k=x.useMemo(()=>{if(!t)return null;const s=new Map(i.map(j=>[j.id,j.name])),p=j=>j.map(f=>f.rest?f:{...f,name:s.get(f.model)||f.model});return{tok:p(t.shareTok),req:p(t.shareReq)}},[t,i]);function H(s){navigator.clipboard&&navigator.clipboard.writeText(s).then(()=>{_(s),setTimeout(()=>_(p=>p===s?"":p),1400)})}const y=s=>({hidden:g!==s}),F=ae(c.model,c.alts),w=F.find(s=>s.id===N)||F[0],r=n||null;return e.jsx("div",{className:"pv-page fm-page",children:e.jsxs("main",{children:[e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsxs("nav",{className:"ah-crumbs","aria-label":"Breadcrumb",children:[e.jsx("a",{className:"ah-link",href:"/models",children:a("Models")}),e.jsx("span",{className:"ah-crumbs__sep",children:"/"}),e.jsx("span",{"aria-current":"page",children:a("Free models")})]}),e.jsx("div",{className:"fm-head",children:e.jsxs("div",{children:[e.jsx("h1",{children:a("Free AI Models")}),e.jsxs("p",{className:"ah-lead fm-head__lead",children:[a("fm lead base",{count:i.length}),r&&r.trial?a("fm lead trial",{trial:r.trial}):"",r&&r.thresholdUsd?a("fm lead topup",{usd:r.thresholdUsd}):a("fm lead end")]}),e.jsxs("div",{className:"fm-head__meta",children:[e.jsxs("span",{children:[e.jsx("b",{children:i.length})," ",a("models unit",{count:i.length})]}),e.jsxs("span",{children:[e.jsx("b",{children:o.providerCount})," ",a("authors unit",{count:o.providerCount})]}),e.jsxs("span",{children:[a("Every model")," ",e.jsx("b",{children:"$0"}),e.jsx("span",{className:"ah-unit",children:a("/M input & output")})]}),t&&e.jsx("span",{children:a("Updated {{date}}",{date:t.to})})]})]})}),r&&e.jsxs("div",{className:"fm-lanes",children:[e.jsxs("article",{className:"ah-card ah-card--flat",children:[e.jsx("h3",{children:a("Before your first top-up")}),e.jsx("p",{className:"ah-desc",children:a("No credit card required, and trial calls never expire.")}),e.jsx("div",{className:"fm-lane__facts",children:e.jsxs("span",{children:[a("Trial calls")," ",e.jsx("b",{children:r.trial})," ",e.jsx("span",{className:"ah-unit",children:a("total, all free models")})]})})]}),e.jsxs("article",{className:"ah-card fm-lane--paid",children:[e.jsxs("h3",{children:[a("After a one-time ${{usd}} top-up",{usd:r.thresholdUsd}),e.jsx("span",{className:"fm-badge fm-badge--reco",children:a("Recommended")})]}),e.jsx("p",{className:"ah-desc",children:a("fm paid lane desc",{usd:r.thresholdUsd})}),e.jsxs("div",{className:"fm-lane__facts",children:[e.jsxs("span",{children:[a("Requests")," ",e.jsx("b",{children:r.day}),e.jsx("span",{className:"ah-unit",children:a("/day unit")})]}),e.jsxs("span",{children:[a("Requests")," ",e.jsx("b",{children:r.minute}),e.jsx("span",{className:"ah-unit",children:a("/min unit")})]}),r.tokens?e.jsxs("span",{children:[a("Tokens")," ",e.jsx("b",{children:h(r.tokens)}),e.jsx("span",{className:"ah-unit",children:a("/day unit")})]}):null,e.jsxs("span",{children:[a("Resets")," ",e.jsx("b",{children:a("daily")})]})]})]})]})]})}),t&&e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsxs("div",{className:"ah-section__head",children:[e.jsx("h2",{children:a("Usage")}),e.jsxs("div",{className:"pv-usage__controls",children:[e.jsxs("div",{className:"ah-seg","data-at":g==="req"?"1":"0",role:"group","aria-label":a("Measure usage by"),hidden:!L,children:[e.jsx("button",{className:"ah-seg__btn",type:"button",onClick:()=>m("tok"),"aria-pressed":g==="tok",children:a("By tokens")}),e.jsx("button",{className:"ah-seg__btn",type:"button",onClick:()=>m("req"),"aria-pressed":g==="req",children:a("By requests")})]}),e.jsxs("span",{className:"ah-meta",children:[a("Last {{days}} days",{days:t.days})," · ",t.from," ",a("date range to")," ",t.to]})]})]}),e.jsxs("div",{className:"pv-usage",children:[e.jsxs("div",{className:"ah-card",children:[e.jsxs("div",{className:"pv-usage__head",children:[e.jsxs("div",{children:[e.jsx("p",{className:"ah-meta",children:a("Tokens")}),e.jsx("p",{className:"pv-figure",children:h(t.totalTokens)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"ah-meta",children:a("Requests")}),e.jsx("p",{className:"pv-figure",children:h(t.totalCalls)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"ah-meta",children:a("Models in use")}),e.jsxs("p",{className:"pv-figure",children:[t.modelsInUse,e.jsxs("span",{className:"ah-unit",children:[" ",a("of {{total}}",{total:i.length})]})]})]})]}),e.jsxs("div",{...y("tok"),children:[e.jsx("p",{className:"ah-meta pv-usage__cap",children:a("Tokens per day, stacked by model")}),e.jsx(D,{series:t.stackTok,labels:t.dates,noun:"tokens",devName:a("free")})]}),e.jsxs("div",{...y("req"),children:[e.jsx("p",{className:"ah-meta pv-usage__cap",children:a("Requests per day, stacked by model")}),e.jsx(D,{series:t.stackReq,labels:t.dates,noun:"requests",devName:a("free")})]})]}),e.jsxs("div",{className:"ah-card",children:[e.jsx("h3",{className:"pv-usage__title",children:a("Which models that traffic went to")}),e.jsxs("div",{...y("tok"),children:[e.jsx(B,{items:k.tok}),e.jsxs("p",{className:"ah-meta pv-share__note",children:[a("Share of {{total}} tokens.",{total:h(t.totalTokens)}),t.tokMissing>0&&e.jsxs(e.Fragment,{children:[" ",a("fm tok missing",{count:t.tokMissing})]})]})]}),e.jsxs("div",{...y("req"),children:[e.jsx(B,{items:k.req}),e.jsx("p",{className:"ah-meta pv-share__note",children:a("Share of {{total}} requests.",{total:h(t.totalCalls)})})]})]})]})]})}),e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsxs("div",{className:"ah-section__head",children:[e.jsx("h2",{children:a("All {{count}} Free Models",{count:i.length})}),e.jsx("a",{className:"ah-btn ah-btn--text",href:"/models?tag=free",children:a("Open in model list")})]}),e.jsx("div",{className:"ah-card ah-card--flat fm-table-card",children:e.jsx("div",{className:"ah-table-wrap",children:e.jsxs("table",{className:"ah-table",children:[e.jsx("caption",{className:"pv-sr",children:a("fm table caption")}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:a("Model")}),e.jsx("th",{scope:"col",children:a("Modalities")}),e.jsx("th",{scope:"col",className:"ah-num",children:a("col context")}),r&&e.jsx("th",{scope:"col",className:"ah-num",children:a("Rate limit")}),e.jsx("th",{scope:"col",children:a("Paid version")})]})}),e.jsx("tbody",{children:i.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("span",{className:"pv-id fm-id",children:[s.dev.icon?s.dev.slug?e.jsx("a",{className:"fm-logo-link",href:`/authors/${s.dev.slug}`,"aria-label":a("{{name}} models on AIHubMix",{name:s.dev.name}),children:e.jsx("img",{className:"fm-logo",src:s.dev.icon,alt:s.dev.name,title:s.dev.name,width:"24",height:"24",loading:"lazy"})}):e.jsx("img",{className:"fm-logo",src:s.dev.icon,alt:s.dev.name,title:s.dev.name,width:"24",height:"24",loading:"lazy"}):e.jsx("span",{className:"fm-logo fm-logo--txt",title:s.dev.name,role:"img","aria-label":s.dev.name,children:(s.dev.name||"?").slice(0,1).toUpperCase()}),e.jsx("a",{className:"ah-link",href:`/model/${encodeURIComponent(s.id)}`,children:s.id}),s.badge==="new"&&e.jsx("span",{className:"fm-badge fm-badge--new",children:"New"}),e.jsx(ee,{id:s.id,copiedId:S,onCopy:H})]})}),e.jsx("td",{children:s.modIn.length||s.modOut.length?e.jsx(Y,{row:s}):e.jsx(E,{})}),e.jsx("td",{className:"ah-num",children:s.ctx?e.jsx("b",{children:Z(s.ctx)}):e.jsx(E,{})}),r&&e.jsxs("td",{className:"ah-num fm-quota",children:[e.jsx("b",{children:Math.floor(r.day/s.weight)}),e.jsx("span",{className:"ah-unit",children:a("/day unit")})," · ",e.jsx("b",{children:Math.floor(r.minute/s.weight)}),e.jsx("span",{className:"ah-unit",children:a("/min unit")})]}),e.jsx("td",{className:"fm-paid",children:s.paid?e.jsxs("a",{className:"ah-link",href:`/compare/${encodeURIComponent(s.paid)}/${encodeURIComponent(s.id)}`,"aria-label":a("Compare {{a}} with {{b}}",{a:s.name||s.id,b:s.paidName||s.paid}),children:[a("vs paid")," →"]}):e.jsx(E,{})})]},s.id))})]})})}),e.jsxs("p",{className:"ah-meta fm-table-note",children:[a("fm table note base"),r&&r.tokens?a("fm table note pool",{tokens:h(r.tokens)}):"",r&&r.trial?a("fm table note trial",{trial:r.trial}):""," ",a("fm table note tail")]})]})}),e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsx("div",{className:"ah-section__head",children:e.jsx("h2",{children:a("How to Start")})}),e.jsxs("div",{className:"ah-card fm-howto",children:[e.jsxs("ol",{className:"fm-howto__steps",children:[e.jsxs("li",{children:[e.jsx("span",{className:"fm-howto__n",children:"1"}),e.jsxs("div",{children:[e.jsx("h3",{children:a("Create an account")}),e.jsxs("p",{className:"ah-desc",children:[a("Email or OAuth, no credit card required."),r&&r.trial?` ${a("{{trial}} trial calls are available immediately.",{trial:r.trial})}`:""]})]})]}),e.jsxs("li",{children:[e.jsx("span",{className:"fm-howto__n",children:"2"}),e.jsxs("div",{children:[e.jsx("h3",{children:a("Create an API key")}),e.jsxs("p",{className:"ah-desc",children:[a("One key works for every model on the platform, free and paid alike.")," ",e.jsxs("a",{className:"ah-link",href:X,children:[a("Open the API keys page")," →"]})]})]})]}),e.jsxs("li",{children:[e.jsx("span",{className:"fm-howto__n",children:"3"}),e.jsxs("div",{children:[e.jsx("h3",{children:a("Call a free model")}),e.jsxs("p",{className:"ah-desc",children:[a("fm step3 pre"),e.jsx("code",{children:"-free"}),a("fm step3 post")]})]})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"fm-tabs",role:"tablist","aria-label":a("API protocol"),children:F.map(s=>e.jsx("button",{className:"fm-tab",role:"tab","aria-selected":N===s.id,onClick:()=>T(s.id),type:"button",children:s.label},s.id))}),e.jsx("p",{className:"fm-endpoint",children:w.endpoint}),e.jsx("div",{className:"fm-well",children:e.jsx(se,{lines:w.lines})}),l&&e.jsx("p",{className:"ah-desc fm-howto__note",children:A?e.jsxs(e.Fragment,{children:["像 ",e.jsx("code",{children:l.free})," 这样的 ",e.jsx("code",{children:"-free"})," ID——本月调用量最高的免费模型——与"," ",e.jsx("a",{className:"ah-link",href:`/model/${encodeURIComponent(l.paid)}`,children:l.paidName||l.paid})," ","是同一个上游模型，以补贴的免费变体提供。需要付费吞吐时把后缀去掉即可，代码的其他部分不用改。"]}):e.jsxs(e.Fragment,{children:["A ",e.jsx("code",{children:"-free"})," ID like ",e.jsx("code",{children:l.free})," — the most-called free model this month — is the same upstream model as"," ",e.jsx("a",{className:"ah-link",href:`/model/${encodeURIComponent(l.paid)}`,children:l.paidName||l.paid}),", served as a subsidized free variant. Swap the suffix off when you need paid throughput; nothing else in your code changes."]})})]})]})]})}),e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsx("div",{className:"ah-section__head",children:e.jsx("h2",{children:a("Free Models on AIHubMix")})}),e.jsx("div",{className:"ah-card pv-faq",children:R.map((s,p)=>e.jsxs("details",{open:p===0,children:[e.jsx("summary",{children:s.q}),s.a.map((j,f)=>e.jsx("p",{children:j.map((v,C)=>v.code?e.jsx("code",{children:v.code},C):v.b?e.jsx("b",{children:v.b},C):e.jsx(U.Fragment,{children:v.t},C))},f))]},s.q))})]})}),e.jsx("section",{className:"ah-section",children:e.jsxs("div",{className:"ah-container",children:[e.jsx("div",{className:"ah-section__head",children:e.jsx("h2",{children:a("Keep Exploring")})}),e.jsxs("div",{className:"fm-grid-3",children:[e.jsxs("article",{className:"ah-card fm-explore",children:[e.jsx("h3",{children:a("All Models")}),e.jsx("p",{className:"ah-desc",children:a("fm explore models desc",{count:o.catalogSize})}),e.jsxs("a",{className:"ah-link",href:"/models",children:[a("Browse all models")," →"]})]}),e.jsxs("article",{className:"ah-card fm-explore",children:[e.jsx("h3",{children:a("LLM Router")}),e.jsxs("p",{className:"ah-desc",children:[a("fm router desc pre"),e.jsx("code",{children:"auto"}),a("fm router desc post")]}),e.jsxs("a",{className:"ah-link",href:"/llm-router/auto",children:[a("Try the router")," →"]})]}),e.jsxs("article",{className:"ah-card fm-explore",children:[e.jsx("h3",{children:a("Apps")}),e.jsx("p",{className:"ah-desc",children:a("fm apps desc")}),e.jsxs("a",{className:"ah-link",href:"/ecosystem",children:[a("Browse the app store")," →"]})]})]})]})})]})})}const ne='.fm-page .fm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;margin-bottom:var(--space-8)}.fm-page .fm-head__lead{margin-top:var(--space-2);max-width:88ch}.fm-page .fm-head__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-4);font-size:var(--text-14);color:var(--muted)}.fm-page .fm-head__meta b{font-variant-numeric:tabular-nums}.fm-page .fm-lanes{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--space-4);margin-bottom:var(--space-8)}.fm-page main>.ah-section:first-child{padding-bottom:0}.fm-page .fm-lane--paid{background:color-mix(in srgb,var(--accent) 3%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}.fm-page .fm-lane--paid h3{display:flex;align-items:center;gap:var(--space-2)}.fm-page .fm-badge--reco{background:var(--accent)}.fm-page .fm-lanes .ah-desc{margin-top:var(--space-2)}.fm-page .fm-lane__facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-3);font-size:var(--text-14);color:var(--muted)}.fm-page .fm-lane__facts b{font-variant-numeric:tabular-nums;color:var(--fg)}.fm-page .fm-table-card{padding:var(--space-2)}.fm-page .fm-table-note{margin-top:var(--space-3)}.fm-page .fm-quota{white-space:nowrap}.fm-page .fm-paid{font-size:var(--text-14);white-space:nowrap}.fm-page .fm-logo{width:var(--icon-lg);height:var(--icon-lg);object-fit:contain;flex:none}.fm-page .fm-logo-link{display:inline-flex;flex:none}.fm-page .fm-logo-link:hover .fm-logo{filter:brightness(var(--hover-brightness))}.fm-page .fm-logo--txt{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:var(--radius-xs);font-size:var(--text-sm);color:var(--muted)}.fm-page .fm-badge{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.02em;color:var(--accent-on)}.fm-page .fm-badge--new{background:var(--new)}.fm-page .pv-usage{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.fm-page .fm-howto{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--space-8);align-items:stretch}.fm-page .fm-howto__steps{list-style:none;margin:0;padding:0;height:100%;display:flex;flex-direction:column}.fm-page .fm-howto__steps li{display:flex;gap:var(--space-3);position:relative;flex:1 1 auto;padding-bottom:var(--space-8)}.fm-page .fm-howto__steps li:last-child{flex:0 0 auto;padding-bottom:0}.fm-page .fm-howto__steps li:not(:last-child):after{content:"";position:absolute;left:calc(var(--icon-lg) / 2 - .5px);top:calc(var(--icon-lg) + var(--space-1));bottom:var(--space-1);width:1px;background:var(--border)}.fm-page .fm-howto__steps h3{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--fg);margin:0}.fm-page .fm-howto__steps .ah-desc{margin-top:var(--space-1)}.fm-page .fm-howto__n{flex:none;width:var(--icon-lg);height:var(--icon-lg);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg-2);font-variant-numeric:tabular-nums}.fm-page .fm-howto__note{margin-top:var(--space-3)}.fm-page .fm-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.fm-page .fm-tab{height:28px;padding-inline:var(--space-3);border-radius:var(--radius-sm);border:var(--border-width) solid var(--border);background:var(--surface);color:var(--fg-2);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard)}.fm-page .fm-tab:hover{background:var(--surface-2)}.fm-page .fm-tab[aria-selected=true]{background:var(--accent);color:var(--accent-on);border-color:transparent}.fm-page .fm-endpoint{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-2)}.fm-page .fm-well{background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--space-4)}.fm-page .fm-code{font-family:var(--font-mono);font-size:var(--text-14);line-height:var(--leading-body);overflow-x:auto;white-space:pre;color:var(--fg-2)}.fm-page .fm-code .c{color:#a8acb3}.fm-page .fm-code .m{color:var(--accent);font-weight:var(--weight-medium)}.fm-page .fm-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.fm-page .fm-explore{display:flex;flex-direction:column}.fm-page .fm-explore h3{margin:0}.fm-page .fm-explore .ah-desc{margin-top:var(--space-2)}.fm-page .fm-explore .ah-link{margin-top:auto;padding-top:var(--space-4);font-size:var(--text-14)}@media(max-width:1023px){.fm-page .fm-lanes{grid-template-columns:1fr}.fm-page .fm-howto{grid-template-columns:minmax(0,1fr)}.fm-page .fm-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.fm-page .fm-head{align-items:stretch;flex-direction:column}.fm-page .fm-grid-3{grid-template-columns:1fr}}',b=$.siteInfo.domain,ie=i=>i.map(n=>n.map(t=>t.code||t.b||t.t).join("")).join(" ");function ge({data:i,error:n}){if(n?.status&&n.status>=500)return[{title:"Temporarily Unavailable"},{name:"robots",content:"noindex"}];if(n||!i)return[{title:"Not Found"},{name:"robots",content:"noindex"}];const{rows:t,quota:o,usage:l}=i,c=`Free AI Models - ${t.length} Free LLM & Image APIs | AIHubMix`,a=`Call ${t.length} genuinely free AI models — GPT, Gemini, GLM, Kimi, MiniMax and more — through one OpenAI-compatible API. No credit card required${o?.trial?`, ${o.trial} trial calls on signup`:""}${o?.day?`, daily quotas after a one-time $${o.thresholdUsd} top-up`:""}${l?`. ${h(l.totalCalls)} requests served in the last ${l.days} days`:""}.`,d=`${b}/models/free`;return[{title:c},{name:"description",content:a},{tagName:"link",rel:"canonical",href:d},...J(),...K({title:c,description:a,url:d})]}const je=O(function({loaderData:n}){const{rows:t,quota:o,hotPair:l}=n,c=q({count:t.length,q:o,hotPair:l},"en"),a=`${b}/models/free`,d={"@type":"WebSite",name:$.siteInfo.siteName,url:b},g={"@context":"https://schema.org","@graph":[{"@type":"CollectionPage",url:a,name:"Free AI Models",inLanguage:"en",isPartOf:d,mainEntity:{"@type":"ItemList",numberOfItems:t.length,itemListElement:t.map((m,N)=>({"@type":"ListItem",position:N+1,name:m.name||m.id,url:`${b}/model/${encodeURIComponent(m.id)}`}))}},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Models",item:`${b}/models`},{"@type":"ListItem",position:2,name:"Free models",item:a}]},{"@type":"FAQPage",mainEntity:c.map(m=>({"@type":"Question",name:m.q,acceptedAnswer:{"@type":"Answer",text:ie(m.a)}}))}]};return e.jsxs(P,{children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:V}}),e.jsx("style",{dangerouslySetInnerHTML:{__html:ne}}),e.jsx(te,{...n}),e.jsx("script",{id:W,type:"application/ld+json",dangerouslySetInnerHTML:{__html:G(JSON.stringify(g))}})]})});export{Ne as ErrorBoundary,je as default,ge as meta};
