API Hop

Documentation

Documentation API Hop

Chat Completions commun

API de chat unifiée pour changer de modèle textuel avec le paramètre `model`. Le format de requête est compatible avec OpenAI Chat Completions.

POSThttps://api.apihop.ai/v1/chat-completions

API de chat unifiée pour changer de modèle textuel avec le paramètre model. Le format de requête est compatible avec OpenAI Chat Completions.

Claude Sonnet 4.6 (claude-sonnet-4-6) est pris en charge par le fournisseur amont, mais n’est actuellement pas publié sur RequestBeam. Il ne constitue pas un modèle d’intégration par défaut actif. Avant tout appel, confirmez votre accès avec votre propre réponse de GET https://api.apihop.ai/v1/models.

Cet endpoint renvoie par défaut une réponse JSON complète. Définissez explicitement stream: true pour obtenir le streaming SSE.

text
POST https://api.apihop.ai/v1/chat-completions

Authentification

Toutes les requêtes nécessitent une authentification par jeton Bearer.

http
Authorization: Bearer YOUR_API_KEY

Si l’authentification échoue, vérifiez :

  • Que la clé API est correcte
  • Que la clé est valide pour cette URL de base API
  • Que l’en-tête de requête est correctement orthographié
  • Qu’un proxy ne réécrit pas l’en-tête d’autorisation

Corps

modelstringobligatoirePar défaut: gpt-5.4

ID des modèles textuels documentés (confirmez l’accès avec GET https://api.apihop.ai/v1/models) :

  • OpenAI: gpt-5.4, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-6-astra
  • Anthropic: claude-fable-5, claude-fable-5-1, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5, claude-sonnet-5, claude-sonnet-5-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro, deepseek-v4.1-flash

(V4.1 Flash est un ID distinct, disponible uniquement après déploiement et activation ; consultez GET https://api.apihop.ai/v1/models).

  • Gemini: gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-4-argon (après déploiement et activation)
  • Kimi: kimi-k3
  • MiniMax: minimax-m3

Consultez le Catalogue de modèles pour la liste complète et les modèles visibles par la clé actuelle. Utilisez votre propre réponse de GET https://api.apihop.ai/v1/models comme source de disponibilité actuelle. Consultez les guides DeepSeek, Gemini, Kimi et MiniMax pour les conseils de sélection et exemples propres à chaque famille.

messagesobject[]obligatoire

Messages du chat. Chaque message doit inclure :

  • role : system, user ou assistant
  • content : contenu du message

Exemple :

json
  [
    {"role": "system", "content": "You are a helpful Python tutor."},
    {"role": "user", "content": "How should I learn programming?"}
  ]

Limites d’échantillonnage propres au modèle : gpt-6-astra n’accepte pas les anciens champs temperature, top_p ou top_logprobs ; omettez-les même si un ancien client les inclut. Le Playground GPT-6 Astra de RequestBeam masque aussi les anciens contrôles d’échantillonnage et de pénalités. claude-sonnet-5 a rejeté top_p lors d’une vérification d’intégration documentée ; omettez-le aussi pour ce modèle. Transmettre un champ optionnel via un proxy ne prouve pas sa prise en charge par le modèle du fournisseur.

temperaturenumberPar défaut: 1.0

Température d’échantillonnage. Les clients compatibles OpenAI utilisent souvent de 0 à 2, mais le modèle choisi décide de la validation finale.

max_tokensinteger

Nombre maximal facultatif de tokens de sortie, sous forme d’entier positif. Omettez ce champ pour utiliser la valeur par défaut du fournisseur pour le modèle choisi ; les valeurs par défaut et limites maximales varient selon le modèle et la configuration amont.

Selon le modèle, le budget peut inclure les tokens de raisonnement et le texte final. Un petit budget peut provoquer finish_reason: "length", tronquer la réponse ou être épuisé avant le texte final. L’augmenter peut accroître le coût.

max_completion_tokensinteger

Alternative de compatibilité facultative à max_tokens, avec les mêmes considérations de budget. Un modèle peut n’accepter qu’un de ces champs ; commencez donc avec un corps minimal lors d’un changement de modèle. Omettez les deux pour utiliser la valeur par défaut du fournisseur.

streambooleanPar défaut: false

Indique si la réponse doit être diffusée en streaming.

  • true : renvoie des événements envoyés par le serveur (SSE)
  • false : renvoie une réponse complète
top_pnumberPar défaut: 1.0

Paramètre d’échantillonnage par noyau. Les clients compatibles OpenAI utilisent souvent de 0 à 1 ; le modèle choisi effectue la validation finale.

frequency_penaltynumberPar défaut: 0

Pénalité de fréquence. Les clients compatibles OpenAI utilisent souvent de -2.0 à 2.0 ; le modèle choisi effectue la validation finale.

presence_penaltynumberPar défaut: 0

Pénalité de présence. Les clients compatibles OpenAI utilisent souvent de -2.0 à 2.0 ; le modèle choisi effectue la validation finale.

stopstring | array

Séquence d’arrêt ou tableau de séquences d’arrêt. Le modèle choisi détermine le nombre accepté et le comportement.

nintegerPar défaut: 1

Nombre de réponses à générer. Utilisez un nombre comme 1, pas une chaîne entre guillemets.

Différences de paramètres entre modèles

Les modèles textuels actuels acceptent les requêtes de chat minimales avec et sans streaming, mais l’acceptation et les effets des paramètres optionnels varient selon le modèle et son implémentation de compatibilité.

La dernière vérification du 2026-09-26 a accepté claude-fable-5 avec temperature: 0 et renvoyé du texte. Elle a rejeté claude-sonnet-5 avec top_p: 0.9, avec HTTP 400 et top_p is deprecated. Omettez top_p pour ce modèle. L’acceptation ne démontre ni effet sur l’échantillonnage ni garantie pour d’autres modèles ou requêtes ultérieures ; ne supposez pas que tous les paramètres d’échantillonnage sont pris en charge.

Les contrôles OpenAI du 2026-09-26 ont accepté stop pour gpt-5.6-sol et gpt-5.6-terra. L’acceptation peut évoluer avec le fournisseur et ne prouve pas qu’une séquence d’arrêt est effective.

Le transfert natif de chat compatible OpenAI conserve top_p et stop dans la requête au fournisseur. Une route convertissant Chat en Responses conserve top_p mais ne transmet pas stop. Transmettre un champ ne prouve ni sa prise en charge amont ni son effet ; aucun des deux ne bénéficie d’une garantie globale sur toutes les routes.

Commencez par une requête minimale lors d’un changement de modèle, puis vérifiez séparément l’échantillonnage, les séquences d’arrêt et les paramètres avancés d’outils. Pour les séquences d’arrêt, examinez le texte réel et le motif de fin, pas seulement le statut HTTP. HTTP 200 ne prouve pas un effet d’échantillonnage. Les budgets de sortie doivent couvrir le raisonnement et le texte final.

Exemple de requête

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Réponse

idstring

Identifiant unique de la réponse.

objectstring

Type d’objet, généralement chat.completion ou chat.completion.chunk pour le streaming.

createdinteger

Horodatage Unix de création.

modelstring

Identifiant du modèle renvoyé dans la réponse.

choicesarray

Choix générés, comprenant contenu du message, index et motif de fin.

usageobject

Statistiques d’utilisation des tokens.

Exemple réussi

json
{
  "id": "chatcmpl-9876543210",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "I am an AI assistant that can help with writing, coding, and analysis."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 42,
    "total_tokens": 70
  }
}

Réponse d’erreur

Consultez Codes d’erreur et dépannage pour la référence complète des codes, les différences de protocole et les étapes de diagnostic.

Les erreurs HTTP de Chat Completions utilisent un corps JSON plat, y compris les erreurs HTTP du fournisseur renvoyées avant le démarrage du flux SSE. Par exemple, HTTP 402 renvoie :

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code : code numérique d’erreur de plateforme, distinct du statut HTTP et non une chaîne
  • message : description d’erreur lisible par l’utilisateur
  • type : api_error
  • requestId : identifiant facultatif de requête pour le diagnostic
Statut HTTPcodeSignification
40010000Requête invalide
40120000Authentification absente ou invalide
40240000Crédit insuffisant
40320001Accès refusé ou modèle indisponible pour cette clé
40430000Modèle ou ressource introuvable
40930001Conflit de requête
42210001Erreur de validation
42940001Limite de débit dépassée
50050003Erreur interne
50250000Erreur du fournisseur amont
50350001Service indisponible
50450002Délai de passerelle dépassé

Vérifiez d’abord le statut HTTP pour déterminer si la requête a réussi, puis comparez le code numérique pour le traitement propre à l’application. Ne comparez pas code à des chaînes comme "400", ne supposez pas qu’il correspond au statut HTTP et n’analysez pas message comme identifiant d’erreur stable. Un champ messages absent ou de type incorrect est rejeté avec HTTP 400 et code: 10000 avant l’appel au fournisseur.

Ce format d’erreur concerne les réponses HTTP de Chat Completions, pas les erreurs dans un flux SSE déjà démarré ni les autres protocoles API. Le catalogue de modèles et les endpoints de protocoles natifs ont leurs propres formats d’erreur documentés.