> ## Documentation Index
> Fetch the complete documentation index at: https://gateway.consus.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Available AI models, providers, and compliance levels in Consus Gateway.

export const ModelExplorer = () => {
  const FEDRAMP_RANK = {
    low: 0,
    moderate: 1,
    high: 2
  };
  const DOD_RANK = {
    il2: 0,
    il4: 1,
    il5: 2,
    il6: 3
  };
  const DOD_LEVELS = ["il2", "il4", "il5"];
  const FEDRAMP_LEVELS = ["low", "moderate", "high"];
  const PROVIDER_NAMES = {
    aws_bedrock: "AWS Bedrock (GovCloud)",
    aws_bedrock_mantle: "AWS Bedrock (GovCloud)",
    gcp_vertex: "GCP Vertex AI (Assured Workloads)",
    azure_openai: "Azure Government OpenAI",
    aws_sagemaker: "AWS SageMaker (GovCloud)"
  };
  const CATALOG = [{
    "base_model": "claude-sonnet-4-5",
    "display_name": "Claude Sonnet 4.5",
    "model_maker": "Anthropic",
    "context_window": "200K",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 3.3,
        "output_per_1m": 16.5,
        "cached_input_per_1m": 0.33,
        "cache_write_5m_per_1m": 4.125,
        "cache_write_1h_per_1m": 6.6
      }
    }, {
      "provider_id": "aws_bedrock",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 3.6,
        "output_per_1m": 18.0,
        "cached_input_per_1m": 0.36,
        "cache_write_5m_per_1m": 4.5,
        "cache_write_1h_per_1m": 7.2
      }
    }]
  }, {
    "base_model": "claude-opus-4-8",
    "display_name": "Claude Opus 4.8",
    "model_maker": "Anthropic",
    "context_window": "1M",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "region": "us",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 5.5,
        "output_per_1m": 27.5,
        "cached_input_per_1m": 0.55,
        "cache_write_5m_per_1m": 6.875,
        "cache_write_1h_per_1m": 11.0
      }
    }, {
      "provider_id": "aws_bedrock",
      "is_active": true,
      "fedramp_ceiling": null,
      "dod_ceiling": null,
      "itar": true,
      "count_tokens": false,
      "pricing": {
        "input_per_1m": 6.0,
        "output_per_1m": 30.0,
        "cached_input_per_1m": 0.6,
        "cache_write_5m_per_1m": 7.5,
        "cache_write_1h_per_1m": 12.0
      }
    }]
  }, {
    "base_model": "claude-opus-4-7",
    "display_name": "Claude Opus 4.7",
    "model_maker": "Anthropic",
    "context_window": "1M",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "region": "us",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 5.5,
        "output_per_1m": 27.5,
        "cached_input_per_1m": 0.55,
        "cache_write_5m_per_1m": 6.875,
        "cache_write_1h_per_1m": 11.0
      }
    }]
  }, {
    "base_model": "claude-opus-4-6",
    "display_name": "Claude Opus 4.6",
    "model_maker": "Anthropic",
    "context_window": "1M",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 5.5,
        "output_per_1m": 27.5,
        "cached_input_per_1m": 0.55,
        "cache_write_5m_per_1m": 6.875,
        "cache_write_1h_per_1m": 11.0
      }
    }]
  }, {
    "base_model": "claude-sonnet-4-6",
    "display_name": "Claude Sonnet 4.6",
    "model_maker": "Anthropic",
    "context_window": "1M",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 3.3,
        "output_per_1m": 16.5,
        "cached_input_per_1m": 0.33,
        "cache_write_5m_per_1m": 4.125,
        "cache_write_1h_per_1m": 6.6
      }
    }]
  }, {
    "base_model": "claude-haiku-4-5",
    "display_name": "Claude Haiku 4.5",
    "model_maker": "Anthropic",
    "context_window": "200K",
    "modalities": ["text", "image", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il2",
      "itar": false,
      "pricing": {
        "input_per_1m": 1.1,
        "output_per_1m": 5.5,
        "cached_input_per_1m": 0.11,
        "cache_write_5m_per_1m": 1.375,
        "cache_write_1h_per_1m": 2.2
      }
    }]
  }, {
    "base_model": "gemini-3-1-pro",
    "display_name": "Gemini 3.1 Pro",
    "model_maker": "Google",
    "context_window": "1M",
    "modalities": ["text", "image", "video", "pdf"],
    "reasoning": false,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il4",
      "itar": false,
      "pricing": {
        "input_per_1m": 2,
        "output_per_1m": 12,
        "input_per_1m_200k": 4,
        "output_per_1m_200k": 18,
        "cached_input_per_1m": 0.2
      }
    }]
  }, {
    "base_model": "gemini-3-flash",
    "display_name": "Gemini 3 Flash",
    "model_maker": "Google",
    "context_window": "1M",
    "modalities": ["text", "image", "video", "pdf"],
    "reasoning": false,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il4",
      "itar": false,
      "pricing": {
        "input_per_1m": 0.5,
        "output_per_1m": 3,
        "cached_input_per_1m": 0.05
      }
    }]
  }, {
    "base_model": "gemini-3-5-flash",
    "display_name": "Gemini 3.5 Flash",
    "model_maker": "Google",
    "context_window": "1M",
    "modalities": ["text", "image", "video", "pdf"],
    "reasoning": true,
    "providers": [{
      "provider_id": "gcp_vertex",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il4",
      "itar": false,
      "pricing": {
        "input_per_1m": 1.5,
        "output_per_1m": 9,
        "cached_input_per_1m": 0.15
      }
    }]
  }, {
    "base_model": "gpt-5.1",
    "display_name": "GPT-5.1",
    "model_maker": "OpenAI",
    "context_window": "272K",
    "modalities": ["text", "image"],
    "reasoning": true,
    "providers": [{
      "provider_id": "azure_openai",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 1.71875,
        "output_per_1m": 13.75,
        "cached_input_per_1m": 0.171875
      }
    }]
  }, {
    "base_model": "gpt-4.1",
    "display_name": "GPT-4.1",
    "model_maker": "OpenAI",
    "context_window": "300K",
    "modalities": ["text", "image"],
    "reasoning": false,
    "providers": [{
      "provider_id": "azure_openai",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 2.75,
        "output_per_1m": 11.0,
        "cached_input_per_1m": 0.6875
      }
    }]
  }, {
    "base_model": "gpt-4.1-mini",
    "display_name": "GPT-4.1 Mini",
    "model_maker": "OpenAI",
    "context_window": "300K",
    "modalities": ["text", "image"],
    "reasoning": false,
    "providers": [{
      "provider_id": "azure_openai",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 0.55,
        "output_per_1m": 2.2,
        "cached_input_per_1m": 0.1375
      }
    }]
  }, {
    "base_model": "gpt-oss-120b",
    "display_name": "GPT OSS 120B",
    "model_maker": "OpenAI",
    "context_window": "128K",
    "modalities": ["text"],
    "reasoning": true,
    "providers": [{
      "provider_id": "aws_bedrock",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 0.18,
        "output_per_1m": 0.72
      }
    }]
  }, {
    "base_model": "gpt-5.4",
    "display_name": "GPT-5.4",
    "model_maker": "OpenAI",
    "context_window": "272K",
    "modalities": ["text", "image"],
    "reasoning": true,
    "providers": [{
      "provider_id": "aws_bedrock_mantle",
      "is_active": true,
      "fedramp_ceiling": "high",
      "dod_ceiling": "il5",
      "itar": true,
      "pricing": {
        "input_per_1m": 3.3,
        "output_per_1m": 19.8,
        "cached_input_per_1m": 0.33
      }
    }]
  }];
  const capitalize = s => s.charAt(0).toUpperCase() + s.slice(1);
  const isDark = typeof document !== "undefined" && document.documentElement.classList.contains("dark");
  const [darkMode, setDarkMode] = React.useState(isDark);
  React.useEffect(() => {
    const observer = new MutationObserver(() => {
      setDarkMode(document.documentElement.classList.contains("dark"));
    });
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => observer.disconnect();
  }, []);
  const [copiedId, setCopiedId] = React.useState(null);
  const copyModelId = id => {
    navigator.clipboard.writeText(id).then(() => {
      setCopiedId(id);
      setTimeout(() => setCopiedId(null), 1500);
    });
  };
  const [dodLevel, setDodLevel] = React.useState("any");
  const [fedrampLevel, setFedrampLevel] = React.useState("any");
  const [itarOnly, setItarOnly] = React.useState(false);
  const [makerFilter, setMakerFilter] = React.useState("any");
  const [itarVariant, setItarVariant] = React.useState({});
  const toggleItar = (key, current) => setItarVariant(prev => ({
    ...prev,
    [key]: !current
  }));
  const meetsDoD = ceiling => {
    if (dodLevel === "any") return true;
    if (!ceiling) return false;
    return DOD_RANK[ceiling] >= DOD_RANK[dodLevel];
  };
  const meetsFedRAMP = ceiling => {
    if (fedrampLevel === "any") return true;
    if (!ceiling) return false;
    return FEDRAMP_RANK[ceiling] >= FEDRAMP_RANK[fedrampLevel];
  };
  const requestableIds = provider => {
    const groups = [];
    if (provider.dod_ceiling) {
      const levels = DOD_LEVELS.filter(l => DOD_RANK[l] <= DOD_RANK[provider.dod_ceiling]);
      if (levels.length) groups.push({
        label: "DoD Impact Level",
        suffixes: levels
      });
    }
    if (provider.fedramp_ceiling) {
      const levels = FEDRAMP_LEVELS.filter(l => FEDRAMP_RANK[l] <= FEDRAMP_RANK[provider.fedramp_ceiling]);
      if (levels.length) groups.push({
        label: "FedRAMP",
        suffixes: levels.map(l => "fedramp-" + l)
      });
    }
    return groups;
  };
  const pricingDetails = pr => {
    const lines = [];
    const parts = [];
    if (pr.cached_input_per_1m != null) {
      const off = Math.round((1 - pr.cached_input_per_1m / pr.input_per_1m) * 100);
      parts.push("$" + pr.cached_input_per_1m.toFixed(2) + " cached" + (off > 0 ? " (" + off + "% off)" : ""));
    }
    const writes = [];
    if (pr.cache_write_5m_per_1m != null) writes.push("$" + pr.cache_write_5m_per_1m.toFixed(2) + "/5m");
    if (pr.cache_write_1h_per_1m != null) writes.push("$" + pr.cache_write_1h_per_1m.toFixed(2) + "/1h");
    if (writes.length) parts.push(writes.join(" · ") + " write");
    if (parts.length) lines.push(parts.join("  ·  "));
    if (pr.input_per_1m_200k != null || pr.output_per_1m_200k != null) {
      const tin = (pr.input_per_1m_200k != null ? pr.input_per_1m_200k : pr.input_per_1m).toFixed(2);
      const tout = (pr.output_per_1m_200k != null ? pr.output_per_1m_200k : pr.output_per_1m).toFixed(2);
      lines.push(">200K: $" + tin + " in / $" + tout + " out");
    }
    return lines;
  };
  const cards = [];
  CATALOG.forEach(model => {
    if (makerFilter !== "any" && model.model_maker !== makerFilter) return;
    const deployments = model.providers.filter(p => {
      if (!meetsDoD(p.dod_ceiling)) return false;
      if (!meetsFedRAMP(p.fedramp_ceiling)) return false;
      if (itarOnly && !p.itar) return false;
      return true;
    });
    if (deployments.length) cards.push({
      model: model,
      deployments: deployments
    });
  });
  const borderColor = darkMode ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.12)";
  const surfaceBg = darkMode ? "rgba(255,255,255,0.06)" : "rgba(0,0,0,0.03)";
  const cardBg = darkMode ? "rgba(255,255,255,0.04)" : "white";
  const selectStyle = {
    padding: "8px 12px",
    borderRadius: "6px",
    border: "1px solid " + borderColor,
    backgroundColor: darkMode ? "rgba(255,255,255,0.05)" : "white",
    fontSize: "14px",
    color: "inherit",
    cursor: "pointer",
    width: "100%"
  };
  const labelStyle = {
    fontSize: "11px",
    fontWeight: "600",
    opacity: 0.5,
    textTransform: "uppercase",
    letterSpacing: "0.05em",
    marginBottom: "6px",
    display: "block"
  };
  const badgeStyle = (bg, fg) => ({
    display: "inline-block",
    padding: "2px 8px",
    borderRadius: "9999px",
    fontSize: "11px",
    fontWeight: "600",
    backgroundColor: bg,
    color: fg,
    marginRight: "4px",
    marginBottom: "2px"
  });
  const fedrampBadge = darkMode ? ["rgba(147,197,253,0.12)", "#93c5fd"] : ["#dbeafe", "#1e40af"];
  const dodBadge = darkMode ? ["rgba(252,211,77,0.14)", "#fcd34d"] : ["#fef3c7", "#92400e"];
  const itarBadge = darkMode ? ["rgba(110,231,183,0.12)", "#6ee7b7"] : ["#d1fae5", "#065f46"];
  const okRing = darkMode ? "#34d399" : "#10b981";
  const chipStyle = copied => ({
    display: "inline-flex",
    alignItems: "center",
    gap: "5px",
    padding: "3px 9px",
    borderRadius: "6px",
    fontSize: "12px",
    fontWeight: "600",
    fontFamily: "monospace",
    backgroundColor: darkMode ? "rgba(255,255,255,0.06)" : "#eef2f6",
    color: copied ? darkMode ? "#6ee7b7" : "#047857" : darkMode ? "#cbd5e1" : "#334155",
    border: "1px solid transparent",
    cursor: "pointer",
    ...copied ? {
      boxShadow: "0 0 0 2px " + okRing
    } : {}
  });
  const chipCss = [".me-chip { transition: box-shadow .12s ease, transform .05s ease; }", ".me-chip:hover { box-shadow: 0 0 0 1px currentColor; }", ".me-chip:active { transform: translateY(1px); }", ".me-chip .me-copy { opacity: .25; transition: opacity .12s ease; display: inline-flex; }", ".me-chip:hover .me-copy { opacity: .6; }"].join("\n");
  return <div>
      <style dangerouslySetInnerHTML={{
    __html: chipCss
  }} />
      <div style={{
    display: "grid",
    gridTemplateColumns: "1fr 1fr 1fr",
    gap: "12px",
    padding: "16px",
    backgroundColor: surfaceBg,
    borderRadius: "8px",
    border: "1px solid " + borderColor,
    marginBottom: "16px"
  }}>
        <div>
          <span style={labelStyle}>DoD Impact Level</span>
          <select value={dodLevel} onChange={e => setDodLevel(e.target.value)} style={selectStyle}>
            <option value="any">Any</option>
            <option value="il2">IL2+</option>
            <option value="il4">IL4+</option>
            <option value="il5">IL5+</option>
          </select>
        </div>
        <div>
          <span style={labelStyle}>FedRAMP Level</span>
          <select value={fedrampLevel} onChange={e => setFedrampLevel(e.target.value)} style={selectStyle}>
            <option value="any">Any</option>
            <option value="low">Low+</option>
            <option value="moderate">Moderate+</option>
            <option value="high">High</option>
          </select>
        </div>
        <div>
          <span style={labelStyle}>Model Maker</span>
          <select value={makerFilter} onChange={e => setMakerFilter(e.target.value)} style={selectStyle}>
            <option value="any">All Makers</option>
            <option value="Anthropic">Anthropic</option>
            <option value="Google">Google</option>
            <option value="OpenAI">OpenAI</option>
          </select>
        </div>
      </div>

      <div style={{
    display: "flex",
    justifyContent: "space-between",
    alignItems: "center",
    marginBottom: "16px"
  }}>
        <div style={{
    display: "flex",
    alignItems: "center",
    gap: "8px"
  }}>
          <input type="checkbox" id="itar-filter" checked={itarOnly} onChange={e => setItarOnly(e.target.checked)} style={{
    width: "16px",
    height: "16px",
    cursor: "pointer"
  }} />
          <label htmlFor="itar-filter" style={{
    fontSize: "14px",
    fontWeight: "500",
    color: "inherit",
    cursor: "pointer"
  }}>
            ITAR Authorized Only
          </label>
        </div>
        <span style={{
    fontSize: "13px",
    opacity: 0.5
  }}>
          {cards.length}{" "}{cards.length === 1 ? "model" : "models"}
        </span>
      </div>

      {cards.length === 0 ? <div style={{
    textAlign: "center",
    padding: "48px 20px",
    opacity: 0.5,
    backgroundColor: surfaceBg,
    borderRadius: "8px",
    border: "1px dashed " + borderColor
  }}>
          No models match the selected filters.
        </div> : <div style={{
    display: "flex",
    flexDirection: "column",
    gap: "12px"
  }}>
          {cards.map(card => {
    const model = card.model;
    const multi = card.deployments.length > 1;
    return <div key={model.base_model} style={{
      border: "1px solid " + borderColor,
      borderRadius: "8px",
      padding: "16px",
      backgroundColor: cardBg
    }}>
                <div style={{
      display: "flex",
      justifyContent: "space-between",
      alignItems: "baseline",
      gap: "12px",
      flexWrap: "wrap",
      marginBottom: multi ? "4px" : "14px"
    }}>
                  <div style={{
      display: "flex",
      alignItems: "baseline",
      gap: "8px",
      flexWrap: "wrap"
    }}>
                    <span style={{
      fontSize: "17px",
      fontWeight: "700"
    }}>{model.display_name}</span>
                    <span style={{
      fontSize: "13px",
      opacity: 0.5
    }}>{model.model_maker}</span>
                  </div>
                  <div style={{
      display: "flex",
      alignItems: "center",
      gap: "8px",
      fontSize: "12px",
      opacity: 0.65,
      flexWrap: "wrap"
    }}>
                    <span style={{
      fontFamily: "monospace"
    }}>{model.context_window} ctx</span>
                    <span style={{
      opacity: 0.4
    }}>·</span>
                    <span>{model.modalities.join(" · ")}</span>
                    {model.reasoning && <span style={{
      opacity: 0.4
    }}>·</span>}
                    {model.reasoning && <span>reasoning</span>}
                  </div>
                </div>

                {multi && <div style={{
      fontSize: "12px",
      opacity: 0.5,
      marginBottom: "14px"
    }}>
                    Available on {card.deployments.length} authorized clouds — choose your level and price.
                  </div>}

                <div style={{
      display: "flex",
      flexDirection: "column"
    }}>
                  {card.deployments.map((provider, i) => {
      const key = model.base_model + "::" + provider.provider_id;
      const pr = provider.pricing || ({});
      const extras = pricingDetails(pr);
      const itarOn = provider.itar && (itarVariant[key] === undefined ? itarOnly : itarVariant[key]);
      return <div key={key} style={{
        marginTop: i === 0 ? "0" : "14px",
        paddingTop: i === 0 ? "0" : "14px",
        borderTop: i === 0 ? "none" : "1px solid " + borderColor
      }}>
                        <div style={{
        display: "flex",
        justifyContent: "space-between",
        alignItems: "flex-start",
        gap: "12px",
        flexWrap: "wrap",
        marginBottom: "10px"
      }}>
                          <div style={{
        display: "flex",
        flexDirection: "column",
        gap: "6px"
      }}>
                            <span style={{
        fontSize: "13px",
        fontWeight: "600"
      }}>{PROVIDER_NAMES[provider.provider_id] || provider.provider_id}</span>
                            <div>
                              {provider.fedramp_ceiling && <span style={badgeStyle(fedrampBadge[0], fedrampBadge[1])}>{"FedRAMP " + capitalize(provider.fedramp_ceiling)}</span>}
                              {provider.dod_ceiling && <span style={badgeStyle(dodBadge[0], dodBadge[1])}>{provider.dod_ceiling.toUpperCase()}</span>}
                              {provider.itar && <span style={badgeStyle(itarBadge[0], itarBadge[1])}>ITAR</span>}
                            </div>
                          </div>
                          <div style={{
        textAlign: "right",
        flexShrink: 0
      }}>
                            <div style={{
        fontFamily: "monospace",
        fontSize: "13px",
        fontWeight: "600"
      }}>{"$" + pr.input_per_1m.toFixed(2) + " in / $" + pr.output_per_1m.toFixed(2) + " out"}</div>
                            {extras.map((line, j) => <div key={j} style={{
        fontFamily: "monospace",
        fontSize: "11px",
        opacity: 0.6,
        marginTop: "3px"
      }}>{line}</div>)}
                          </div>
                        </div>

                        {provider.itar && <div style={{
        display: "flex",
        alignItems: "center",
        gap: "8px",
        marginBottom: "10px"
      }}>
                            <button onClick={() => toggleItar(key, itarOn)} title="Append +itar to every ID below (ITAR-controlled workloads)" style={{
        display: "inline-flex",
        alignItems: "center",
        gap: "7px",
        background: "none",
        border: "none",
        padding: "0",
        cursor: "pointer",
        color: "inherit"
      }}>
                              <span style={{
        position: "relative",
        display: "inline-block",
        width: "30px",
        height: "18px",
        borderRadius: "9999px",
        backgroundColor: itarOn ? okRing : darkMode ? "rgba(255,255,255,0.18)" : "#cbd5e1",
        transition: "background-color .15s ease",
        flexShrink: 0
      }}>
                                <span style={{
        position: "absolute",
        top: "2px",
        left: "2px",
        width: "14px",
        height: "14px",
        borderRadius: "50%",
        backgroundColor: "#fff",
        boxShadow: "0 1px 2px rgba(0,0,0,0.25)",
        transform: itarOn ? "translateX(12px)" : "translateX(0)",
        transition: "transform .15s ease"
      }} />
                              </span>
                              <span style={{
        fontFamily: "monospace",
        fontSize: "12px",
        fontWeight: "600",
        opacity: itarOn ? 1 : 0.7
      }}>+itar</span>
                            </button>
                            <span style={{
        fontSize: "11px",
        opacity: 0.5
      }}>{itarOn ? "appended to all IDs below" : "for ITAR-controlled workloads"}</span>
                          </div>}

                        <div style={{
        display: "flex",
        flexDirection: "column",
        gap: "10px"
      }}>
                          {requestableIds(provider).map(group => <div key={group.label}>
                              <div style={{
        display: "flex",
        flexWrap: "wrap",
        gap: "6px"
      }}>
                                {group.suffixes.map(base => {
        const suffix = itarOn ? base + "+itar" : base;
        const id = model.base_model + ":" + suffix;
        const copied = copiedId === id;
        return <button key={base} className={"me-chip" + (copied ? " me-copied" : "")} onClick={() => copyModelId(id)} title={"Copy " + id} style={chipStyle(copied)}>
                                      <span>{suffix}</span>
                                      {copied ? <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> : <span className="me-copy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span>}
                                    </button>;
      })}
                              </div>
                            </div>)}
                          {provider.itar && (() => {
        const id = model.base_model + ":itar";
        const copied = copiedId === id;
        return <div style={{
          display: "flex",
          flexWrap: "wrap",
          gap: "6px",
          alignItems: "center",
          borderTop: "1px dashed " + borderColor,
          paddingTop: "12px"
        }}>
                                <button className={"me-chip" + (copied ? " me-copied" : "")} onClick={() => copyModelId(id)} title={"Copy " + id + " — ITAR with no compliance level"} style={chipStyle(copied)}>
                                  <span>itar</span>
                                  {copied ? <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> : <span className="me-copy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span>}
                                </button>
                              </div>;
      })()}
                        </div>
                      </div>;
    })}
                </div>
              </div>;
  })}
        </div>}
    </div>;
};

All models are served through FedRAMP and DoD IL authorized government cloud environments. All endpoints use FIPS 140-2 validated connections.

## Model ID Format

Model IDs use a composite format: `{model_name}:{compliance_level}`.

**FedRAMP levels:**

| Level              | Description               |
| ------------------ | ------------------------- |
| `fedramp-low`      | FedRAMP Low baseline      |
| `fedramp-moderate` | FedRAMP Moderate baseline |
| `fedramp-high`     | FedRAMP High baseline     |

**DoD Impact Levels:**

| Level | Description                                       |
| ----- | ------------------------------------------------- |
| `il2` | DoD Impact Level 2 (non-CUI, publicly releasable) |
| `il4` | DoD Impact Level 4 (CUI)                          |
| `il5` | DoD Impact Level 5 (CUI + national security)      |

These are two independent frameworks. Higher levels satisfy lower ones within the same framework, so a model authorized at IL5 can be requested as `:il5`, `:il4`, or `:il2`. A model at FedRAMP High can be requested as `:fedramp-high`, `:fedramp-moderate`, or `:fedramp-low`.

**ITAR:** For ITAR / export-controlled workloads you can either append `+itar` to a compliance level (e.g., `claude-sonnet-4-5:il5+itar`), or — if you gate only on export control — request ITAR on its own with `:itar` (e.g., `claude-sonnet-4-5:itar`). The `:itar` form routes to the model's ITAR-authorized provider without requiring you to name a FedRAMP or DoD IL level.

A bare model name with no `:` suffix (e.g., `claude-sonnet-4-5`) is rejected with a `400` error — every request must carry a compliance level or `:itar`. There is no provider prefix.

## Available Models

Filter by compliance level, ITAR authorization, and provider.

<ModelExplorer />
