Examples

1) GET /status (public)

cURL

curl
curl -X GET "https://api-endpoints.alphaedge-ai.com/status"

Python

python
import requests
r = requests.get("https://api-endpoints.alphaedge-ai.com/status", timeout=30)
print(r.status_code, r.json())

TypeScript

typescript
const res = await fetch("https://api-endpoints.alphaedge-ai.com/status");
console.log(res.status, await res.json());

Réponse HTTP 200 :

json
{
  "status": "ok",
  "response_ms": 0.02,
  "version": "0.3.0",
  "uptime_seconds": 367.89,
  "checks": { "asr": true, "ocr": true }
}

2) GET /models (catalogue public, sans clé API)

cURL

curl
curl -X GET "https://api-endpoints.alphaedge-ai.com/models"

Python

python
import requests
r = requests.get("https://api-endpoints.alphaedge-ai.com/models", timeout=30)
print(r.status_code, r.json())

TypeScript

typescript
const res = await fetch("https://api-endpoints.alphaedge-ai.com/models");
console.log(res.status, await res.json());

Réponse HTTP 200 — tableau d’objets (pas d’enveloppe) :

json
[
  { "model_slug": "alpha-audio-v1", "type": "audio" },
  { "model_slug": "alpha-digit-max", "type": "ocr" },
  { "model_slug": "alpha-digit-medium", "type": "ocr" }
]

3) GET /models/{model_slug} (détail d’un modèle, public)

Renvoie les métadonnées d’un modèle : endpoints exposés, nom du champ multipart d’entrée, options booléennes acceptées, extensions de fichiers acceptées et tarification.

curl
curl -X GET "https://api-endpoints.alphaedge-ai.com/models/alpha-audio-v1"

Réponse HTTP 200 (exemple audio) :

json
{
  "model_slug": "alpha-audio-v1",
  "type": "audio",
  "display_name": "AlphaAudio v1",
  "version": "1.0",
  "description": "ASR haute précision optimisé pour le français.",
  "endpoints": [
    "POST /models/alpha-audio-v1/transcript"
  ],
  "input_field_name": "audio",
  "optional_fields": ["enable_diarization", "enable_postcorrect"],
  "accepted_extensions": ["mp3", "m4a", "wav", "flac", "ogg", "opus", "webm", "wma", "aiff", "aac", "aif"],
  "pricing": {
    "eur_per_hour": 0.15,
    "billing_unit": "audio_duration_seconds",
    "currency": "EUR"
  }
}

Si le slug n’existe pas : 404 {"detail": "Modèle introuvable."}

4) POST /models/{model_slug}/transcript (audio -> texte)

Paramètres multipart/form-data:

  • audio (obligatoire)
  • enable_diarization (optionnel)
  • enable_postcorrect (optionnel — post-correction linguistique via un modèle open source externe hébergé chez Novita, français uniquement)

Réponse synchrone HTTP 200 avec le texte transcrit dans le champ text.

Valeurs booléennes acceptées (insensibles à la casse) : 1/0, true/false, yes/no, on/off. Toute autre valeur renvoie une 422 explicite.

cURL

curl
curl -X POST "https://api-endpoints.alphaedge-ai.com/models/alpha-audio-v1/transcript" \
  -H "X-API-Key: TA_CLE" \
  -F "audio=@/chemin/audio.wav" \
  -F "enable_diarization=true"

Python

python
import requests
url = "https://api-endpoints.alphaedge-ai.com/models/alpha-audio-v1/transcript"
headers = {"X-API-Key": "TA_CLE"}
with open("/chemin/audio.wav", "rb") as f:
    files = {"audio": ("audio.wav", f, "audio/wav")}
    data = {
        "enable_diarization": "true",
    }
    r = requests.post(url, headers=headers, files=files, data=data, timeout=300)
print(r.status_code)
print(r.json())

TypeScript (Node.js)

typescript
import fs from "node:fs";
const form = new FormData();
form.append("audio", new Blob([fs.readFileSync("/chemin/audio.wav")]), "audio.wav");
form.append("enable_diarization", "true");
const res = await fetch("https://api-endpoints.alphaedge-ai.com/models/alpha-audio-v1/transcript", {
  method: "POST",
  headers: { "X-API-Key": "TA_CLE" },
  body: form
});
console.log(res.status, await res.json());

5) POST /models/{model_slug}/ocr (image -> texte)

Paramètre multipart/form-data:

  • image (obligatoire, fichier)

cURL

curl
curl -X POST "https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr" \
  -H "X-API-Key: TA_CLE" \
  -F "image=@/chemin/image.png"

Python

python
import requests
url = "https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr"
headers = {"X-API-Key": "TA_CLE"}
with open("/chemin/image.png", "rb") as f:
    files = {"image": ("image.png", f, "image/png")}
    r = requests.post(url, headers=headers, files=files, timeout=300)
print(r.status_code)
print(r.json())

TypeScript (Node.js)

typescript
import fs from "node:fs";
const form = new FormData();
form.append("image", new Blob([fs.readFileSync("/chemin/image.png")]), "image.png");
const res = await fetch("https://api-endpoints.alphaedge-ai.com/models/alpha-digit-max/ocr", {
  method: "POST",
  headers: { "X-API-Key": "TA_CLE" },
  body: form
});
console.log(res.status, await res.json());