Skip to content
Dashboard

Devstral Small 2

Devstral Small 2 is a 24B agentic coding model with 68.0% on SWE-bench Verified, a context window of 256K tokens, and multimodal input support. Devstral Small 2 matches models up to five times its size on coding benchmarks.

View API reference
Input and output price
Input $0.10, Output $0.30, Per 1M tokens
24h uptime
Loading AI Gateway uptime
import { streamText } from 'ai'
const result = streamText({
model: 'mistral/devstral-small-2',
prompt: 'Why is the sky blue?'
})
Read docs

Copy link to headingPlayground

Try out Devstral Small 2 by Mistral. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.

mistral logo
mistral logo

Devstral Small 2

Copy link to headingProviders

Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.

Provider
Context
Max Output
Latency
Throughput
Input
Output
Cache
Web Search
Capabilities
ZDR
No Training
Free Tier
Release Date
256K256K0.3 s126 tps
$0.10/M
$0.30/M
12/09/2025

Copy link to headingUptime

Direct request success rate on AI Gateway and per-provider. Visit the docs for more info.

Copy link to headingThroughput

P50 throughput on live AI Gateway traffic, in tokens per second (TPS). Visit the docs for more info.

Copy link to headingLatency

P50 time to first token (TTFT) on live AI Gateway traffic, in milliseconds. View the docs for more info.

Getting started

Call Devstral Small 2 through AI Gateway with the AI SDK generateText and streamText functions, or through the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages APIs by changing the base URL. AI Gateway authenticates the request and routes it to an available provider.

Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the text generation quickstart.

index.ts
import { generateText } from 'ai';
import 'dotenv/config';
async function main() {
const result = await generateText({
model: 'mistral/devstral-small-2',
prompt: 'Why is the sky blue?',
});
console.log(result.text);
}
main().catch(console.error);

Top-level parameters

The same Devstral Small 2 request in each API format AI Gateway supports.

top-level-params.ts
import { generateText } from 'ai';
import 'dotenv/config';
async function main() {
const result = await generateText({
model: 'mistral/devstral-small-2',
system: 'You are a concise technical assistant.',
prompt: 'Summarize the tradeoffs between static generation and SSR.',
maxOutputTokens: 1024,
temperature: 0.5,
});
console.log(result.text);
}
main().catch(console.error);

Standard parameters like prompt, messages, temperature, and tools work as documented in the AI SDK docs. These are the parameters with model-specific behavior.

ParameterTypeRequiredDescription
modelstringYesModel ID in the form creator/model, e.g. mistral/devstral-small-2. AI Gateway routes the request to an available provider.
maxOutputTokensnumberNoHard cap on generated tokens. Devstral Small 2 supports up to 256,000 output tokens.
providerOptionsRecord<string, JSONValue>NoAI Gateway routing options under gateway, plus any provider-native options under the provider’s own namespace — see the table below.

Input limits

InputFormatsSourcesMax countMax sizeLimits
TextPrompt and response share the 256K-token context window
ImageURL, base64, Uint8ArraySent as image parts in messages; counts as input tokens

Provider options

Set AI Gateway routing options under providerOptions.gateway. For provider-specific options, pass them under the provider’s namespace as documented by the AI SDK.

Learn more in the AI SDK mistral provider docs.

provider-options.ts
import { generateText } from 'ai';
import 'dotenv/config';
async function main() {
const result = await generateText({
model: 'mistral/devstral-small-2',
prompt: 'Why is the sky blue?',
providerOptions: {
gateway: {
only: ['mistral'],
},
},
});
console.log(result.text);
}
main().catch(console.error);

These AI Gateway routing options apply to every model. Provider-specific options pass through under the provider’s own namespace (for example providerOptions.anthropic) exactly as documented by the AI SDK.

ParameterTypeRequiredDescription
providerOptions.gateway.onlystring[]NoRestrict routing to these provider slugs. Requests fail over only within the listed providers.
providerOptions.gateway.orderstring[]NoPreferred provider order. Listed providers are tried first; unlisted providers remain available as fallbacks.
providerOptions.gateway.sort'cost' | 'ttft' | 'tps'NoRank candidate providers by price, time to first token, or tokens per second instead of the default routing order.
providerOptions.gateway.zeroDataRetentionbooleanNoRoute only to providers with a zero-data-retention policy for this model.

Routing across providers

AI Gateway serves the same model through multiple providers and fails over automatically. order expresses a preference while keeping every provider eligible; only is a hard allowlist — if none of the listed providers are available the request fails instead of falling back.

Options under a provider's own namespace (for example providerOptions.anthropic) are forwarded to that provider with the request. Providers ignore option namespaces that don't apply to them, so it is safe to set provider options alongside gateway routing options.

Image input

Send images alongside text as message parts. Images count as input tokens.

image-input.ts
import { generateText } from 'ai';
import 'dotenv/config';
async function main() {
const result = await generateText({
model: 'mistral/devstral-small-2',
messages: [
{
role: 'user',
content: [
{ type: 'text', text: 'Describe this image.' },
{ type: 'image', image: 'https://example.com/photo.jpg' },
],
},
],
});
console.log(result.text);
}
main().catch(console.error);

Tool calling

Expose tools the model can call. Define each tool’s inputs with a Zod schema.

tool-calling.ts
import { generateText, tool } from 'ai';
import { z } from 'zod';
import 'dotenv/config';
async function main() {
const result = await generateText({
model: 'mistral/devstral-small-2',
prompt: 'What is the weather in San Francisco?',
tools: {
getWeather: tool({
description: 'Get the current weather for a location',
inputSchema: z.object({ location: z.string() }),
execute: async ({ location }) => ({ location, temperatureC: 18 }),
}),
},
});
console.log(result.text);
}
main().catch(console.error);

Copy link to headingMore models by Mistral

Model
Context
Latency
Throughput
Input
Output
Cache
Web Search
Capabilities
Providers
ZDR
No Training
Free Tier
Release Date
256K0.5 s70 tps
$0.50/M
$1.50/M
mistral logo
12/02/2025
256K0.3 s113 tps
$0.20/M
$0.20/M
mistral logo
12/02/2025
$0.15/M
mistral logo
05/28/2025
128K0.4 s179 tps
$0.10/M
$0.10/M
mistral logo
10/16/2024
32K0.4 s38 tps
$0.10/M
$0.30/M
mistral logo
09/17/2024
$0.10/M
mistral logo
12/11/2023

Copy link to headingAbout Devstral Small 2

Devstral Small 2 is Mistral's second-generation compact software engineering agent, introduced alongside Devstral 2 as the smaller tier of the family. At 24B parameters, it scores 68.0% on SWE-bench Verified, matching models up to five times its size.

The key additions over the original Devstral Small are a context window of 256K tokens (enabling full-repository context) and multimodal input support. Agents can now process images alongside code. This makes Devstral Small 2 useful for UI-debugging workflows where you correlate screenshots of broken interfaces with frontend code, or for reading architecture diagrams in documentation.

Devstral Small 2 is released under Apache 2.0.

Copy link to headingWhat To Consider When Choosing a Provider

  • Configuration: At 24B parameters, Devstral Small 2 reaches comparable SWE-bench performance to models 5x its size.
  • Zero Data Retention: Zero Data Retention is available for this model. It is offered on a per-provider and model basis. See the documentation for details.
  • Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.

Copy link to headingWhen to Use Devstral Small 2

Best for

  • Compact agentic coding: Tasks requiring a context window of 256K tokens at 24B parameters
  • Multimodal debugging workflows: Combining code and screenshots or diagrams
  • Apache 2.0 for commercial products: Teams that need an Apache 2.0 license for a coding model

Consider alternatives when

  • Higher SWE-bench scores: You need a stronger score (consider Devstral 2)
  • No image input needed: Devstral Small meets your accuracy bar
  • Reasoning-first problem solving: Tasks where deep reasoning matters more than agentic code execution (consider Magistral models)

Devstral Small 2 competes with systems five times its scale on real-world software engineering benchmarks. It adds a context window of 256K tokens and multimodal input over the first generation. Choose it when you need a compact agentic coding model under Apache 2.0.

Copy link to headingFrequently Asked Questions

  • What is Devstral Small 2's SWE-bench Verified score?

    68.0%, matching models up to 5x its parameter size.

  • Does Devstral Small 2 support image inputs?

    Yes. Multimodal input is one of the key additions over the original Devstral Small, enabling workflows that combine code and visual assets.

  • What is the context window for Devstral Small 2?

    256K tokens, the same as Devstral 2, which is a significant upgrade from the original Devstral Small.

  • What is the license for Devstral Small 2?

    Apache 2.0, permitting unrestricted commercial use.

  • How does Devstral Small 2 compare to Devstral 2?

    Devstral 2 (123B) achieves higher SWE-bench scores. Devstral Small 2 (24B) achieves 68.0% at a much smaller parameter count.

  • What is the API pricing for Devstral Small 2?

    This page lists the current rates. Multiple providers can serve Devstral Small 2, so AI Gateway surfaces live pricing rather than a single fixed figure.

Your use is subject to Mistral's Terms & Privacy Policies.