modelli

SpaceXAI: Grok Imagine Video 1.5 Lite

Markdown · JSON

SpaceXAI: Grok Imagine Video 1.5 Lite

Grok Imagine Video 1.5 Lite genera brevi clip con audio a partire da una scena scritta o da un’immagine iniziale. Supporta output di 1–15 secondi, inquadrature orizzontali e verticali e parlato con sincronizzazione labiale. Scegli direttamente 480p o 720p, oppure un output 1080p ingrandito da 720p; i controlli avanzati di riferimenti e fotogrammi appartengono alla versione 1.5 completa.

Informazioni sul modello

Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.

Grok Imagine Video 1.5 Lite è l’edizione semplificata di generazione della famiglia video Grok Imagine. Il produttore la consiglia per lavori semplici di generazione di video da testo o da immagini. Una scena scritta può diventare un breve clip, oppure un’immagine fissa fornita può fungere da fotogramma iniziale di un’inquadratura animata. L’output comprende audio generato e questa edizione supporta il parlato con sincronizzazione labiale. Tra i risultati utili figurano un breve movimento di prodotto, un’inquadratura d’ambientazione evocativa o un semplice momento in cui un personaggio parla.

Per la generazione di video da testo, descrivi che cosa è visibile, che cosa accade durante l’inquadratura e come la camera deve osservarlo. Includi illuminazione, ritmo e suoni pertinenti. Il produttore spiega che Lite crea prima un’immagine dal prompt e poi la anima; quell’immagine fissa intermedia non viene restituita come risorsa separata. Nella preparazione pratica, assegna al breve clip un evento chiaro e spazio sufficiente perché si svolga. Un’ampia ambientazione esterna, un dettaglio di prodotto ravvicinato e un ritratto parlato richiedono indicazioni diverse di composizione e movimento.

Per esempio, un brief può richiedere un lento avvicinamento a una tazza di ceramica su un tranquillo tavolo da colazione mentre sale il vapore, con luce mattutina morbida e un discreto ambiente sonoro della stanza. Il risultato importante da controllare è che la tazza resti riconoscibile, il vapore si muova naturalmente e la camera segua la direzione prevista. Mantieni semplice il movimento di questo esempio quando valuti l’inquadratura. Se un personaggio parla, includi la battuta desiderata e una breve descrizione dell’interpretazione, poi controlla le parole e il movimento visibile della bocca nel risultato.

Per la generazione di video da immagini, l’immagine definisce il primo fotogramma e il prompt descrive ciò che accade dopo. Scegli un’immagine iniziale con il soggetto, l’inquadratura e i dettagli visivi desiderati già presenti. Dai istruzioni di movimento adatte alla composizione esistente, come una piccola rotazione della testa, un movimento di camera delicato o vento che muove un tessuto. L’output segue il rapporto d’aspetto dell’immagine; l’impostazione separata del rapporto d’aspetto viene ignorata in questa modalità. Prepara in anticipo un ritaglio verticale quando il clip finale richiede un’inquadratura verticale.

La durata di output documentata è di 1–15 secondi, con otto secondi come valore predefinito. La generazione da testo offre composizioni quadrate, orizzontali, verticali e più larghe, tra cui 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 e 5:2. Decidi come verrà usata l’inquadratura prima di sceglierne la composizione. Un clip verticale per i social può richiedere spazio per aggiungere didascalie in seguito, mentre un inserto orizzontale può necessitare di spazio intorno al soggetto per agevolare il montaggio. Adatta l’azione richiesta alla durata del clip invece di comprimere una lunga sequenza in una breve inquadratura.

Lite offre output a 480p e 720p, più un’opzione 1080p ottenuta ingrandendo il 720p. La distinzione conta nella preparazione di materiali sensibili ai dettagli: un fotogramma di uscita più grande non significa che questa edizione renderizzi la scena nativamente a 1080p. Controlla scritte piccole, bordi dei prodotti e volti alle dimensioni di visualizzazione previste. I video generati includono audio per impostazione predefinita e la configurazione di generazione del produttore consente anche un risultato muto. Specifica l’intento sonoro con la stessa cura dell’azione visibile quando il clip verrà usato con la traccia generata.

La generazione è asincrona nell’interfaccia documentata del produttore. Un identificatore di richiesta segue il lavoro mentre è in attesa; una risposta completata fornisce l’indirizzo del video e la durata. L’esempio completato della guida rimanda a un clip MP4 e spiega che gli indirizzi di output sono temporanei. Conserva il risultato completato quando prepari un montaggio, insieme al prompt, all’immagine sorgente e alle impostazioni scelte. Un lavoro inviato resta una fase di elaborazione; il risultato di produzione utile è il clip riproducibile con le immagini e il suono richiesti.

La scelta dell’edizione dipende dai controlli necessari per l’inquadratura. Grok Imagine Video 1.5 completo aggiunge riferimenti a più immagini, riferimenti vocali selezionati, primi o ultimi fotogrammi esatti e fotogrammi intermedi fissati, e genera video da testo o immagini a 1080p nativi. Lite si concentra su un prompt o una sola immagine iniziale. L’edizione classica di Grok Imagine Video offre flussi di modifica ed estensione video. Queste distinzioni aiutano a scegliere un modello per i materiali già disponibili invece di trattare ogni membro della famiglia come lo stesso generatore.

Controlla l’inquadratura completata per la continuità del soggetto, la plausibilità del movimento, la composizione e il suono richiesto. In presenza di dialogo, esamina sia le parole sia la loro sincronizzazione con il personaggio. Quando prepari più clip per una sequenza, conserva la descrizione pertinente del soggetto o il visual iniziale in ogni brief e valuta i raccordi nel montaggio. Un’inquadratura breve ben specificata è più facile da diagnosticare: il controllo può identificare se il cambiamento successivo riguarda l’immagine sorgente, l’azione, la camera o la battuta.

Ailoot Ultra · Video POST /v1/videos x-ai/grok-imagine-video-1.5-lite

x-ai/grok-imagine-video-1.5-lite

SpaceXAI /x-ai/grok-imagine-video-1.5-lite

Introduzione

Grok Imagine Video 1.5 Lite genera brevi clip con audio a partire da una scena scritta o da un’immagine iniziale. Supporta output di 1–15 secondi, inquadrature orizzontali e verticali e parlato con sincronizzazione labiale. Scegli direttamente 480p o 720p, oppure un output 1080p ingrandito da 720p; i controlli avanzati di riferimenti e fotogrammi appartengono alla versione 1.5 completa.

Input accettati
Testo · Immagini
Risultati
Video

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Video POST /v1/videos
Tipi di input
text, image
Tipi di output
video
Formato di output
byte MP4 originali; nessuna normalizzazione o transcodifica
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
x-ai/grok-imagine-video-1.5-lite
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limitiPredefinito—
CampodurationTipointegerRequisitoObbligatorioValori e limiti
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Minimo: 1
Massimo: 600
Predefinito—
CamporesolutionTipostringRequisitoFacoltativoValori e limiti
480p, 720p, 1080p
Predefinito—
Campoaspect_ratioTipostringRequisitoFacoltativoValori e limiti
16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3
Predefinito—
Campogenerate_audioTipobooleanRequisitoFacoltativoValori e limiti
false
Predefinito—
Campoframe_imagesTipoarrayRequisitoFacoltativoValori e limiti
Numero minimo di elementi: 1
Numero massimo di elementi: 1
Contenuto in input: Array di oggetti fotogramma. Ogni oggetto contiene type=image_url, image_url con url e frame_type. Usa un URL HTTPS dell'immagine e imposta frame_type su first_frame. Ogni ruolo del fotogramma compare al massimo una volta.
Chiavi esatte: type, image_url, frame_type
Condizioni: Queste chiavi descrivono ogni oggetto fotogramma; image_url contiene solo url. Ometti frame_images per una richiesta di solo testo.
Predefinito—
Campoinput_referencesTipoarrayRequisitoFacoltativoValori e limitiPredefinito—
Campocallback_urlTipostringRequisitoFacoltativoValori e limiti
Schema: ^https://
Predefinito—
Camposession_idTipostringRequisitoFacoltativoValori e limitiPredefinito—
CampotraceTipoobjectRequisitoFacoltativoValori e limitiPredefinito—
CampouserTipostringRequisitoFacoltativoValori e limitiPredefinito—
Combinazioni di materiali in input

Da testo a video · Un prompt scritto. · Obbligatorio: model, prompt, duration

Fornisci il prompt come testo e la durata in secondi interi. Scegli una risoluzione supportata e, se necessario, un rapporto d'aspetto.

model: Tipo: string · x-ai/grok-imagine-video-1.5-lite

prompt: Tipo: string · Numero massimo di byte UTF-8: 10.000 · Sono richiesti caratteri diversi dagli spazi: Sì

Da immagine a video · Un prompt scritto e un'immagine del primo fotogramma. · Obbligatorio: model, prompt, duration, frame_images

frame_images è un array. Ogni oggetto fotogramma contiene type, image_url e frame_type; image_url contiene url. Imposta type su image_url. Usa first_frame. Ogni ruolo del fotogramma può comparire al massimo una volta. Fornisci un URL HTTPS pubblico dell'immagine per ogni fotogramma. Scegli una risoluzione supportata e, se necessario, un rapporto d'aspetto.

Chiavi esatte: type, image_url, frame_type

model: Tipo: string · x-ai/grok-imagine-video-1.5-lite

prompt: Tipo: string · Numero massimo di byte UTF-8: 10.000 · Sono richiesti caratteri diversi dagli spazi: Sì

Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, prompt, duration
Parametromaterial_typesContrattotext, image
Parametroadditional_propertiesContrattofalse
Parametrooptional_controlsContrattoresolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user

Ciclo di vita: submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

Tariffe

Calcolo del costo finale

Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe stimate per il confronto

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneListino delle tariffeQuantità previstaUnità di fatturazioneCondizioni di fatturazioneCosto
ConfigurazioneTariffe base dei tokenListino delle tariffeTariffa baseQuantità prevista—Unità di fatturazione—Condizioni di fatturazione—Costo
Input · Token in input · Stima solo a fini di confronto — / 1K token
Output · Token in output · Stima solo a fini di confronto — / 1K token
Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token
ConfigurazioneImmagine in ingressoListino delle tariffe—Quantità prevista—Unità di fatturazioneper immagineCondizioni di fatturazioneIn questa chiave tariffaria non è dichiarata alcuna condizione aggiuntiva.Costo
Input · Immagine in ingresso · Stima solo a fini di confronto $0.02 per immagine
ConfigurazionePrezzo del videoListino delle tariffe—Quantità prevista—Unità di fatturazioneper secondo di videoCondizioni di fatturazioneresolution: 1080pCosto
Output · Prezzo del video · Stima solo a fini di confronto $0.28 per secondo di video
ConfigurazionePrezzo del videoListino delle tariffe—Quantità prevista—Unità di fatturazioneper secondo di videoCondizioni di fatturazioneresolution: 480pCosto
Output · Prezzo del video · Stima solo a fini di confronto $0.04 per secondo di video
ConfigurazionePrezzo del videoListino delle tariffe—Quantità prevista—Unità di fatturazioneper secondo di videoCondizioni di fatturazioneresolution: 720pCosto
Output · Prezzo del video · Stima solo a fini di confronto $0.06 per secondo di video
ConfigurazioneCosto stimato della generazioneListino delle tariffe—Quantità previstastima per una generazioneUnità di fatturazione—Condizioni di fatturazione—Costo
Output · Costo di generazione stimato · Stima solo a fini di confronto $0.04 stima prima della generazione

Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata.

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Dettagli della tariffa di riferimento

I listini di riferimento del modello non modificano la selezione del metodo, i preventivi o gli addebiti. Gli addebiti attivi usano le tariffe del metodo Ailoot selezionato.

Riferimenti tariffari delle configurazioni video

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneCondizioni di fatturazioneCosto
ConfigurazioneImmagine in ingressoCondizioni di fatturazioneIn questa chiave tariffaria non è dichiarata alcuna condizione aggiuntiva.Costo
Input · Immagine in ingresso $0.02 per immagine

Riferimento di prezzo pubblicato per la configurazione mostrata. Gli addebiti finali seguono la configurazione effettivamente fatturata.

ConfigurazionePrezzo del videoCondizioni di fatturazioneresolution: 480pCosto
Output · Prezzo del video $0.04 per secondo di video

Riferimento di prezzo pubblicato per la configurazione mostrata. Gli addebiti finali seguono la configurazione effettivamente fatturata.

ConfigurazionePrezzo del videoCondizioni di fatturazioneresolution: 720pCosto
Output · Prezzo del video $0.06 per secondo di video

Riferimento di prezzo pubblicato per la configurazione mostrata. Gli addebiti finali seguono la configurazione effettivamente fatturata.

ConfigurazionePrezzo del videoCondizioni di fatturazioneresolution: 1080pCosto
Output · Prezzo del video $0.28 per secondo di video

Riferimento di prezzo pubblicato per la configurazione mostrata. Gli addebiti finali seguono la configurazione effettivamente fatturata.

Esempi di richieste

Ailoot Ultra · Video

curl · crea un video
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
from pathlib import Path
Path('request.json').write_text('{"aspect_ratio":"16:9","duration":8,"model":"x-ai/grok-imagine-video-1.5-lite","prompt":"A serene mountain landscape at sunset","resolution":"720p"}', encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT

Ricevi e salva i risultati

Ailoot Ultra · Video

URL firmati di contenuti di tua proprietà

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Verifica lo stato dell’attività
GET stato dell’operazione originale
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Altre letture di contenuto
Salva ogni output completato di tua proprietà
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
    urls.append((str(i),u))
for label,path in urls:
    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
    target=Path('owned-'+label+'.bin')
    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Conserva tutti i risultati completati

Salva ogni video completato o file restituito; recupera ogni URL di risorsa effettivamente restituito.

Conserva ogni risultato effettivo di tua proprietà e i metadati misurati restituiti.

Se occorre verificare la risposta originale

503 result_pending_check + id originale + X-Should-Retry:false; non ripetere mai l'operazione originale

Campi della risposta
CampoTipoSignificato
CampoindexTipointegerSignificatoPosizione di questo video nell'elenco dei risultati, con indice a partire da zero.
Campocontent_urlTipostringSignificatoURL HTTPS firmato per il download di questo video completato.
Camposha256Tipostring | nullSignificatoDigest SHA-256 dei byte video originali; null se non disponibile.
Camposize_bytesTipointeger | nullSignificatoDimensione del file video originale in byte; null se non disponibile.
Campoduration_msTipointeger | nullSignificatoDurata misurata del video in millisecondi; null se non disponibile.
CampowidthTipointeger | nullSignificatoLarghezza del video in pixel; null se non disponibile.
CampoheightTipointeger | nullSignificatoAltezza del video in pixel; null se non disponibile.
Campovideo_codecTipostring | nullSignificatoIdentificatore del codec video; null se non registrato.
Campohas_audioTipoboolean | nullSignificatoIndica se il video contiene una traccia audio; null se non misurato.
Campoaudio_codecTipostring | nullSignificatoIdentificatore del codec audio; null quando non è registrato alcun identificatore.
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta404 · not_found_errorCondizioneL'accesso al video non è disponibile oppure questo ID video non è stato trovato.Passaggio successivoVerifica l'accesso al video. Per un video esistente, usa l'ID pubblico originale e la stessa chiave API.
Risposta401 · authentication_errorCondizioneLa chiave API non corrisponde all'account autenticato.Passaggio successivoVerifica la chiave API e l'accesso all'account prima dell'invio.
Risposta400 · invalid_request_errorCondizioneNon è stato possibile leggere la richiesta oppure l'indice di download non è valido.Passaggio successivoCorreggi il corpo della richiesta. Per un download, scegli un indice di uscita restituito dall'attività originale.
Risposta422 · price_unavailableCondizioneNon è possibile determinare il prezzo della configurazione video selezionata.Passaggio successivoScegli una configurazione video supportata e completa le opzioni obbligatorie prima di inviare una richiesta corretta.
Risposta422 · invalid_request_errorCondizioneUn input video o l'attività originale di continuazione non è valido.Passaggio successivoUsa input HTTPS validi. Per la continuazione, usa l'ID video pubblico del tuo originale completato con la stessa chiave API.
Risposta402 · billing_errorCondizioneIl saldo disponibile o i limiti non consentono di riservare l'importo.Passaggio successivoControlla il saldo disponibile e i limiti prima di inviare una nuova richiesta.
Risposta503 · server_errorCondizioneLa verifica video, l’archiviazione o l’accesso al servizio sono temporaneamente indisponibili.Passaggio successivoAttendi che il servizio sia disponibile. Se hai già un ID video, verifica quell'attività originale invece di creare un'altra generazione.
Risposta503 · result_pending_checkCondizioneIl risultato video originale e l'addebito devono essere verificati.Passaggio successivoConserva l'ID video restituito e verifica quell'attività. Non inviare una richiesta di generazione sostitutiva mentre la verifica è in corso.
Risposta503 · owned_result_unavailableCondizioneIl download del video esistente è temporaneamente indisponibile.Passaggio successivoVerifica in seguito la stessa attività video e scarica il risultato esistente. Una nuova generazione crea un'operazione separata.
Risposta409 · video_not_readyCondizioneIl contenuto video non è stato pubblicato.Passaggio successivoVerifica lo stato dell'attività originale. Scarica dopo che segnala completed; se segnala failed, segui l'avviso di verifica dell'addebito.

Alias

Alias del modello

Ailoot Ultra x-ai/grok-imagine-video-1.5-lite

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

x-ai/grok-imagine-video-1.5-lite

FAQ · SpaceXAI: Grok Imagine Video 1.5 Lite
Quali input e risultati sono disponibili?

POST /v1/videos · x-ai/grok-imagine-video-1.5-lite: text, image → video

Quali campi usa la richiesta?

POST /v1/videos · x-ai/grok-imagine-video-1.5-lite: model, prompt, duration, resolution, aspect_ratio, generate_audio, frame_images, input_references, callback_url, session_id, trace, user

Quali limiti si applicano?

POST /v1/videos · x-ai/grok-imagine-video-1.5-lite: duration.minimum: 1; duration.maximum: 600; frame_images.max_items: 1; frame_images.min_items: 1

Maggiori dettagli

Collega Ailoot a Claude Code, OpenCode, Hermes o alla tua applicazione.

L’azienda e il suo portafoglio di progetti

L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.

Acquista token con uno sconto.

Sconto con abbonamento per lavoro regolare. Codici fino al 50% sull’acquisto di token.

Abbonamento
Scegli un piano scontato per richieste regolari.
Codice fino al 50%
Inserisci il codice all’acquisto. Il prezzo si aggiorna secondo la promozione.
Spese nella cronologia
Modello, token e importo sono salvati per ogni richiesta.

Scegli abbonamento · Consulta prezzi dei modelli

Collega l’API al prodotto che vendi.

SaaS, app e bot secondo offerta e accordo di licenza Ailoot. Per rivendere, richiedi una licenza reseller.

Applicazione commerciale
Integra generazione di testo, immagini, video e suono nelle funzioni a pagamento.
Licenza reseller
Invia descrizione del progetto e schema di accesso. Richiedi condizioni scritte per uso e rivendita.
Documenti sul sito
Offerta, accordo di licenza e politica sui dati sono disponibili prima della connessione.

Richiedi licenza reseller · Offerta e accordo di licenza