Riferimento dell’API di Fluos

L’API HTTP pubblica di Fluos — file di discovery, documentazione, ricerca e operazioni video a pagamento — descritta da /openapi.json.

La descrizione canonica e leggibile da macchina dell’API di Fluos è https://www.fluos.io/openapi.json. Ogni operazione ha un operationId univoco, una descrizione, parametri tipizzati e schemi di risposta, così gli agenti possono registrare strumenti di function calling a partire dalla specifica.

URL di base

https://www.fluos.io

Prefisso pubblico canonico dell’API: /api/v1/. Invia API-Version: 1. Vedi Versioning e deprecazione dell’API di Fluos.

Discovery

operationIdMetodoPercorsoScopo
getFluosOpenApiSpecGET/openapi.jsonQuesta specifica
getFluosOpenApiSpecV1GET/api/v1/openapi.jsonAlias versionato di questa specifica
getFluosMcpServerCardGET/api/v1/mcpScheda del server MCP di Fluos
callFluosMcpPOST/api/v1/mcpJSON-RPC del MCP di Fluos
getFluosLlmsTxtGET/llms.txtIndice curato degli URL
getFluosLlmsFullTxtGET/llms-full.txtDump completo della documentazione in testo
getFluosAiTxtGET/ai.txtPolicy per i crawler di IA
getFluosSitemapGET/sitemap.xmlTutti gli URL pubblici
getFluosRobotsTxtGET/robots.txtRegole per i crawler
getFluosRssFeedGET/feed.xmlFeed RSS del blog

Questi endpoint sono pubblici e memorizzabili in cache. Nessuna autenticazione.

Contenuti (negoziazione con Accept)

operationIdMetodoPercorso
getFluosHomeGET/
getFluosCliGET/cli
getFluosMcpGET/mcp
getFluosDocsIndexGET/docs
getFluosDocPageGET/docs/{slug}
getFluosAboutGET/about
getFluosPricingGET/pricing
getFluosBlogPostGET/blog/{slug}

Invia Accept: text/markdown per ottenere Markdown. Senza Accept la risposta è in HTML. I valori di Accept incompatibili restituiscono 406.

Ricerca

operationIdMetodoPercorsoParametri
searchFluosDocsGET/api/searchquery (o l’alias q)
searchFluosDocsV1GET/api/v1/searchquery (o l’alias q)

Pubblico. Restituisce risultati ordinati per rilevanza su questa documentazione. Preferisci /api/v1/search. Le risposte includono gli header IETF RateLimit; 429 include Retry-After.

Video

Solo piani a pagamento. Autenticati con OAuth o con un token API; il piano Gratuito riceve 402 PLAN_REQUIRED. Le stesse attività sono disponibili come strumenti del MCP video.

operationIdMetodoPercorsoScopo
listFluosWorkspacesGET/api/v1/workspacesSpazi di lavoro a cui hai accesso
listFluosProjectsGET/api/v1/projectsProgetti di uno spazio di lavoro
createFluosProjectPOST/api/v1/projectsCrea un progetto
listFluosTemplatesGET/api/v1/templatesModelli salvati in uno spazio di lavoro (parametro workspaceId)
listFluosAssetsGET/api/v1/assetsElementi della libreria
startFluosAssetUploadPOST/api/v1/assets/uploadsAvvia un caricamento nella libreria
completeFluosAssetUploadPOST/api/v1/assetsCompleta un caricamento nella libreria
createFluosVideoPOST/api/v1/videosAvvia un job video
getFluosVideoJobGET/api/v1/videos/{jobId}Controlla lo stato di un job
reviseFluosVideoPOST/api/v1/videos/{jobId}/reviseAvvia un job di follow-up a partire da uno pronto
cancelFluosVideoPOST/api/v1/videos/{jobId}/cancelAnnulla un job in coda, in corso o in pausa
exportFluosVideoPOST/api/v1/exportsEsporta un job pronto
getFluosVideoExportGET/api/v1/exports/{exportId}Controlla lo stato di un’esportazione

Creare un video

createFluosVideo richiede projectId e brief. Campi facoltativi:

CampoScopo
recipegenerate | edit | compose | mix. Vedi Ricette
assetIdsElementi della libreria da usare
formataspectRatio, durationHintSeconds, resolution
templateIdUn modello preso da listFluosTemplates. Il brief viene creato in un nuovo progetto copiato da quel modello, con la stessa struttura, lo stesso ritmo e le stesse animazioni, senza passaggio di storyboard
brandKitId, designSystem, designMdIl brand kit, il preset di design o il DESIGN.md inline con cui dare lo stile al video. Se non ne indichi nessuno, vale il kit del progetto o quello predefinito dello spazio di lavoro
style_reference_urlUn link YouTube o un file diretto .mp4, .mov o .webm di cui il video deve riprendere ritmo, tagli, palette e tipografia, senza mai copiarli. I link di Instagram, X e TikTok vengono rifiutati con UPLOAD_REQUIRED: carica invece il file

Stato del job

Controlla getFluosVideoJob ogni pochi secondi. status può essere:

StatoSignificato
queuedIn attesa di partire
runningCreazione in corso
awaiting_creditsLa creazione ha esaurito i crediti ed è in pausa. Non è né terminata né fallita
readyCompletato. Esportalo
failedVedi error.code
cancelledAnnullato

Finché lo stato è awaiting_credits, il job ha un oggetto pause:

{
  "status": "awaiting_credits",
  "pause": {
    "reason": "credits_exhausted",
    "topUpUrl": "https://www.fluos.io/dashboard/billing?src=credit_pause",
    "expiresAt": 1761696000000
  }
}

Tratta awaiting_credits come non terminato. Mostra pause.topUpUrl all’utente. Quando aggiunge crediti, lo stesso job torna da solo a running: continua a controllare, circa una volta al minuto, invece di creare un nuovo job. Se non arrivano crediti entro pause.expiresAt (millisecondi epoch), il job fallisce. pause è assente o null in tutti gli altri stati.

Quando una versione viene salvata, il job restituisce anche sources[]: ogni elemento usato dal video, con sourceKind, rightsStatus (licensed, cc, user_attested, owned, generated o unverified), provider, license, author, attribution e usages (scena, elemento, traccia, inizio e fine).

Esportare

exportFluosVideo accetta jobId, un format facoltativo (mp4 per impostazione predefinita, gif, webm, mov, png-sequence), opzioni advanced facoltative e require_licensed. Con require_licensed: true, l’esportazione viene rifiutata con 422 UNLICENSED_SOURCES finché una voce di sources[] ha diritti unverified. Senza questa opzione, le fonti non verificate non bloccano l’esportazione.

Errori

StatoQuando
404Percorso sconosciuto. Il corpo Markdown elenca /sitemap.xml, /llms.txt, /docs, /docs/developers, /openapi.json.
406Accept ha rifiutato sia HTML sia Markdown.
401API autenticata senza sessione né token. JSON { "error", "code": "unauthorized" }.
402API video sul piano Gratuito (PLAN_REQUIRED, con upgradeUrl), oppure nessun credito per avviare un job (CREDITS_EXHAUSTED, con topUpUrl).
422UNLICENSED_SOURCES: un’esportazione con require_licensed: true mentre una fonte non è verificata.

Function calling

Importa /openapi.json e registra ogni operationId come strumento. Prima di rispondere a domande sul prodotto, dai la precedenza alla discovery, poi a searchFluosDocs e a getFluosDocPage in Markdown.