๐Ÿ“– API Documentation

Benvenuto nella documentazione API di idiotsarewinning. La nostra API REST ti permette di integrare servizi AI di trascrizione audio e OCR nei tuoi progetti in pochi minuti.

Base URL: https://idiotarewinnin.it/api/v1

๐Ÿ”‘ Autenticazione

Tutte le richieste API richiedono una API key. Inviala nell'header X-API-Key:

curl -H "X-API-Key: irw_la_tua_api_key" \
  https://idiotarewinnin.it/api/v1/...

Ottieni la tua API key dalla Dashboard dopo la registrazione.

โš ๏ธ Errori

L'API ritorna errori in formato JSON:

{
  "error": "Descrizione dell'errore",
  "detail": "Dettagli aggiuntivi (se disponibili)"
}
Status CodeSignificato
200Successo
400Richiesta malformata
401API key mancante o non valida
413File troppo grande per il piano
429Limite richieste superato
500Errore server

โฑ๏ธ Rate Limits

I limiti dipendono dal tuo piano:

PianoRichieste/giornoFile max
Free1010 MB
Pro1.000100 MB
BusinessIllimitato500 MB

Headers di risposta: X-RateLimit-Limit, X-RateLimit-Remaining

๐ŸŽ™๏ธ Trascrizione Audio

POST /api/v1/transcribe

Converte file audio/video in testo usando Whisper large-v3.

Parametri (multipart/form-data)

CampoTipoDescrizione
file REQUIREDFileFile audio (mp3, wav, m4a, ogg, flac, webm, mp4, ...)
languageStringCodice lingua ISO (es. "it", "en"). Auto-detect se omesso.
response_formatStringFormato output: "json", "text", "srt", "vtt". Default: "json"

Esempio โ€” curl

curl -X POST https://idiotarewinnin.it/api/v1/transcribe \
  -H "X-API-Key: irw_la_tua_key" \
  -F "[email protected]" \
  -F "language=it"

Esempio โ€” Python

import requests

response = requests.post(
  "https://idiotarewinnin.it/api/v1/transcribe",
  headers={"X-API-Key": "irw_la_tua_key"},
  files={"file": open("audio.mp3", "rb")}
)
print(response.json()["text"])

Risposta

{
  "success": true,
  "text": "Il testo trascritto dall'audio...",
  "service": "whisper",
  "model": "large-v3-turbo"
}

๐Ÿ“„ OCR โ€” Estrazione Testo

POST /api/v1/ocr

Estrae testo da immagini e PDF usando PaddleOCR su GPU.

Parametri (multipart/form-data)

CampoTipoDescrizione
file REQUIREDFileImmagine (JPG, PNG, TIFF, BMP) o PDF

Esempio โ€” curl

curl -X POST https://idiotarewinnin.it/api/v1/ocr \
  -H "X-API-Key: irw_la_tua_key" \
  -F "[email protected]"

Esempio โ€” Node.js

const fs = require('fs');
const FormData = require('form-data');
const axios = require('axios');

const form = new FormData();
form.append('file', fs.createReadStream('doc.png'));

const res = await axios.post(
  'https://idiotarewinnin.it/api/v1/ocr',
  form,
  { headers: { ...form.getHeaders(), 'X-API-Key': 'irw_la_tua_key' } }
);
console.log(res.data);

Risposta

{
  "success": true,
  "text": "Testo estratto dal documento...",
  "blocks": [...],
  "service": "paddleocr"
}

Account API

POST /api/auth/register

Crea un nuovo account e ricevi API key + JWT token.

curl -X POST https://idiotarewinnin.it/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"min8chars","name":"Mario"}'
POST /api/auth/login

Accedi e ricevi JWT token.

curl -X POST https://idiotarewinnin.it/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"latuapassword"}'
GET /api/auth/me

Ottieni profilo utente, API keys e uso giornaliero.

curl https://idiotarewinnin.it/api/auth/me \
  -H "Authorization: Bearer IL_TUO_JWT_TOKEN"