← Blog

Codestral 22B free API — what to use now that it's unavailable

Codestral 22B is no longer served on the free NVIDIA NIM tier. Here are the free, code-specialized models verified working right now, with copy-pasteable OpenAI-compatible snippets.

InferAll Team

2 min read
CodestralMistral AIfree code generation APINVIDIA NIMOpenAI APIopen sourcecoding model

Update (2026-07-24): mistralai/codestral-22b-instruct-v0.1 is no longer available on the free NVIDIA NIM tier — calls to it now return a 404 upstream. We found this by probing every model in our catalog with a real inference call rather than trusting a status dashboard, and we'd rather say so plainly than leave a code sample here that fails for you.

Below are the free, code-capable models that we verified are actually serving today — each was called successfully before this post was updated. All are $0 input / $0 output within the free-plan daily request limits.


The free coding models that work right now

Model id Good for
poolside/laguna-xs-2.1 Code-specialised, the closest Codestral replacement
deepseek-ai/deepseek-v4-flash-0731 Fast, low latency
mistralai/mistral-nemotron Mistral family, general purpose
nvidia/nemotron-3-super-120b-a12b Strong general purpose

The closest drop-in for what Codestral did, code-specialised and fast, is poolside/laguna-xs-2.1.

Call it with the OpenAI SDK

from openai import OpenAI

client = OpenAI(
    base_url="https://api.inferall.ai/v1",
    api_key="ifu_your_key_here",  # get one at inferall.ai/keys — no card required
)

response = client.chat.completions.create(
    model="poolside/laguna-xs-2.1",
    messages=[{
        "role": "user",
        "content": "Write a Python function that validates email addresses using regex."
    }],
    max_tokens=512,
)

print(response.choices[0].message.content)

TypeScript is the same shape:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.inferall.ai/v1",
  apiKey: process.env.INFERALL_API_KEY,
});

const r = await client.chat.completions.create({
  model: "deepseek-ai/deepseek-v4-flash-0731",
  messages: [{ role: "user", content: "Refactor this function and explain the change." }],
});

Or curl:

curl https://api.inferall.ai/v1/chat/completions \
  -H "Authorization: Bearer $INFERALL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "poolside/laguna-xs-2.1",
    "messages": [{"role": "user", "content": "Explain this stack trace."}]
  }'

Get an ifu_... key at inferall.ai/keys — no card needed to start.

Check for yourself which models are live

Upstream availability changes without notice — which is exactly how the Codestral sample here went stale. You can list what's currently offered at any time:

npx @inferall/cli models --free

And confirm a specific model actually answers before you build on it:

npx @inferall/cli chat --model poolside/laguna-xs-2.1 "say hi"

Why the honesty matters: a code sample that 404s wastes your afternoon. We publish model ids we've verified, and when one dies we update the post rather than letting it rank forever on a promise it can't keep.