Passer au contenu principal
L’API IA Kazzle vous donne un seul point de terminaison authentifié pour appeler n’importe quel modèle que nous supportons. Vous payez une seule fois, en crédits, sur votre espace — pas de comptes séparés pour OpenAI, Anthropic, Cloudflare Workers AI, ou quiconque d’autre vers lequel nous routons. Tous les points de terminaison se trouvent sous /ai/* sur https://api.kazzle.app et acceptent une clé API kzl_ dans l’en-tête Authorization. Voir Clés API pour savoir comment en créer une. Les apps Kazzle générées doivent aussi utiliser cette API. Créez une clé API Kazzle pour l’app, stockez-la dans le vault, configurez-la comme KAZZLE_API_KEY sur un composant de processus, et appelez https://api.kazzle.app/ai/* depuis ce code côté serveur. Ne demandez pas aux utilisateurs leurs clés de fournisseur sauf s’ils veulent explicitement utiliser leur propre compte fournisseur.

Capacités

Point de terminaisonModalitéEntrée standardiséeSortie standardisée
POST /ai/chat/completionsChat (texte, streaming)messages[] compatible OpenAIchoices[] compatible OpenAI ou flux SSE
POST /ai/responsesAPI ResponsesCompatible OpenAI ResponsesCompatible OpenAI Responses
POST /ai/images/generationsImage{ model, prompt, size?, output_format? }{ images: [{ url? | b64?, mimeType }] }
POST /ai/audio/speechSynthèse vocale{ model, text, voice?, format? }flux d’octets audio/*
POST /ai/audio/transcriptionsReconnaissance vocalemultipart/form-data avec file + model{ text }
POST /ai/video/generationsVidéo (asynchrone){ model, prompt, ... }{ id, status, pollUrl }
GET /ai/responses/{id}Interrogation asynchroneid de réponserésultat formaté fournisseur
POST /ai/gatewayPassthrough brutN’importe quel payload Workers AI / natif fournisseurRéponse brute en amont
GET /ai/modelsCatalogue{ models: [{ id, modality, pricing, ... }] }
GET /ai/models est la source de vérité pour savoir quels ids de modèle fonctionnent sur quel point de terminaison. Consultez-le d’abord si vous construisez contre l’API.

Comment fonctionne un appel

Chaque appel facturable passe par cinq phases. Vous ne voyez pas la plupart d’entre elles — elles sont suivies côté serveur pour que nous puissions rembourser les appels échoués et signaler l’utilisation exacte.
PhaseCe qui s’est passé
openNous avons créé un événement de facturation lié à votre demande, mais n’avons pas encore appelé en amont.
recordedLe fournisseur en amont a répondu. Nous avons un id de journal de Cloudflare AI Gateway. Le coût n’est pas encore connu.
pricedCloudflare a signalé le coût final. Nous avons appliqué notre marge et écrit la charge de crédit. Terminal.
failedL’appel en amont a échoué, ou nous n’avons pas pu obtenir un coût après 20 tentatives. Le client n’est pas facturé. Terminal.
syncedL’événement tarifé a été livré à notre système de mesure.
Chaque réponse réussie inclut x-kazzle-ai-billing-event-id: airesp_... — conservez-le si vous voulez corréler la demande avec les exports d’utilisation plus tard.

Facturation et marge

Nous facturons cloudflare_cost_usd × (1 + markup). La marge est publiée dans Paramètres → Facturation → Tarification. Les appels que Cloudflare a tarifés à $0 (tier Workers AI gratuit, promos) atteignent la phase priced avec un coût zéro et ne sont jamais facturés. Réserve : vous avez besoin d’au moins $0,50 équivalent en crédits pour faire un appel. Nous le retenons sur votre solde jusqu’à ce que l’appel se termine, puis nous réglons le coût réel.

Erreurs

StatutSignification
401Clé API kzl_ manquante ou invalide.
402Crédits insuffisants pour la réserve. Rechargez dans Paramètres → Facturation.
4xx en amontTransféré tel quel. Le corps contient l’erreur du fournisseur. Le client n’est pas facturé.
5xx en amontTransféré tel quel. Le client n’est pas facturé.

Exemple — génération d’image

curl https://api.kazzle.app/ai/images/generations \
  -H "Authorization: Bearer kzl_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-1",
    "prompt": "a single red dot on white",
    "size": "1024x1024"
  }'
{
  "images": [
    { "url": "https://...", "mimeType": "image/png" }
  ]
}

Exemple — synthèse vocale

curl https://api.kazzle.app/ai/audio/speech \
  -H "Authorization: Bearer kzl_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/tts-1","text":"hello world","voice":"alloy","format":"mp3"}' \
  --output speech.mp3

Voir aussi

  • Référence API — schémas complets de demande/réponse pour chaque point de terminaison
  • Clés API — création et utilisation des clés kzl_
  • Facturation — crédits, plans et marge que nous appliquons