• English
  • Deutsch
  • Nederlands
  • Español
  • Français
  • Italiano
  • Português
  • Русский
  • 中文
  • 日本語
  • 한국어

Stagify.ai › Documentazione dell’API

Stagify API

Pannello API

Arreda una foto immobiliare dal tuo codice. Una chiamata HTTP restituisce un’immagine arredata. Crediti prepagati a 0,15 $ per immagine, senza abbonamento, senza minimi e senza fatture fuori controllo.

URL di base
https://stagify.ai/api/v1
Autenticazione
Bearer stg_live_…
Tipo di contenuto
multipart/form-data

Introduzione

L’API espone una cosa sola: la pipeline di arredamento dietro l’app web. Invii la foto di una stanza, indichi un tipo di ambiente e uno stile di arredo e ricevi l’immagine arredata nella stessa risposta. Non c’è coda di lavori né nulla da interrogare sul percorso normale.

I crediti sono immagini intere. Li compri in anticipo e ogni render riuscito ne consuma uno. Un render fallito viene rimborsato automaticamente, quindi paghi solo per una foto che hai ricevuto. E poiché il saldo è prepagato, una chiave rubata ti costa al massimo quello che resta. Nessuna fattura a fine mese.

Le chiavi sono pensate per l’uso da server a server. L’API non invia header CORS, quindi un browser non può chiamarla direttamente; è voluto, e una chiave raggiungibile dal JavaScript del browser è una chiave compromessa. Mostriamo la chiave una sola volta, ne conserviamo solo un hash e la revochiamo subito.

Avvio rapido

Crea una chiave nella tua pagina delle chiavi API, acquista un pacchetto di crediti e invia una foto. La risposta contiene l’immagine arredata come data URL.

curl https://stagify.ai/api/v1/renders \
  -H "Authorization: Bearer $STAGIFY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F "image=@living-room.jpg" \
  -F "roomType=Living room" \
  -F "furnitureStyle=modern" \
  -F "labelVirtuallyStaged=true"

Un render può richiedere un paio di minuti. Imposta il timeout di lettura del tuo client a 300 secondi e riprova con la stessa Idempotency-Key. È questo che garantisce che non ti venga mai addebitata due volte la stessa foto.

Pacchetti di crediti

Caricamento prezzi…

Parametri della richiesta

POST /api/v1/renders, inviato come multipart/form-data. Tutti i valori accettati elencati sotto sono serviti anche in JSON da GET /api/v1/options, che non richiede una chiave API: un client può così popolare i propri menu a tendina invece di fissare questa tabella nel codice.

CampoTipoNote
imagefileObbligatorio. La foto della stanza. JPEG, PNG o WebP, fino a 25 MB. Viene controllato il tipo MIME, non l’estensione del file.
roomTypeenum Bedroom, Living room, Dining room, Kitchen, Office, Bathroom, Outdoors, Dorm. Predefinito Living room. Distingue maiuscole e spazi, e un valore non riconosciuto non viene rifiutato. Viene scritto nel prompt come testo libero, quindi Living Room non è Living room.
furnitureStyleenum standard, modern, midcentury, scandinavian, luxury, coastal, farmhouse, custom. Predefinito standard, che è anche ciò in cui si trasforma silenziosamente un valore non riconosciuto. custom usa il tuo additionalPrompt al posto del testo di stile integrato.
additionalPromptstringIndicazioni in testo libero per questo render.
removeFurniturebooleanSvuota la stanza prima di arredarla. Invia true oppure on; qualsiasi altra cosa, compresi 1 e yes, vale falso.
keepFurniturestringTesto libero che indica cosa lasciare, ad es. keep the dining table and the built-in shelves. Letto solo quando removeFurniture è attivo. 500 caratteri.
furnitureImagefile[]Fino a 5 foto di riferimento dell’arredo da imitare. Stessi formati e stesso limite di dimensione di image.
labelVirtuallyStagedbooleanImprime la dicitura “Virtually staged” sull’immagine prodotta.
stampStyleenum dark, light, minimal, banner. Predefinito dark. Non distingue maiuscole; un valore non riconosciuto torna al predefinito.
stampScalenumber Da 0.7 a 1.6, predefinito 1. I valori fuori intervallo vengono limitati anziché rifiutati.
stampLangenum La lingua della dicitura: english, spanish, french, german, chinese, korean, portuguese, russian, italian, japanese, dutch. Predefinito english.
variationsintegerÈ accettato solo 1. Per averne di più, invia richieste in parallelo.

Idempotenza

Un render tiene aperta la connessione per minuti, quindi il guasto che ti colpirà davvero è un socket caduto dopo che il lavoro era già finito: addebitato e senza nulla in mano. Invia un header Idempotency-Key a ogni richiesta e riprova con lo stesso valore.

Cosa risulta a noiCosa fa un nuovo tentativo
Una richiesta riuscita, stessi parametriRestituisce il risultato salvato con X-Stagify-Replayed: true. Nessun secondo addebito.
Una richiesta ancora in corso409 REQUEST_IN_FLIGHT. Attendi, poi riprova.
Una richiesta abbandonata a metà renderViene rieseguita sull’addebito esistente, fino a tre tentativi.
La stessa chiave con parametri diversi422 IDEMPOTENCY_KEY_REUSED. Usa una chiave nuova.

Omettere l’header è consentito e significa nessuna protezione dai replay, che è il comportamento predefinito più onesto. Non ricaviamo una chiave dalla tua foto: due render davvero distinti della stessa stanza collidereb­bero e il secondo chiamante riceverebbe l’immagine del primo.

Diciture di arredamento virtuale

Molte regole MLS e NAR richiedono che una foto arredata virtualmente lo dichiari. labelVirtuallyStaged imprime quella dicitura nei pixel invece di allegarla come metadato che uno strumento a valle può rimuovere.

Se la dicitura non può essere applicata, l’immagine viene trattenuta anziché consegnata senza etichetta, la chiamata risponde 500 DISCLOSURE_STAMP_FAILED e il tuo credito viene rimborsato. Non c’è modo di disattivare questo comportamento, né un valore predefinito per chiave che lo annulli in silenzio.

Errori

Ogni errore risponde { "error": "…", "code": "…" }. Ramifica su code, mai sul messaggio. I messaggi cambiano, i codici no.

StatoCodiceCosa fare
401API_KEY_MISSING / API_KEY_INVALID / API_KEY_REVOKEDControlla l’header Authorization, oppure crea una nuova chiave.
402INSUFFICIENT_CREDITSRicarica. Il corpo contiene credits_remaining.
403ACCOUNT_SUSPENDEDContatta l’assistenza.
400VARIATIONS_UNSUPPORTEDQuesta API produce un’immagine per richiesta. Invia invece richieste in parallelo.
409REQUEST_IN_FLIGHTQuella chiave di idempotenza è ancora in esecuzione. Attendi, poi riprova.
409CONCURRENCY_LIMITTroppi render insieme. Riprova tra qualche secondo.
422IDEMPOTENCY_KEY_REUSEDHai riutilizzato una chiave con parametri diversi. Usane una nuova.
422NO_IMAGE_GENERATEDIl modello non ha restituito nulla. Rimborsato; riprova o cambia foto.
429RATE_LIMITEDRallenta e riprova.
500DISCLOSURE_STAMP_FAILEDNon è stato possibile applicare la dicitura, quindi l’immagine è stata trattenuta. Rimborsato.
500RENDER_FAILEDRimborsato. Cita il ref se contatti l’assistenza.

Altri endpoint

  • GET /api/v1/options: i valori accettati di ogni enumerazione qui sopra. Nessuna chiave API richiesta.
  • GET /api/v1/me: la mia chiave funziona? Restituisce account e saldo.
  • GET /api/v1/credits: saldo e totali complessivi.
  • GET /api/v1/renders/{id}: lo stato di un render.

Ogni risposta porta X-Stagify-Credits-Remaining, così puoi vedere il saldo scendere senza interrogarlo.

Domande, limiti più alti o fattura invece della carta: team@stagify.ai.