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());