Claude Opus 5.5 est disponible sur SeedRouter
LogoSeedRouter

Rechercher un modèle par nom, ex. « nano banana »

Rechercher un modèle par nom, ex. « nano banana »

Text

Claude Haiku 5.5

View Markdown

Référence Messages de Claude Haiku 5.5 : paramètres, réflexion, outils forcés, utilisation du cache, fonctions bêta, streaming et traitement des réponses.

Utilisez claude-haiku-5-5 avec POST https://api.seedrouter.ai/v1/messages. Le modèle accepte du texte, des images et des documents et renvoie du texte ou des demandes d’outils. La page du modèle affiche les tarifs actuels des tokens.

La spécification ci-dessous suit la documentation propre au modèle d’Anthropic, vérifiée le 9 octobre 2026. Les limites officielles des fonctionnalités et la vérification de bout en bout sont distinctes : l’acceptation d’un champ ne prouve pas que l’effet attendu s’est produit. Consultez les résultats de compatibilité ci-dessous avant d’utiliser les options avancées.

Démarrage rapide

curl https://api.seedrouter.ai/v1/messages \
  -H "x-api-key: $SEEDROUTER_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-5-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Classify this request as billing, technical or account: I was charged twice. Return only the label."}]
  }'
import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai",
)
message = client.messages.create(
    model="claude-haiku-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Summarize the purpose of a database index."}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env.SEEDROUTER_API_KEY,
  baseURL: 'https://api.seedrouter.ai',
});
const message = await client.messages.create({
  model: 'claude-haiku-5-5',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Summarize the purpose of a database index.' }],
});
for (const block of message.content) {
  if (block.type === 'text') console.log(block.text);
}

Gardez votre clé API sur le serveur. Sélectionnez les blocs de réponse selon leur type ; une réponse peut commencer par de la réflexion ou un appel d’outil.

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "os"
    "time"
)

func main() {
    body, err := json.Marshal(map[string]any{
        "model": "claude-haiku-5-5",
        "max_tokens": 1024,
        "messages": []map[string]string{
            {"role": "user", "content": "Summarize the purpose of a database index."},
        },
    })
    if err != nil { panic(err) }
    req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/messages", bytes.NewReader(body))
    if err != nil { panic(err) }
    req.Header.Set("x-api-key", os.Getenv("SEEDROUTER_API_KEY"))
    req.Header.Set("anthropic-version", "2023-06-01")
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{Timeout: 2 * time.Minute}
    res, err := client.Do(req)
    if err != nil { panic(err) }
    defer res.Body.Close()
    data, err := io.ReadAll(res.Body)
    if err != nil { panic(err) }
    if res.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
    fmt.Println(string(data))
}

Paramètres de requête

La spécification native compte 25 champs de premier niveau. Facultatif ne signifie pas nullable : seules les lignes mentionnant explicitement null l’acceptent. Les champs inconnus et les champs d’échantillonnage non pris en charge sont supprimés avant transmission, conformément à la politique des paramètres des modèles de texte. Les valeurs invalides des champs pris en charge renvoient un invalid_request_error avant la génération.

ChampRequisSpécification
modelOuiclaude-haiku-5-5.
max_tokensOuiEntier 0–128000, réflexion comprise. Pas de valeur par défaut dans l’API. Le Playground commence à 8192.
messagesOui1–100000 messages avec un rôle et une chaîne ou un tableau de blocs de contenu. Voir les règles de conversation ci-dessous.
systemNonChaîne ou tableau de blocs de texte. Pas null.
thinkingNonadaptive par défaut, ou disabled. Pas de budget manuel ni de mode between_tools.
output_configNonObjet avec effort, format et le champ bêta facultatif task_budget.
stop_sequencesNonTableau de chaînes d’arrêt.
streamNonBooléen ; false par défaut.
temperatureNonÀ omettre. Supprimé ici ; la valeur officielle de compatibilité est 1.
top_pNonÀ omettre. Supprimé ici ; la valeur officielle de compatibilité est 0.99.
top_kNonNon pris en charge et supprimé.
toolsNonTableau d’outils clients ou de déclarations officielles d’outils serveur.
tool_choiceNonauto, none, any ou tool nommé. Les outils forcés sont pris en charge.
metadataNonObjet ; le user_id facultatif est une chaîne d’au plus 512 caractères ou null.
cache_controlNonNull ou {"type":"ephemeral","ttl":"5m"} ; TTL accepte aussi 1h. Le TTL par défaut est 5m.
containerNonNull, identifiant de conteneur sous forme de chaîne ou objet avec un identifiant facultatif et jusqu’à 20 skills.
context_managementNonNull ou objet contenant des modifications officielles du contexte ; les en-têtes bêta s’appliquent.
mcp_serversNonTableau d’au plus 20 serveurs URL ; nécessite un en-tête bêta MCP correspondant.
service_tierNonauto ou standard_only. Haiku ne dispose pas de capacité Priority Tier.
inference_geoNonglobal, us ou null. L’omission utilise la valeur par défaut du compte ; examinez l’utilisation déclarée avant de supposer une région.
diagnosticsNonNull ou objet ; previous_message_id est null ou une chaîne d’au plus 256 caractères.
compactionNonNull ou {"type":"summarize","instructions":"..."}. Les instructions sont facultatives, nullable et limitées à 16384 caractères.
fallbacksNonNull ou default avec la bêta correspondante. Haiku n’a pas de modèles de repli automatique ; les listes explicites sont invalides.
fallback_credit_tokenNonNull, chaîne de token ou {token,mode}. L’API doit vérifier l’éligibilité et la validité ; ne supposez pas que tout modèle constitue une cible éligible.
speedNonstandard ou null. Le mode rapide n’est pas pris en charge.

Le Playground fournit des contrôles pour les champs pris en charge, dont des contrôles JSON pour les structures imbriquées. Les paramètres d’échantillonnage et la vitesse standard fixe sont omis du formulaire. L’identifiant du modèle est fixé pour cette page. Examinez le corps soumis dans l’aperçu JSON de la requête.

Réflexion et effort

Par défaut, la réflexion est adaptative avec un effort medium et le texte de réflexion est omis. Effort accepte low, medium, high, xhigh, max ou null pour utiliser la valeur par défaut.

{
  "thinking": {"type": "adaptive", "display": "summarized"},
  "output_config": {"effort": "medium"}
}

Pour désactiver la réflexion, utilisez {"type":"disabled"} avec un effort low, medium ou high. N’incluez ni display ni block_binding en mode disabled. enabled, budget_tokens, between_tools et la réflexion désactivée avec xhigh/max sont invalides.

En mode adaptatif, display accepte omitted, summarized ou null. La valeur bêta générique updates nécessite thinking-display-updates-2026-08-18 ; Anthropic ne confirme actuellement pas de mises à jour de progression lisibles pour Haiku. Ne dépendez donc pas de cette sortie.

Le champ facultatif thinking.block_binding nécessite thinking-binding-controls-2026-08-01. Il est null ou un objet dont prefix_mismatch_behavior vaut error, drop_block ou null. Gardez les tours précédents et les blocs de réflexion complets inchangés lors du renvoi de l’historique. Les signatures de réflexion sont liées au compte qui les a produites ou à un compte qui lui est associé.

output_config.task_budget est null ou { "type": "tokens", "total": 20000 }, avec remaining facultatif de type entier/null. Il nécessite task-budgets-2026-03-13 ; total doit être au moins 20000. Aucune plage supplémentaire pour remaining n’est imposée ici.

Outils et sortie structurée

Les outils clients nécessitent un nom de 1–128 lettres, chiffres, traits de soulignement ou traits d’union et un input_schema avec type: "object". Utilisez tool_choice: {"type":"any"} ou {"type":"tool","name":"lookup"} pour forcer un outil déclaré. Avec la réflexion adaptative, une réponse avec outil forcé commence par l’appel d’outil, sans bloc de réflexion.

disable_parallel_tool_use est un booléen facultatif pour les choix auto, any et tool ; ce n’est pas un champ de none. Renvoyez le résultat de l’outil avec le tool_use_id d’origine. Le Playground affiche les appels mais n’exécute pas vos outils clients.

{
  "tools": [{
    "name": "lookup",
    "description": "Look up a product by SKU.",
    "input_schema": {
      "type": "object",
      "properties": {"sku": {"type": "string"}},
      "required": ["sku"],
      "additionalProperties": false
    }
  }],
  "tool_choice": {"type": "tool", "name": "lookup"}
}

Les réponses structurées utilisent output_config.format: {"type":"json_schema","schema":{...}}. Respectez le sous-ensemble JSON Schema pris en charge par Anthropic, dont additionalProperties: false sur les objets. Une structure valide ne garantit pas des valeurs factuellement correctes. Les outils stricts et les sorties structurées ont des limites portant sur l’ensemble du schéma ; consultez la référence officielle des sorties structurées.

L’utilisation de l’ordinateur nécessite computer_toolset_20260801 ; les anciennes versions de cet outil sont invalides. L’utilisation du navigateur a son propre browser_toolset_20260801. Déclarer un outil ne vérifie pas qu’une session complète d’outil serveur fonctionne. Consultez son guide officiel et les prérequis bêta éventuels avant de l’utiliser.

Conversations et gestion du contexte

Le préremplissage ordinaire de l’assistant n’est pas pris en charge. La reprise d’un outil serveur en pause est différente : renvoyez les blocs complets de l’assistant selon le protocole Messages.

Un message système contenant du contenu peut apparaître après un message utilisateur ou le résultat d’un outil serveur en pause. Il doit être suivi d’un message de l’assistant ou être le dernier message. Les messages système consécutifs sont évalués comme un seul groupe. N’en insérez pas entre un appel d’outil client et son résultat requis.

Un message système au contenu vide ne peut modifier que output_config.effort avec mid-conversation-output-config-2026-07-01. Il peut apparaître n’importe où. Lorsque la réflexion est désactivée, il ne peut pas modifier l’effort effectif. Le clear_at système accepte never, next_user_message ou null avec mid-conversation-system-clear-at-2026-08-21 ; les messages limités à un tour n’autorisent que du texte, sans configuration de sortie ni mise en cache de blocs.

Les modifications du contexte comprennent :

ModificationBêtaPrincipales contraintes
clear_tool_uses_20250919context-management-2025-06-27Nombre déclencheur d’au moins 1 ; nombre conservé d’au moins 0.
clear_thinking_20251015context-management-2025-06-27Conserver tout ou au moins un tour de réflexion. Placer avant la suppression des appels d’outils lors de la combinaison de modifications.
compact_20260112compact-2026-01-12Seuil déclencheur de tokens d’entrée d’au moins 50000 ; 150000 par défaut.

Le compaction à la demande nécessite compact-2026-09-04. Il ne peut pas être combiné avec context_management, stop_sequences, un format de sortie, des outils forcés ou task_budget.remaining. Un bloc de compactage signé ne peut pas non plus être combiné avec task_budget.remaining ou le compactage à seuil. Conservez le bloc retourné et sa signature lors de la continuation.

Images, PDF et taille des requêtes

Les images acceptent JPEG, PNG, GIF et WebP par URL, base64 ou référence de fichier. Les PDF acceptent URL, base64 ou référence de fichier. Les références de fichiers nécessitent la bêta Files API appropriée et un accès valide au fichier. Les documents textuels peuvent utiliser des sources de texte ou de contenu.

La limite native des requêtes est de 32 MB. Les limites officielles des images sont de 600 images au maximum, de 10 MB de données encodées en base64 par image et de 8000 pixels sur chaque côté ; les requêtes contenant beaucoup d’images peuvent avoir des limites propres à la plateforme plus strictes. Les PDF doivent être non chiffrés et compter au plus 600 pages pour la taille de contexte de ce modèle. L’API reste responsable de l’examen des fichiers distants ; les contrôles locaux de structure ne peuvent pas prouver le contenu d’une URL.

Le Playground téléverse les pièces jointes avant de soumettre les URL. Le JSON de conversation prend également en charge les blocs natifs de contenu multimédia. Les tests des limites complètes de taille des médias et de fenêtre de contexte sont distincts d’une petite requête d’exemple.

Mise en cache des prompts et facturation

La longueur minimale d’un prompt pouvant être mis en cache pour Haiku est de 512 tokens. Les prompts marqués plus courts peuvent s’exécuter sans créer d’entrée de cache. Utilisez au plus quatre points de rupture du cache ; le contrôle automatique du cache de premier niveau occupe un emplacement. Placez les préfixes à durée de vie longue avant ceux à durée de vie plus courte.

max_tokens: 0 demande un préchauffage du cache sans génération de réponse. Il ne peut pas accompagner stream: true, une sortie structurée ou l’utilisation forcée d’un outil. Gardez les paramètres de réflexion et d’effort cohérents entre la préparation du cache et les requêtes qui le réutilisent.

Lisez usage.input_tokens, output_tokens, cache_creation_input_tokens, cache_read_input_tokens et la ventilation 5m/1h sous cache_creation. La réflexion est incluse dans les tokens de sortie ; une ventilation des tokens de réflexion déclarée n’est pas un supplément à ajouter. Les tarifs actuels figurent dans la section tarifs, avec des explications complémentaires dans le guide des tarifs.

Réponses, streaming et erreurs

Une réponse terminée contient id, type: "message", role: "assistant", model, content, stop_reason, stop_sequence et usage. Les champs facultatifs container, diagnostics, context_management, stop_details et input_transformations sont conservés lorsqu’ils sont retournés.

Gérez end_turn, max_tokens, stop_sequence, tool_use, pause_turn, compaction, refusal et model_context_window_exceeded. Un arrêt dû à une limite ou un refus n’équivaut pas à une erreur HTTP. Ne considérez jamais que le premier bloc de contenu contient forcément du texte.

Le streaming utilise les événements SSE de Messages : message_start, content_block_start, content_block_delta, content_block_stop, message_delta et message_stop. Gérez aussi les événements ping et error. Conservez les signatures de réflexion et les blocs d’outils nécessaires aux tours suivants.

Les erreurs utilisent le format Anthropic :

{"type":"error","error":{"type":"invalid_request_error","message":"max_tokens must be an integer from 0 to 128000."}}

Les requêtes qui renvoient une erreur ne sont pas facturées. Consultez la gestion des erreurs pour les types d’erreurs communs.

Formats compatibles avec OpenAI

Le même identifiant est disponible avec /v1/chat/completions et /v1/responses. Utilisez leurs champs natifs : Chat utilise messages ; Responses utilise input. Les options natives de Claude appartiennent à Messages et ne doivent pas être copiées intégralement dans un corps au format OpenAI.

curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-haiku-5-5","max_tokens":256,"messages":[{"role":"user","content":"Reply with OK."}]}'
curl https://api.seedrouter.ai/v1/responses \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-haiku-5-5","max_output_tokens":256,"input":"Reply with OK."}'

Résultats de compatibilité

Vérifications effectuées le 9 octobre 2026 dans l’environnement de développement. Elles établissent le comportement observé de requêtes précises, pas toutes les limites officielles ni un déploiement en production.

FonctionnalitéRésultat observé
Messages natifs et SSERéponse textuelle et séquence complète d’événements vérifiées.
ClassificationBilling retourné ; 41 tokens d’entrée et 5 de sortie.
JSON structuré et outils clientsValeurs JSON, sélection auto/none/nommée/any, arguments d’outils stricts et continuation après résultat d’outil vérifiés.
Images et PDFCouleur d’image et marqueur PDF attendus retournés à partir de données de test base64. Les limites complètes des médias n’ont pas été testées.
Préchauffage du cachemax_tokens: 0 n’a renvoyé aucun texte généré et aucun token de sortie.
Mise en cache de cinq minutes et d’une heureCréation et lectures ultérieures du cache vérifiées pour les deux TTL.
Séquences d’arrêtMotif d’arrêt demandé retourné et arrêt avant le suffixe exclu.
Réflexion et effortLes cinq valeurs d’effort ont été acceptées. Certaines requêtes désactivant explicitement la réflexion ont encore renvoyé des blocs de réflexion. L’acceptation seule ne vérifie pas le comportement de l’effort.
Instructions système et effort par messageRésultats incohérents ; un test par message avec un budget supérieur a encore renvoyé du texte sans rapport. Testez votre conversation exacte avant le déploiement.
Compactage à la demandeBloc de compactage signé et stop_reason: compaction retournés. Le renvoi complet et la validation de la facturation restent à effectuer.
Métadonnées et géographie d’inférencemetadata.user_id a renvoyé une erreur d’autorisation ; une géographie explicite a renvoyé une restriction liée au type de compte.
MCPLa bêta MCP actuelle a renvoyé une restriction d’identifiants d’accès. Une session MCP complète n’a pas été vérifiée.
OpenAI Chat et ResponsesLes requêtes simples et celles avec raisonnement explicite max/none ont renvoyé la réponse attendue. La sémantique du raisonnement n’a pas été établie indépendamment.
Autres champs bêtaBudget de tâche, contrôles de liaison et repli default acceptés ; la sémantique complète des fonctionnalités n’a pas été établie.

La facturation de l’écriture du cache d’une heure et du compactage n’a pas passé la validation de mise en service. Les exécutions avec contexte/sortie maximaux, les outils hébergés avec frais séparés, l’accès Files API et l’utilisation des crédits de repli n’ont pas été testés. Conservez les structures officielles des requêtes ; ne déduisez pas la prise en charge d’un simple statut de succès.

Références