Fantasy API · v1

Une API. Tous les modèles.

Discutez avec Claude, GPT, Gemini, DeepSeek et plus de 30 autres via un endpoint unique compatible OpenAI. Pas de tokens à compter, pas de lock-in fournisseur, pas de facture surprise.

Compatibilité directe

Changez la base URL — gardez votre SDK OpenAI ou Anthropic.

Sans comptage de tokens

Plan Pro à prix fixe. Requêtes interactives illimitées sur tous les modèles, avec protection fair-use pour les automatisations lourdes.

30+ modèles

Claude, GPT, Gemini, DeepSeek, Grok — une seule clé.

Bascule automatique

Un fournisseur en panne ? Fantasy reroute avant que vous ne le remarquiez.

Démarrage rapide

Votre premier appel, en moins d'une minute.

Trois étapes — aucune n'implique de changer de SDK. Le plan Pro est requis pour générer une clé.

  1. 1

    Générer une clé

    Depuis votre tableau de bord. Une clé, tous les endpoints.

  2. 2

    Pointer votre client vers Fantasy

    Définissez la base URL sur https://fantasyai.cloud/api/v1.

  3. 3

    Appeler n'importe quel modèle

    Même format de requête, même format de réponse. Streaming, outils, vision — tout y est.

bash
curl https://fantasyai.cloud/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FANTASY_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

Authentification

Une clé. Deux styles de header.

Générez une clé depuis le tableau de bord. Utilisez Authorization: Bearer sur les routes OpenAI, et x-api-key sur les routes Anthropic. Les clés n'expirent jamais d'elles-mêmes — révoquez et faites tourner depuis le dashboard.

EndpointFormatHeader
/v1/chat/completionsOpenAIAuthorization: Bearer <key>
/v1/completionsOpenAIAuthorization: Bearer <key>
/v1/messagesAnthropicx-api-key: <key>
/v1/jev/decisionsFantasyAuthorization: Bearer <key>
/v1/systemoneTypeSafeAuthorization: Bearer <key>

Référence API

Essayez en direct.

Collez votre clé API, choisissez un endpoint, modifiez le payload et envoyez. La réponse s'affiche instantanément — aucun terminal requis.

Authorization
OpenAI/api/v1/chat/completions

Endpoint chat compatible OpenAI. Supporte le streaming.

Body · JSON
Réponse

Envoyez une requête pour voir la réponse

Référence API

Endpoints.

Protocoles de chat et décisions structurées Jev avec une seule clé API Fantasy.

POSTOpenAI
/api/v1/chat/completions

Chat completions

Endpoint chat compatible OpenAI. Supporte le streaming, le function calling et le tool use sur chaque modèle du catalogue. Drop-in pour le SDK OpenAI.

Authentification

Authorization: Bearer
bash
curl https://fantasyai.cloud/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FANTASY_API_KEY" \
  -d '{
    "model": "deepseek-v4",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Sort a Python list."}
    ],
    "stream": true,
    "temperature": 0.7
  }'
POSTAnthropic
/api/v1/messages

Anthropic messages

Compatibilité complète avec Anthropic Messages. À utiliser avec Claude Code, Cline ou tout client construit sur le protocole Anthropic.

Authentification

x-api-key
bash
curl https://fantasyai.cloud/api/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: $FANTASY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, world"}
    ]
  }'
GETOpenAI
/api/v1/models

Liste des modèles

Renvoie tous les modèles disponibles avec leurs métadonnées de fournisseur et de capacité. Utile pour peupler un sélecteur de modèle dans votre propre UI.

Authentification

Authorization: Bearer
bash
curl https://fantasyai.cloud/api/v1/models \
  -H "Authorization: Bearer $FANTASY_API_KEY"
POSTFantasy
/api/v1/jev/decisions

Décisions Jev pour Fantasy

Envoyez 1 à 50 messages texte pour obtenir des recommandations de routage, recherche, contexte, longueur de réponse et mémoire. Les appels sont facturés selon les tokens d’entrée réels au tarif Jev, converti en euros sans majoration. Les décisions en cache sont gratuites. Le mode shadow renvoie des décisions consultatives.

Authentification

Authorization: Bearer
bash
curl https://fantasyai.cloud/api/v1/jev/decisions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FANTASY_API_KEY" \
  -d '{"messages":[{"role":"user","content":"Help me debug this function."}]}'
POSTTypeSafe
/api/v1/systemone

Évaluations natives Jev

Évaluez votre propre contexte avec 1 à 32 questions Choice, Score ou Noul. Renvoie les réponses structurées, probabilités, confiance et consommation de tokens en JSON. Facture les tokens d’entrée réels à 0,042 $ par million, convertis en euros sans majoration ; les sorties sont gratuites. X-Jev-Credits indique le débit. Votre contexte et vos critères sont transmis à TypeSafe.

Authentification

Authorization: Bearer
bash
curl https://fantasyai.cloud/api/v1/systemone \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $FANTASY_API_KEY" \
  -d '{
    "model":"jev-latest",
    "state":{"message":"I was billed twice."},
    "questions":{
      "department":{
        "type":"choice",
        "instructions":"Which team should handle this?",
        "criteria":{"billing":"Invoices and refunds","technical":"Bugs and outages"}
      },
      "urgency":{
        "type":"score",
        "instructions":"How urgent is this request?",
        "criteria":["Normal","Urgent","Critical"]
      },
      "duplicate":{
        "type":"noul",
        "instructions":"Does the message report duplicate billing?"
      }
    }
  }'

Guide Jev

Utiliser l’API Jev dans votre application.

Jev évalue un contexte et renvoie des décisions structurées : classer une demande, choisir une capacité, mesurer une urgence ou estimer une probabilité. Utilisez les routes dédiées ci-dessus pour ces évaluations ; elles renvoient du JSON sans streaming.

Il vous faut un abonnement Pro actif, une clé API utilisateur Fantasy et des crédits prépayés. Envoyez votre clé avec Authorization: Bearer ou x-api-key. La clé TypeSafe est configurée par l’administrateur sur le serveur Fantasy.

Recommandations Fantasy — /jev/decisions

Envoyez l’historique texte de votre conversation dans messages. Le preset évalue le type de tâche, le niveau de modèle, la recherche, le contexte nécessaire, la longueur de réponse et l’intérêt d’une mémoire durable. Votre application peut ensuite utiliser ces recommandations.

1 à 50 messages, au plus 24 000 caractères chacun, avec au moins un message user non vide. Seuls les textes user et assistant récents sont utilisés ; les contenus system, developer et tool sont exclus.

Vos propres questions — /systemone

Définissez state (texte, objet ou tableau), puis questions, un objet dont les clés sont vos noms de questions. Chaque question contient type, instructions et, selon le type, criteria. model est facultatif et utilise par défaut le modèle Jev configuré, normalement jev-latest.

1 à 32 questions. Choice : 1 à 255 options nommées. Score : 2 à 10 descriptions ordonnées. Noul : critères true/false facultatifs. Les champs non pris en charge, dont stream, sont refusés.

Appeler Jev en JavaScript ou Python

Définissez FANTASY_API_KEY dans l’environnement de votre application. L’exemple JavaScript utilise fetch dans Node.js ; l’exemple Python utilise requests et présente les trois types de questions. Dans le playground, choisissez Décisions Jev ou API native Jev, collez votre clé puis envoyez la requête ; les évaluations réussies consomment des crédits.

javascript
// Node.js: set FANTASY_API_KEY in your environment.
const response = await fetch("https://fantasyai.cloud/api/v1/jev/decisions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.FANTASY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    messages: [{ role: "user", content: "Help me debug this function." }],
  }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.message ?? response.statusText);
console.log("Credits:", response.headers.get("X-Jev-Credits"));
console.log(result.decision);
if (result.active && result.decision?.taskType.confidence >= 0.7) {
  console.log("Recommended capability:", result.decision.taskType.value);
  // Map the capability to a model in your application.
}

Lire la réponse

Ces réponses sont illustratives : les valeurs, la latence, le modèle résolu et les tokens dépendent de votre requête.

json
{
  "object": "jev.decision",
  "decision": {
    "taskType": {
      "value": "code",
      "confidence": 0.91
    },
    "modelTier": {
      "value": "standard",
      "confidence": 0.83
    },
    "research": {
      "value": "none",
      "confidence": 0.94
    },
    "contextNeeded": {
      "value": "short",
      "confidence": 0.88
    },
    "answerLength": {
      "value": "short",
      "confidence": 0.9
    },
    "memoryCandidate": 0.12,
    "model": "jev-latest",
    "latencyMs": 42,
    "cached": false
  },
  "active": false,
  "usage": {
    "credits": 2
  }
}

Pour /jev/decisions, chaque recommandation contient value et confidence. taskType indique une capacité (general, code, reasoning, security ou vision) ; modelTier indique economy, standard ou premium. decision.model est le modèle Jev qui a évalué la demande. À vous de choisir le modèle de chat correspondant dans votre application.

Vérifiez active avant d’appliquer une recommandation Fantasy. En mode shadow, active vaut false : les décisions sont consultatives. Une requête Desktop portant x-fantasy-desktop-context: 1 reçoit alors decision: null et usage.credits: 0. Les évaluations natives /systemone restent utilisables en mode shadow.

Choice : answers.department.choice est le nom de l’option retenue ; probabilities associe une probabilité à chaque option.

Score : answers.urgency.score se situe entre 0 et le nombre de critères moins un, et peut être décimal. legend associe chaque indice à sa description ; probabilities donne la distribution sur ces indices.

Noul : answers.duplicate.noul est une probabilité entre 0 et 1, pas un booléen. Choisissez un seuil adapté à votre application si vous avez besoin d’un résultat vrai/faux.

Pour Choice et Score, confidence est distincte de la probabilité de l’option gagnante. Le seuil 0,7 de l’exemple JavaScript est un choix de l’application. usage.input_tokens et usage.output_tokens décrivent la consommation rapportée par TypeSafe sur la route native.

Crédits et données envoyées

Les routes /jev/decisions et /systemone facturent les tokens d’entrée déclarés par Jev au tarif du fournisseur : 0,042 $ par million de tokens d’entrée, convertis en euros avec le taux de référence BCE mis en cache ou le taux de règlement configuré, sans majoration. Les tokens de sortie et les décisions en cache sont gratuits. Un crédit vaut 0,01 € ; le débit est arrondi au supérieur à 0,000001 € (0,0001 crédit). Par exemple, 1 000 tokens d’entrée avec un taux dollar/euro de 0,8 consomment 0,0034 crédit. Avant un appel payant, le coût du maximum de 64 000 tokens est réservé ; seuls les tokens réels sont débités après validation du succès et le surplus réservé est rendu. Les échecs libèrent la réservation. X-Jev-Credits indique le débit réel ; usage.credits le fournit aussi pour le preset.

Le preset tronque l’historique récent et masque les secrets connus ; le masquage des données personnelles courantes est activé par défaut. La route native transmet votre state et vos critères à TypeSafe sans masquage ni troncature automatiques.

Comprendre les erreurs

400
JSON ou paramètres invalides : vérifiez messages ou le schéma des questions.
401
Clé Fantasy invalide ou désactivée, ou abonnement Pro expiré.
402
Crédits prépayés insuffisants : rechargez votre solde dans Facturation.
413
Le corps JSON dépasse 256 000 octets UTF-8 : réduisez le contexte.
422
TypeSafe a refusé l’évaluation native : vérifiez le modèle et les questions.
429
Limite de requêtes, de tokens ou de concurrence atteinte : consultez Retry-After lorsqu’il est présent.
502
Erreur fournisseur ou réponse d’évaluation invalide.
503
Jev est désactivé ou non configuré, ou l’évaluation est temporairement indisponible. Pour une instance auto-hébergée, configurez JEV_ENABLED=true et TYPESAFE_API_KEY, puis redémarrez le serveur.

Intégrations

Branchez les outils que vous utilisez déjà.

Fantasy parle OpenAI et Anthropic — tout ce qui est construit contre l'un ou l'autre fonctionne sans modification.

CLI officiel d'Anthropic

Claude Code

Surchargez la base URL Anthropic et Claude Code parle à Fantasy. Chaque modèle Claude débloqué par votre offre, avec protection fair-use pour les boucles automatisées.

bash
# PowerShell (Windows)
$env:ANTHROPIC_BASE_URL = "https://fantasyai.cloud/api"
$env:ANTHROPIC_AUTH_TOKEN = "fantasy-your-api-key-here"
claude

# macOS / Linux
export ANTHROPIC_BASE_URL="https://fantasyai.cloud/api"
export ANTHROPIC_AUTH_TOKEN="fantasy-your-api-key-here"
claude

Prêt à expédier ?

Obtenir votre clé API

Fantasy AI · API v1