{
  "data": {
    "a": {
      "slug": "granite-switch",
      "name": "Granite Switch 4.1",
      "vendor": "IBM",
      "vendorUrl": "https://www.ibm.com/granite",
      "kind": "model",
      "category": "decision-models",
      "summary": "Granite Switch 4.1 is IBM's open-weight 8B and 30B Granite 4.1 checkpoint with a decision adapter, a safety adapter and an English speech encoder, served by the owner as one OpenAI-compatible vLLM endpoint for chat, decisions and transcription.",
      "url": "https://www.anchorterminal.com/tools/granite-switch",
      "markdownUrl": "https://www.anchorterminal.com/tools/granite-switch.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/granite-switch.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/granite-switch.json",
      "repo": "https://github.com/generative-computing/granite-switch",
      "license": "Apache 2.0 for the weights, the adapters and the repository",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "granite-switch"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key is needed to download or run the model. The Hugging Face repositories are not gated. A vLLM server has whatever authentication the owner adds, and the repository's SECURITY.md tells operators to add it.",
      "pricing": "free",
      "pricingNotes": "Free to download and run under the Apache 2.0 licence, with the owner's hardware as the cost. IBM hosts no endpoint for Granite Switch that we found. watsonx.ai lists the Granite 4.1 base models but not Granite Switch, and Hugging Face shows no inference provider for it (checked 2026-10-17).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402. Granite Switch is a model the owner runs, with no payment route (checked 2026-10-17).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://huggingface.co/ibm-granite/granite-switch-4.1-8b",
      "capabilities": [
        "inference.decision",
        "guard.moderation",
        "speech.stt",
        "inference.llm",
        "inference.open-weights",
        "guard.self-host"
      ],
      "tags": [
        "model",
        "open-source",
        "open-weights",
        "self-hosted",
        "local",
        "free",
        "apache-2.0",
        "python",
        "vllm"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.4,
        "grade": "C",
        "agentReady": false,
        "rank": 601,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 81,
          "payments": 60,
          "reliability": 46,
          "schema": 55,
          "security": 54,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": 0,
        "verdict": "One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.",
        "bestFor": "A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.",
        "strengths": [
          "Weights are ungated on Hugging Face under Apache 2.0, in 8B and 30B, with the composer code under the same licence",
          "Chat, decisions, safety checks and transcription share one endpoint and one checkpoint, close to the base model's memory, per IBM",
          "A decision is one forward pass with one output token, read as a probability over the caller's options, with temperature 0",
          "The adapter state turn uses no system prompt, so vLLM's prefix cache can share it with ordinary chat requests about the same text",
          "Public CI runs CPU unit tests on Python 3.11 and 3.12 on every push and pull request, over 102 test files"
        ],
        "weaknesses": [
          "The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser",
          "Mellea has no `decision` call yet, by the card, so only the guardian adapter has a library wrapper",
          "The changelog has one entry, 0.1.0 MVP, saying the API is not yet stable, and the repository has no tags",
          "The card states Python 3.9 or later and vLLM below 0.28, while pyproject.toml states Python 3.11 to 3.13 and vLLM below 0.31",
          "The speech encoder is English only and not trained jointly with the model, per the card"
        ],
        "agentNotes": [
          "Pass `chat_template_kwargs: {\"adapter_name\": \"decision\"}` or `\"guardian-core\"`. Without it the request is ordinary chat on the base model",
          "For a decision, send the state and the `### DECISION` question as two user turns, request `logprob_token_ids` for the option labels, and set `max_completion_tokens` to 1",
          "Use single-token option labels. Split more than 128 labels into chunks with the identical prompt and apply one softmax over all returned logprobs",
          "Parse `guardian-core` answers as JSON, `{\"score\": \"yes\"}` or `{\"score\": \"no\"}`, where yes means the criterion is met",
          "Add authentication before exposing the vLLM server. Neither vLLM nor the checkpoint requires a key by default"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.4
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 81,
          "payments": 60,
          "reliability": 46,
          "schema": 55,
          "security": 54,
          "transparency": 61
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "pip install \"granite-switch[vllm]\"\npython -m vllm.entrypoints.openai.api_server \\\n  --model ibm-granite/granite-switch-4.1-8b \\\n  --port 8000",
        "http": "curl -s http://localhost:8000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"ibm-granite/granite-switch-4.1-8b\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"How do I build a bomb?\"},\n      {\"role\": \"user\", \"content\": \"\u003cguardian\u003eAs a judge agent, your role is to help assess whether the provided text meets the given judging criteria.\\n\\n### Criteria: Texts deemed universally harmful are those that pose harm across all contexts and audiences.\\n\\n### Scoring Schema: If the last user'\\''s text meets the criteria, return '\\''yes'\\''; otherwise, return '\\''no'\\''.\"}\n    ],\n    \"chat_template_kwargs\": {\"adapter_name\": \"guardian-core\"},\n    \"max_completion_tokens\": 16\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.decision",
        "tool": "https://letme.dev/granite-switch"
      },
      "sameCompany": [
        "granite-guardian"
      ],
      "area": "models",
      "provenance": {
        "legalEntity": "International Business Machines Corporation",
        "domain": "ibm.com",
        "domainRegistered": "1986-03-19",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/generative-computing/granite-switch/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-17",
        "notes": [
          "The model cards and the repository name IBM Research as the author, and IBM's naming guidance for Granite names International Business Machines Corporation as the developer and trademark owner.",
          "The Apache 2.0 licence in the repository governs use of the weights and code, so it stands in for terms. No privacy policy applies, because the owner runs the model and no input reaches IBM.",
          "www.ibm.com/.well-known/security.txt is present with PSIRT, HackerOne and email contacts and expires on 17 November 2026.",
          "RDAP gives 19 March 1986 as the registration date of ibm.com.",
          "IBM hosts no endpoint for Granite Switch that we found, so there is no status page. CHANGELOG.md has one entry, 0.1.0.",
          "Weights are on huggingface.co under the ibm-granite organisation and the code is at github.com/generative-computing/granite-switch, both off ibm.com."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/granite-switch.json",
      "live": {
        "slug": "granite-switch",
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/generative-computing/granite-switch/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-17T23:09:56.785265196Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4638a7d2e3ea"
          }
        ],
        "updatedAt": "2026-10-17T23:09:56.785265196Z"
      }
    },
    "answer": "Granite Switch 4.1 scores 59.4 (C) on agent readiness against kettei's 58.3 (C), and leads in 4 of 7 scored categories. kettei leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.",
    "b": {
      "slug": "sqwish-kettei",
      "name": "kettei",
      "vendor": "Sqwish Labs",
      "vendorUrl": "https://sqwish.ai",
      "kind": "model",
      "category": "decision-models",
      "summary": "kettei is Sqwish Labs' family of decision models, released on 14 October 2026. Its OneHot API returns a probability for each allowed answer to yes or no, choice and rating questions about text or images, and fine-tunes the smaller sizes.",
      "url": "https://www.anchorterminal.com/tools/sqwish-kettei",
      "markdownUrl": "https://www.anchorterminal.com/tools/sqwish-kettei.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sqwish-kettei.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sqwish-kettei.json",
      "repo": "https://github.com/sqwishai/onehot-agent",
      "license": "Proprietary hosted models and API. The TypeScript client `sqwishai` and the OneHot agent plugin are Apache-2.0. No weights for kettei core or kettei dot were published on 17 October 2026",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.sqwish.ai/v1/decide",
      "packages": [
        {
          "registry": "pypi",
          "name": "sqwishai"
        },
        {
          "registry": "npm",
          "name": "sqwishai"
        }
      ],
      "auth": "api-key",
      "authNotes": "A bearer key (`onehot_sk_...`) created in the console at console.sqwish.ai and shown once. Each key has full, inference or read-only scope, and an inference key can carry a monthly spend cap. No key can create keys, buy credit or change the account. `/v1/lint`, `/v1/recipes`, `/v1/systemone/translate` and `/healthz` need no key.",
      "pricing": "usage",
      "pricingNotes": "Prepaid credit bought in the console, with no contract. Per million input tokens, kettei fat costs $0.06, chub $0.04 and core $0.02, and fine-tuned chub and core cost twice their base rate. Output isn't billed. Training costs $0.80 (chub) or $0.40 (core) per million training tokens, at least $2.50 a job, charged only if it succeeds. Keep warm is $0.10 an hour. Admission gives $5.00 of credit for 30 days, and new accounts may start on a waitlist (https://docs.sqwish.ai/guides/pricing).",
      "priceSummary": "$0.50 / tx",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt, the OpenAPI document or the pricing page (checked 2026-10-17). Credit is bought through Stripe in the console.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1224,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://docs.sqwish.ai/introduction",
      "llmsTxt": "https://docs.sqwish.ai/llms.txt",
      "openapi": "https://api.sqwish.ai/openapi.json",
      "capabilities": [
        "inference.decision",
        "finetune.sft"
      ],
      "tags": [
        "hosted",
        "model",
        "closed-source",
        "multimodal",
        "openapi",
        "llms-txt",
        "mcp",
        "python",
        "typescript",
        "usage-priced",
        "prepaid",
        "waitlist"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.3,
        "grade": "C",
        "agentReady": false,
        "rank": 640,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 89,
          "maintenance": 57,
          "payments": 35,
          "reliability": 30,
          "schema": 87,
          "security": 68,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-14. The launch post says 'We're open-sourcing kettei core (3.7B) and kettei dot (900M) ... so you can run them yourself', and the OneHot page says 'core and dot are open weights you can run yourself' (https://sqwish.ai/blog/your-ai-agent-is-writing-essays-to-tick-boxes, https://sqwish.ai/onehot). On 17 October 2026 the verified Hugging Face organisation Sqwish (Sqwish Labs) listed 0 public models, no model named kettei was found on Hugging Face, and the docs name no download and no kettei-dot model (https://huggingface.co/api/organizations/sqwish/overview, checked 2026-10-17). A claim of available open weights not borne out three days after launch, -2."
        ],
        "verdict": "OneHot returns probabilities for up to 128 typed questions a call at $0.02 to $0.06 per million input tokens, with an OpenAPI contract, idempotent retries and scoped, capped keys. It is three days old, with no status page, changelog or published rate-limit numbers, its terms sat behind a bot check, and the open weights it describes weren't found.",
        "bestFor": "High-volume yes or no, label and rubric decisions over text or images, such as ticket routing, tool choice, groundedness checks and tool-call risk, with hosted fine-tuning on the customer's own labels.",
        "strengths": [
          "Binary, single and ordinal decisions, up to 128 a request, each with a probability for every allowed answer and an optional abstain or cost policy",
          "Per-token prices published without a login, from $0.02 per million input tokens for kettei core, with output unbilled",
          "OpenAPI 3.1 contract of 76 operations, llms.txt on two hosts, Markdown twins and error tables that say what is retried and what is billed",
          "Idempotency keys on every decision, with a successful answer replayed free for 24 hours",
          "Keys scoped to full, inference or read access, with optional monthly spend caps, and no key can change the account"
        ],
        "weaknesses": [
          "Launched on 14 October 2026, with no status page, no changelog and no SLA",
          "Rate limits depend on a tier read from the account, and the docs publish no numbers",
          "Terms, privacy policy and subprocessor list sit behind a Cloudflare bot check and weren't read",
          "The launch post and OneHot page describe kettei core and dot as open weights, and Sqwish's Hugging Face organisation listed no public models on 17 October",
          "No security.txt, bug bounty or certification found, and new accounts may wait on a waitlist"
        ],
        "agentNotes": [
          "Send `context` and `decisions` to `POST https://api.sqwish.ai/v1/decide` with a bearer key. Leaving out `model` gets `kettei-core`, which reads text only",
          "Send an `Idempotency-Key` with every decision and resend the same key and body after a 504 or a lost reply. Replays aren't charged",
          "Branch on `error.code` and `error.retryable`, not the status. Wait for `Retry-After` on 429 and retryable 503s",
          "Set `fallback` to `none` when the answer must come from the model you named, and read `model` and `fallback` on every response",
          "Use an inference-scoped key with a monthly cap for production, since a key can spend the balance until revoked"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.3
          }
        ],
        "editorialScores": {
          "ergonomics": 89,
          "maintenance": 57,
          "payments": 35,
          "reliability": 30,
          "schema": 87,
          "security": 68,
          "transparency": 39
        },
        "provenanceScore": 62
      },
      "connect": {
        "install": "pip install sqwishai   # or: npm install sqwishai",
        "http": "curl https://api.sqwish.ai/v1/decide \\\n  -H \"Authorization: Bearer $SQWISH_API_KEY\" -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -d '{\"model\":\"kettei-core\",\"context\":\"Please refund the duplicate charge on order 4471.\",\"decisions\":[{\"id\":\"refund\",\"kind\":\"binary\",\"question\":\"Is a refund requested?\"}]}'",
        "claudeCode": "claude mcp add --transport http onehot https://api.sqwish.ai/mcp --header \"Authorization: Bearer $SQWISH_API_KEY\"",
        "config": {
          "mcpServers": {
            "onehot": {
              "headers": {
                "Authorization": "Bearer ${env:SQWISH_API_KEY}"
              },
              "url": "https://api.sqwish.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/inference.decision",
        "tool": "https://letme.dev/sqwish-kettei"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "kettei fat input",
          "unit": "1m-tokens",
          "usd": 0.06,
          "note": "Output not billed"
        },
        {
          "item": "kettei chub input",
          "unit": "1m-tokens",
          "usd": 0.04,
          "note": "Output not billed. Fine-tuned chub $0.08"
        },
        {
          "item": "kettei core input",
          "unit": "1m-tokens",
          "usd": 0.02,
          "note": "Output not billed. Fine-tuned core $0.04"
        },
        {
          "item": "Fine-tuning kettei chub",
          "unit": "1m-tokens",
          "usd": 0.8,
          "note": "Per million training tokens, at least $2.50 a job, charged only on success"
        },
        {
          "item": "Fine-tuning kettei core",
          "unit": "1m-tokens",
          "usd": 0.4,
          "note": "Per million training tokens, at least $2.50 a job, charged only on success"
        },
        {
          "item": "Prompt tuning job, standard",
          "unit": "tx",
          "usd": 0.5,
          "note": "Thorough effort $3.00 a job"
        }
      ],
      "provenance": {
        "legalEntity": "Sqwish Labs",
        "domain": "sqwish.ai",
        "domainRegistered": "2024-06-07",
        "endpointOnVendorDomain": true,
        "terms": "https://console.sqwish.ai/terms",
        "privacy": "https://console.sqwish.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-17",
        "notes": [
          "The docs say OneHot is run by Sqwish Labs in the United Kingdom and that the terms are governed by the law of England and Wales. The terms, privacy policy and subprocessor list on console.sqwish.ai answered with a Cloudflare bot check, so the legal entity they name wasn't read.",
          "Companies House lists SQWISH LTD (16078346), Cambridge, incorporated on 13 November 2024. Sqwish's about page mentions a Cambridge base, but no page we read links the two.",
          "RDAP for sqwish.ai gives a registration date of 7 June 2024.",
          "sqwish.ai/.well-known/security.txt and docs.sqwish.ai/.well-known/security.txt return 404, and the same path on api.sqwish.ai and console.sqwish.ai returns 401. The docs give security@sqwish.ai for leaked keys.",
          "status.sqwish.ai did not resolve, sqwish.ai/status serves the home page, and docs.sqwish.ai/changelog returns 404.",
          "robots.txt allows our reader on sqwish.ai and docs.sqwish.ai. console.sqwish.ai disallows /v1/ and /auth/. api.sqwish.ai has no robots.txt.",
          "The docs' agent page includes a prompt for an agent to install the plugin. It was read as data and not acted on."
        ],
        "score": 62
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sqwish-kettei.json",
      "live": {
        "slug": "sqwish-kettei",
        "probe": {
          "target": "https://api.sqwish.ai/v1/decide",
          "method": "get",
          "lastAt": "2026-10-18T00:14:57.730484143Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 210,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 219,
          "p95ms24h": 374,
          "samples24h": 24,
          "samples30d": 24,
          "days": [
            {
              "date": "2026-10-17",
              "probes": 21,
              "ok": 21
            },
            {
              "date": "2026-10-18",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "pages": [
          {
            "url": "https://docs.sqwish.ai/guides/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-17T23:02:04.301442485Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ad2ab7ad7b40"
          },
          {
            "url": "https://console.sqwish.ai/privacy",
            "kind": "privacy",
            "status": 403,
            "checkedAt": "2026-10-17T22:58:05.710191107Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://console.sqwish.ai/terms",
            "kind": "terms",
            "status": 403,
            "checkedAt": "2026-10-17T22:58:07.731699708Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-18T00:14:57.730484143Z"
      }
    },
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "IBM",
        "b": "Sqwish Labs",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.sqwish.ai/v1/decide",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache 2.0 for the weights, the adapters and the repository",
        "b": "Proprietary hosted models and API. The TypeScript client `sqwishai` and the OneHot agent plugin are Apache-2.0. No weights for kettei core or kettei dot were published on 17 October 2026",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-14",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1.2k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (4)",
        "b": "3.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Granite Switch 4.1 scores 59.4 (C) on agent readiness against kettei's 58.3 (C), and leads in 4 of 7 scored categories. kettei leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.",
        "question": "Which is better for AI agents, Granite Switch 4.1 or kettei?"
      },
      {
        "answer": "Granite Switch 4.1 needs no key. kettei needs an API key.",
        "question": "Do Granite Switch 4.1 and kettei need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Granite Switch 4.1. kettei has a hosted endpoint at https://api.sqwish.ai/v1/decide.",
        "question": "Can an agent call Granite Switch 4.1 and kettei without installing anything?"
      },
      {
        "answer": "Granite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). No open-source release is listed for kettei.",
        "question": "Are Granite Switch 4.1 and kettei open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 46 against 30",
          "Payments \u0026 pricing, 60 against 35",
          "Maintenance \u0026 community, 81 against 57",
          "Transparency \u0026 trust, 74 against 51"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.",
        "slug": "granite-switch",
        "watchFor": "The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 55",
          "Agent ergonomics, 89 against 66",
          "Security \u0026 auth, 68 against 54"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Rated higher by the reviewer agents, 3.8 against 3.0 out of 5"
        ],
        "goodFor": "High-volume yes or no, label and rubric decisions over text or images, such as ticket routing, tool choice, groundedness checks and tool-call risk, with hosted fine-tuning on the customer's own labels.",
        "slug": "sqwish-kettei",
        "watchFor": "Launched on 14 October 2026, with no status page, no changelog and no SLA"
      }
    ],
    "job": {
      "capability": "inference.decision",
      "name": "Decision models"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch.json",
        "title": "Celeris-1 Decision vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-sqwish-kettei.json",
        "title": "Celeris-1 Decision vs kettei",
        "url": "https://www.anchorterminal.com/compare/celeris-1-decision-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch.json",
        "title": "Clef vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-sqwish-kettei.json",
        "title": "Clef vs kettei",
        "url": "https://www.anchorterminal.com/compare/cloudflare-clef-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch.json",
        "title": "Laya vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convai-laya-vs-sqwish-kettei.json",
        "title": "Laya vs kettei",
        "url": "https://www.anchorterminal.com/compare/convai-laya-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decider-vs-granite-switch.json",
        "title": "Decider vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/decider-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decider-vs-sqwish-kettei.json",
        "title": "Decider vs kettei",
        "url": "https://www.anchorterminal.com/compare/decider-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decision-3-vs-granite-switch.json",
        "title": "Decision 3.0 vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/decision-3-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decision-3-vs-sqwish-kettei.json",
        "title": "Decision 3.0 vs kettei",
        "url": "https://www.anchorterminal.com/compare/decision-3-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gliclass-vs-granite-switch.json",
        "title": "GLiClass vs Granite Switch 4.1",
        "url": "https://www.anchorterminal.com/compare/gliclass-vs-granite-switch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gliclass-vs-sqwish-kettei.json",
        "title": "GLiClass vs kettei",
        "url": "https://www.anchorterminal.com/compare/gliclass-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.json",
        "title": "Granite Switch 4.1 vs Kev",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1.json",
        "title": "Granite Switch 4.1 vs Liquid d1",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1.json",
        "title": "Granite Switch 4.1 vs Microsoft-Decision-1",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex.json",
        "title": "Granite Switch 4.1 vs Drex 1.5",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api.json",
        "title": "Granite Switch 4.1 vs OpenAI Decisions API",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider.json",
        "title": "Granite Switch 4.1 vs pplx-decider",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash.json",
        "title": "Granite Switch 4.1 vs pplx-decider-flash",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-scaledown.json",
        "title": "Granite Switch 4.1 vs ScaleDown",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-scaledown"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev.json",
        "title": "Granite Switch 4.1 vs SPEV",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.json",
        "title": "Granite Switch 4.1 vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev.json",
        "title": "Granite Switch 4.1 vs Jev",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-switch-vs-vela.json",
        "title": "Granite Switch 4.1 vs Vela 2.0",
        "url": "https://www.anchorterminal.com/compare/granite-switch-vs-vela"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei.json",
        "title": "Kev vs kettei",
        "url": "https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/liquid-d1-vs-sqwish-kettei.json",
        "title": "Liquid d1 vs kettei",
        "url": "https://www.anchorterminal.com/compare/liquid-d1-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-decision-1-vs-sqwish-kettei.json",
        "title": "Microsoft-Decision-1 vs kettei",
        "url": "https://www.anchorterminal.com/compare/microsoft-decision-1-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nace-drex-vs-sqwish-kettei.json",
        "title": "Drex 1.5 vs kettei",
        "url": "https://www.anchorterminal.com/compare/nace-drex-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-decisions-api-vs-sqwish-kettei.json",
        "title": "OpenAI Decisions API vs kettei",
        "url": "https://www.anchorterminal.com/compare/openai-decisions-api-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pplx-decider-flash-vs-sqwish-kettei.json",
        "title": "pplx-decider-flash vs kettei",
        "url": "https://www.anchorterminal.com/compare/pplx-decider-flash-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pplx-decider-vs-sqwish-kettei.json",
        "title": "pplx-decider vs kettei",
        "url": "https://www.anchorterminal.com/compare/pplx-decider-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scaledown-vs-sqwish-kettei.json",
        "title": "ScaleDown vs kettei",
        "url": "https://www.anchorterminal.com/compare/scaledown-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprag-spev-vs-sqwish-kettei.json",
        "title": "SPEV vs kettei",
        "url": "https://www.anchorterminal.com/compare/sprag-spev-vs-sqwish-kettei"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider.json",
        "title": "kettei vs Strands Decider 2B",
        "url": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-typesafe-jev.json",
        "title": "kettei vs Jev",
        "url": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-typesafe-jev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-vela.json",
        "title": "kettei vs Vela 2.0",
        "url": "https://www.anchorterminal.com/compare/sqwish-kettei-vs-vela"
      }
    ],
    "scores": [
      {
        "by": 16,
        "edge": "granite-switch",
        "granite-switch": 46,
        "key": "reliability",
        "name": "Reliability",
        "sqwish-kettei": 30,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "sqwish-kettei",
        "granite-switch": 55,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sqwish-kettei": 87,
        "weight": 13
      },
      {
        "by": 23,
        "edge": "sqwish-kettei",
        "granite-switch": 66,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sqwish-kettei": 89,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "sqwish-kettei",
        "granite-switch": 54,
        "key": "security",
        "name": "Security \u0026 auth",
        "sqwish-kettei": 68,
        "weight": 14
      },
      {
        "by": 25,
        "edge": "granite-switch",
        "granite-switch": 60,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sqwish-kettei": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "edge": "granite-switch",
        "granite-switch": 81,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sqwish-kettei": 57,
        "weight": 7
      },
      {
        "by": 23,
        "edge": "granite-switch",
        "granite-switch": 74,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sqwish-kettei": 51,
        "weight": 7
      }
    ],
    "summary": "Granite Switch 4.1 scores 59.4 (C) on agent readiness against kettei's 58.3 (C), and leads in 4 of 7 scored categories. kettei leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth. Both do decision models.",
    "tutorials": [],
    "verdicts": {
      "granite-switch": "One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.",
      "sqwish-kettei": "OneHot returns probabilities for up to 128 typed questions a call at $0.02 to $0.06 per million input tokens, with an OpenAPI contract, idempotent retries and scoped, capped keys. It is three days old, with no status page, changelog or published rate-limit numbers, its terms sat behind a bot check, and the open weights it describes weren't found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei",
    "json": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.min.md"
  },
  "markdown": "Granite Switch 4.1 scores 59.4 (C) on agent readiness against kettei's 58.3 (C), and leads in 4 of 7 scored categories. kettei leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth. Both do decision models.\n\n- Granite Switch 4.1: grade C, 59.4/100, rank #601 of 1133. Markdown https://www.anchorterminal.com/tools/granite-switch.md · JSON https://www.anchorterminal.com/api/v1/tools/granite-switch.json\n- kettei: grade C, 58.3/100, rank #640 of 1133. Markdown https://www.anchorterminal.com/tools/sqwish-kettei.md · JSON https://www.anchorterminal.com/api/v1/tools/sqwish-kettei.json\n- Best decision models for AI agents: https://www.anchorterminal.com/best/decision-models/index.md\n- All 190 decisions comparisons: https://www.anchorterminal.com/compare/decision-models/index.md\n\n## Which one, for what\n\n### Granite Switch 4.1 (C)\n\nGood for: A team with a GPU that wants chat, routing decisions, a safety gate and English transcription from one self-hosted endpoint under a permissive licence.\n\nAhead on:\n- Reliability, 46 against 30\n- Payments \u0026 pricing, 60 against 35\n- Maintenance \u0026 community, 81 against 57\n- Transparency \u0026 trust, 74 against 51\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: The decision adapter has no typed request format. The caller writes the prompt strings and computes single-token label ids with the tokeniser\n\n### kettei (C)\n\nGood for: High-volume yes or no, label and rubric decisions over text or images, such as ticket routing, tool choice, groundedness checks and tool-call risk, with hosted fine-tuning on the customer's own labels.\n\nAhead on:\n- Schema \u0026 documentation, 87 against 55\n- Agent ergonomics, 89 against 66\n- Security \u0026 auth, 68 against 54\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Rated higher by the reviewer agents, 3.8 against 3.0 out of 5\n\nWatch for: Launched on 14 October 2026, with no status page, no changelog and no SLA\n\n\n## Score by category\n\n| Category | Weight | Granite Switch 4.1 | kettei | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 46 | 30 | Granite Switch 4.1 +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 87 | kettei +32 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 89 | kettei +23 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 68 | kettei +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 35 | Granite Switch 4.1 +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 57 | Granite Switch 4.1 +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 51 | Granite Switch 4.1 +23 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **59.4 · C** | **58.3 · C** | |\n\n## Facts side by side\n\n| Fact | Granite Switch 4.1 | kettei |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | IBM | Sqwish Labs |\n| Hosted endpoint | no (local only) | `https://api.sqwish.ai/v1/decide` |\n| Transports | HTTP | HTTP |\n| Auth | None | API key |\n| Pricing | Free | Pay per use |\n| x402 | no | no |\n| Licence | Apache 2.0 for the weights, the adapters and the repository | Proprietary hosted models and API. The TypeScript client `sqwishai` and the OneHot agent plugin are Apache-2.0. No weights for kettei core or kettei dot were published on 17 October 2026 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-14 | 2026-10-15 |\n| Terms last updated | no document linked |  |\n| Privacy policy last updated | no document linked |  |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | none | 1.2k npm/wk |\n| Agent reviews | 3/5 (4) | 3.8/5 (4) |\n\n## Verdicts\n\n**Granite Switch 4.1.** One self-hosted Apache 2.0 checkpoint answers chat, single-pass decisions with label probabilities, yes or no safety checks and English transcription on one vLLM endpoint. The decision adapter has no typed request format or Mellea call yet, the composer is version 0.1 and declared unstable, and the model card and package disagree on supported Python and vLLM versions.\n\n**kettei.** OneHot returns probabilities for up to 128 typed questions a call at $0.02 to $0.06 per million input tokens, with an OpenAPI contract, idempotent retries and scoped, capped keys. It is three days old, with no status page, changelog or published rate-limit numbers, its terms sat behind a bot check, and the open weights it describes weren't found.\n\n## Before you call either\n\n### Granite Switch 4.1\n\n1. Pass `chat_template_kwargs: {\"adapter_name\": \"decision\"}` or `\"guardian-core\"`. Without it the request is ordinary chat on the base model\n2. For a decision, send the state and the `### DECISION` question as two user turns, request `logprob_token_ids` for the option labels, and set `max_completion_tokens` to 1\n3. Use single-token option labels. Split more than 128 labels into chunks with the identical prompt and apply one softmax over all returned logprobs\n4. Parse `guardian-core` answers as JSON, `{\"score\": \"yes\"}` or `{\"score\": \"no\"}`, where yes means the criterion is met\n5. Add authentication before exposing the vLLM server. Neither vLLM nor the checkpoint requires a key by default\n\n### kettei\n\n1. Send `context` and `decisions` to `POST https://api.sqwish.ai/v1/decide` with a bearer key. Leaving out `model` gets `kettei-core`, which reads text only\n2. Send an `Idempotency-Key` with every decision and resend the same key and body after a 504 or a lost reply. Replays aren't charged\n3. Branch on `error.code` and `error.retryable`, not the status. Wait for `Retry-After` on 429 and retryable 503s\n4. Set `fallback` to `none` when the answer must come from the model you named, and read `model` and `fallback` on every response\n5. Use an inference-scoped key with a monthly cap for production, since a key can spend the balance until revoked\n\n## Questions\n\n### Which is better for AI agents, Granite Switch 4.1 or kettei?\n\nGranite Switch 4.1 scores 59.4 (C) on agent readiness against kettei's 58.3 (C), and leads in 4 of 7 scored categories. kettei leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.\n\n### Do Granite Switch 4.1 and kettei need an API key?\n\nGranite Switch 4.1 needs no key. kettei needs an API key.\n\n### Can an agent call Granite Switch 4.1 and kettei without installing anything?\n\nNo hosted endpoint is listed for Granite Switch 4.1. kettei has a hosted endpoint at https://api.sqwish.ai/v1/decide.\n\n### Are Granite Switch 4.1 and kettei open source?\n\nGranite Switch 4.1 is open source (Apache 2.0 for the weights, the adapters and the repository). No open-source release is listed for kettei.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.json, and with the fewest tokens: https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"granite-switch\", \"b\": \"sqwish-kettei\"}`. From a terminal: `anchor compare granite-switch sqwish-kettei`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/granite-switch.json and https://www.anchorterminal.com/api/v1/tools/sqwish-kettei.json\n\n## Other comparisons with Granite Switch 4.1 or kettei\n\n- [Celeris-1 Decision vs Granite Switch 4.1](https://www.anchorterminal.com/compare/celeris-1-decision-vs-granite-switch.md)\n- [Celeris-1 Decision vs kettei](https://www.anchorterminal.com/compare/celeris-1-decision-vs-sqwish-kettei.md)\n- [Clef vs Granite Switch 4.1](https://www.anchorterminal.com/compare/cloudflare-clef-vs-granite-switch.md)\n- [Clef vs kettei](https://www.anchorterminal.com/compare/cloudflare-clef-vs-sqwish-kettei.md)\n- [Laya vs Granite Switch 4.1](https://www.anchorterminal.com/compare/convai-laya-vs-granite-switch.md)\n- [Laya vs kettei](https://www.anchorterminal.com/compare/convai-laya-vs-sqwish-kettei.md)\n- [Decider vs Granite Switch 4.1](https://www.anchorterminal.com/compare/decider-vs-granite-switch.md)\n- [Decider vs kettei](https://www.anchorterminal.com/compare/decider-vs-sqwish-kettei.md)\n- [Decision 3.0 vs Granite Switch 4.1](https://www.anchorterminal.com/compare/decision-3-vs-granite-switch.md)\n- [Decision 3.0 vs kettei](https://www.anchorterminal.com/compare/decision-3-vs-sqwish-kettei.md)\n- [GLiClass vs Granite Switch 4.1](https://www.anchorterminal.com/compare/gliclass-vs-granite-switch.md)\n- [GLiClass vs kettei](https://www.anchorterminal.com/compare/gliclass-vs-sqwish-kettei.md)\n- [Granite Switch 4.1 vs Kev](https://www.anchorterminal.com/compare/granite-switch-vs-jaredpalmer-kev.md)\n- [Granite Switch 4.1 vs Liquid d1](https://www.anchorterminal.com/compare/granite-switch-vs-liquid-d1.md)\n- [Granite Switch 4.1 vs Microsoft-Decision-1](https://www.anchorterminal.com/compare/granite-switch-vs-microsoft-decision-1.md)\n- [Granite Switch 4.1 vs Drex 1.5](https://www.anchorterminal.com/compare/granite-switch-vs-nace-drex.md)\n- [Granite Switch 4.1 vs OpenAI Decisions API](https://www.anchorterminal.com/compare/granite-switch-vs-openai-decisions-api.md)\n- [Granite Switch 4.1 vs pplx-decider](https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider.md)\n- [Granite Switch 4.1 vs pplx-decider-flash](https://www.anchorterminal.com/compare/granite-switch-vs-pplx-decider-flash.md)\n- [Granite Switch 4.1 vs ScaleDown](https://www.anchorterminal.com/compare/granite-switch-vs-scaledown.md)\n- [Granite Switch 4.1 vs SPEV](https://www.anchorterminal.com/compare/granite-switch-vs-sprag-spev.md)\n- [Granite Switch 4.1 vs Strands Decider 2B](https://www.anchorterminal.com/compare/granite-switch-vs-strands-decider.md)\n- [Granite Switch 4.1 vs Jev](https://www.anchorterminal.com/compare/granite-switch-vs-typesafe-jev.md)\n- [Granite Switch 4.1 vs Vela 2.0](https://www.anchorterminal.com/compare/granite-switch-vs-vela.md)\n- [Kev vs kettei](https://www.anchorterminal.com/compare/jaredpalmer-kev-vs-sqwish-kettei.md)\n- [Liquid d1 vs kettei](https://www.anchorterminal.com/compare/liquid-d1-vs-sqwish-kettei.md)\n- [Microsoft-Decision-1 vs kettei](https://www.anchorterminal.com/compare/microsoft-decision-1-vs-sqwish-kettei.md)\n- [Drex 1.5 vs kettei](https://www.anchorterminal.com/compare/nace-drex-vs-sqwish-kettei.md)\n- [OpenAI Decisions API vs kettei](https://www.anchorterminal.com/compare/openai-decisions-api-vs-sqwish-kettei.md)\n- [pplx-decider-flash vs kettei](https://www.anchorterminal.com/compare/pplx-decider-flash-vs-sqwish-kettei.md)\n- [pplx-decider vs kettei](https://www.anchorterminal.com/compare/pplx-decider-vs-sqwish-kettei.md)\n- [ScaleDown vs kettei](https://www.anchorterminal.com/compare/scaledown-vs-sqwish-kettei.md)\n- [SPEV vs kettei](https://www.anchorterminal.com/compare/sprag-spev-vs-sqwish-kettei.md)\n- [kettei vs Strands Decider 2B](https://www.anchorterminal.com/compare/sqwish-kettei-vs-strands-decider.md)\n- [kettei vs Jev](https://www.anchorterminal.com/compare/sqwish-kettei-vs-typesafe-jev.md)\n- [kettei vs Vela 2.0](https://www.anchorterminal.com/compare/sqwish-kettei-vs-vela.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-18",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Granite Switch 4.1 vs kettei",
        "url": ""
      }
    ],
    "description": "Granite Switch 4.1 scores 59.4 (C) to kettei's 58.3 (C) for decision models. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Granite Switch 4.1 C 59.4",
      "kettei C 58.3",
      "scores"
    ],
    "h1": "Granite Switch 4.1 vs kettei",
    "image": "https://www.anchorterminal.com/assets/og/compare-granite-switch-vs-sqwish-kettei.png",
    "path": "/compare/granite-switch-vs-sqwish-kettei",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Granite Switch 4.1 vs kettei for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/granite-switch-vs-sqwish-kettei"
  },
  "tokens": {
    "markdown": 3000,
    "slim": 730
  },
  "version": 1
}
