Skip to main content

Sakana AI Provider Guide

Sakana AI is a Tier-2 catalog provider: it is expressed as OpenAI-wire-compatible with no quirks block, so its entire integration is one JSON file (src/lib/providers/catalog/sakana-ai.json) rather than hand-written code. That file is the source of truth for the facts on this page.

Verification status: this entry is docs-verified only, not yet live-verified. The vendor's GET https://api.sakana.ai/v1/models needs a key (it answers HTTP 401 without one), so the model ids come from Sakana AI's public Models page and the roster has not been checked. No account was created and no API key was used to build it. evidence.liveMatrix is null until someone runs the live capability matrix with a real key (see Verification status below).


Key Facts​

  • Provider id: sakana-ai (alias sakana)
  • Protocol: OpenAI-compatible (/chat/completions). The Models page (console.sakana.ai/models) also lists Responses, Models and Anthropic-compatible Messages endpoints and says: "For generation requests, we strongly recommend using the Responses API, for better performance." This entry sends /chat/completions, which the same page documents with the line "Use /v1/chat/completions when you want the OpenAI Chat Completions API shape."
  • Base URL: https://api.sakana.ai/v1 (the Get Started page, console.sakana.ai/get-started, shows the OpenAI Python SDK with base_url = "https://api.sakana.ai/v1")
  • Default model: fugu
  • Models in catalog: 9, copied from the Supported models table on the Models page. The table's other two ids, fugu-cyber and fugu-cyber-v1.0, are left out of the catalog: the page says "In order to use Fugu Cyber, users must submit an access request form detailing their intended use case and providing verified contact information."
  • Streaming: supported — the Chat Completions field table lists stream ("Stream the response."), and the Sakana Namazu tab lists Streaming as "Supported"
  • Tool calling: model-dependent — the Chat Completions field tables list tools ("Tool definitions the model may call.") and tool_choice for Fugu, and tools ("Function tool definitions or built-in tools") for Sakana Namazu; not exercised with a key
  • Tools while streaming: not declared (false) — no page documents tools and streaming together
  • Structured output: supported — the Fugu Chat Completions table lists response_format ("Structured output with text, json_object, or json_schema."), and the Sakana Namazu tab lists "json_schema and json_object"
  • Structured output + tools together: not declared (false) — no combined probe was run without credentials
  • Embeddings: not declared
  • Thinking: declared — the Fugu Chat Completions table lists reasoning_effort with an effort value of high, xhigh or max, and the Sakana Namazu tab says "Sakana Namazu supports extended thinking". Neither was exercised through NeuroLink
  • Billing: catalog value no-free-tier. The Pricing page (console.sakana.ai/pricing) lists Pay as you go rates per model and three Subscription Plans (Standard $20/month, Pro $100/month, Max $200/month)
  • Key format: none declared. The Get Started page's Claude Code example writes the key as "fish_..." with the comment # your Sakana key; NeuroLink does not validate a prefix

Quick Start​

1. Get an API key​

  1. Visit: https://console.sakana.ai/overview and sign in - the page shows "Login with Google" and "Send login link"
  2. Create an API key - the Get Started page (https://console.sakana.ai/get-started) says: "Before using Fugu or Sakana Namazu, create an API key and copy the generated key. The key is shown only once, so store it somewhere secure before closing the dialog."
  3. Billing as the vendor states it: the Pricing page (https://console.sakana.ai/pricing) lists Pay as you go rates per model and Subscription Plans (Standard $20/month, Pro $100/month, Max $200/month); the Get Started page says Sakana Namazu "is billed purely on a pay-as-you-go (per-token) basis."
  4. Set SAKANA_AI_API_KEY in your .env file (SAKANA_API_KEY, which the Get Started page's curl example reads, is accepted as a fallback; the Models page's Python example reads FUGU_API_KEY and FUGU_BASE_URL, which NeuroLink does not)

2. Configure​

export SAKANA_AI_API_KEY=your-api-key
export SAKANA_AI_MODEL=fugu # optional — overrides the default model
export SAKANA_AI_BASE_URL=https://api.sakana.ai/v1 # optional — proxy or self-hosted gateway

3. Use it​

import { NeuroLink } from "@juspay/neurolink";

const neurolink = new NeuroLink();

const result = await neurolink.generate({
input: { text: "Explain context windows in one paragraph." },
provider: "sakana-ai",
model: "fugu",
});

console.log(result.content);
# CLI
npx @juspay/neurolink generate "Hello" --provider sakana-ai

Per-request credentials work as they do for other providers:

await neurolink.generate({
input: { text: "Hello" },
provider: "sakana-ai",
credentials: { sakanaAi: { apiKey: process.env.SAKANA_AI_API_KEY } },
});

Models​

ModelContextVision$/M in · out (cached)Notes
fugu ⭐1Myesnot recordedNeuroLink default. Models page: "The default Fugu model." Fugu overview: "the ideal default for everyday work."
fugu-ultra1Myes$5 / $30 ($0.50)Models page: "The Fugu Ultra model, defaults to fugu-ultra-v2.0." Priced as fugu-ultra-v2.0.
fugu-ultra-v2.01Myes$5 / $30 ($0.50)Models page: "V2.0 of Fugu Ultra." Pricing page: "Fixed pricing for fugu-ultra-v2.0 per 1M tokens."
fugu-ultra-v1.11Myesnot recordedModels page: "V1.1 of Fugu Ultra."
fugu-ultra-v1.01Myesnot recordedModels page: "V1.0 of Fugu Ultra, also known as fugu-ultra-20260615."
fugu-max1Myes$2 / $6 ($0.25)Models page: "The Fugu Max model, defaults to fugu-max-v1.0." Priced as fugu-max-v1.0.
fugu-max-v1.01Myes$2 / $6 ($0.25)Models page: "V1.0 of Fugu Max, optimized for cost-performance." Pricing page: "regardless of context length."
sakana-namazu256Kyes$0.95 / $4.00 ($0.15)Models page: "Alias that points to the latest version (currently sakana-namazu-v1.0)."
sakana-namazu-v1.0256Kyes$0.95 / $4.00 ($0.15)Models page: "V1.0 of the Sakana Namazu model. A Japanese-specialized LLM."

Sources. Model ids come from the Supported models table on console.sakana.ai/models (retrieved 2026-09-29); the Sakana Namazu property table is on the tab at console.sakana.ai/models?model=sakana-namazu. Prices come from console.sakana.ai/pricing: fugu-ultra-v2.0 Standard price column $5 input, $30 output, $0.50 cached input (the Context > 272K column reads $10, $45 and $1.00), fugu-max-v1.0 $2 input, $6 output, $0.25 cached input, and sakana-namazu-v1.0 $0.95 input, $4.00 output, $0.15 cached input. The Pricing page's Fugu table says, for one agent, "You pay only the standard rate for the specific underlying model." and, for multiple agents, "We never stack model fees. You are charged a single rate based on the top tier model involved." No price is recorded for fugu, fugu-ultra-v1.1 or fugu-ultra-v1.0.

Context and vision. The Get Started page's Codex model catalog snippet lists context_window 1000000 and input_modalities text and image for the slugs fugu, fugu-ultra (display name "Fugu Ultra v2.0"), fugu-max, fugu-ultra-v1.1 and fugu-ultra-v1.0. fugu-ultra-v2.0 and fugu-max-v1.0 take the same values as the slugs that the Models page says default to them. The Sakana Namazu tab lists Context window "256K tokens" (stored as 256000) and Image input "Supported (URL and base64)".

models.defaultContextWindow (128,000) and models.defaultMaxOutputTokens (8,192) are conservative placeholders the vendor does not publish.

Fallback order when the default is unavailable: fugu-ultra → fugu-max → sakana-namazu. The runtime fallback model name the loader derives (fallbacks[1]) is fugu-max.


Verification status​

Tier-2 onboarding requires evidence before a provider is accepted, and pnpm run verify:provider-onboarding gates it in CI. This is what the catalog currently records for Sakana AI — docs-verified only, not yet live-verified:

ProbeResult
Rosterunauthenticated GET https://api.sakana.ai/v1/models answers HTTP 401 without a key, 2026-09-29 — model ids are taken from https://console.sakana.ai/models; the roster has not been checked
Auth-failure shapeunauthenticated GET /v1/models returned HTTP 401 with JSON body {"error":{"message":"Missing API key","type":"authentication_error","param":null,"code":null}}, 2026-09-29; errorRules holds one rule, for status 401, and evidence.authProbe.code records the body's error.type because error.code is null. An unauthenticated GET /v1/chat/completions answered HTTP 405
Billingthe Pricing page lists Pay as you go rates and Subscription Plans at $20/month, $100/month and $200/month; the Get Started page says Sakana Namazu "is billed purely on a pay-as-you-go (per-token) basis", 2026-09-29 — no sign-up performed
Tools / structured outputdocumented in the Chat Completions field tables on the Models page; neither was exercised live, and no combined tools+schema request was sent — structuredOutputWithTools stays false
Live capability sweepnot run. evidence.liveMatrix is null. Before treating this provider as production-ready, run npx tsx test/continuous-test-suite-provider-matrix.ts --provider=sakana-ai with a real key and record the result.

Do not treat this entry as equivalent to a live-verified Tier-2 provider (e.g. FriendliAI, Novita AI) until that live matrix has been run and evidence.liveMatrix is filled in.


Troubleshooting​

Each row below is a statement from a Sakana AI page or the observed response body; NeuroLink has not exercised them with a key.

SymptomWhat the vendor page or response saysSource
HTTP 401 with error.message "Missing API key"Body returned by an unauthenticated GET https://api.sakana.ai/v1/models on 2026-09-29; the Get Started page's curl example sends the header Authorization: Bearer $SAKANA_API_KEYapi.sakana.ai response; Get Started page
Client-side timeouts with fugu-ultra"For complex tasks, especially when using fugu-ultra and fugu-cyber, you may need to increase client-side timeouts."Get Started page
sakana-namazu requests and a subscription"Sakana Namazu is not included in subscription plans — it is billed purely on a pay-as-you-go (per-token) basis."Get Started page
A fugu-cyber id is needed"In order to use Fugu Cyber, users must submit an access request form detailing their intended use case and providing verified contact information."Models page
Sampling fields have no effectThe Fugu Chat Completions table lists temperature, top_p, stop, seed, frequency_penalty and presence_penalty as "Accepted but ignored."Models page

See also​