models

Alibaba: HappyHorse 1.0

Markdown · JSON

Alibaba: HappyHorse 1.0

Alibaba HappyHorse 1.0 crée de courtes vidéos avec du son à partir de texte, d’une première image ou d’un maximum de neuf images de référence. Ses modes de génération produisent des MP4 de 3 à 15 secondes à 24 images par seconde en 720p ou 1080p. Un profil 1.0 de modification vidéo nommé séparément révise les séquences fournies, avec des références visuelles facultatives et ses propres limites.

À propos du modèle

Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.

Alibaba HappyHorse 1.0 est une édition de création vidéo avec des profils nommés de génération à partir de texte, d’une première image et de références. Le producteur présente les mouvements physiquement convaincants, la compréhension sémantique et la synchronisation audiovisuelle comme ses priorités créatives. Son profil de références peut utiliser jusqu’à neuf images pour guider les sujets et les scènes. Le livrable utile est un court clip avec du son : une nouvelle scène, une animation à partir d’une image fixe d’ouverture préparée ou un plan de personnage ou de produit guidé par des références.

Pour une scène à partir de texte, définissez le sujet, le décor, l’action et la caméra, avec le son souhaité. Pour une scène filmée sur une table, montrez une petite maquette de voilier qui avance dans un bac d’eau peu profond pendant que la caméra la suit à hauteur de table. La revue peut alors vérifier la forme du bateau, l’échelle de la scène, le mouvement de l’eau et le rapport entre mouvement et son. Une action ciblée est plus facile à évaluer qu’une séquence dense dont le moment essentiel n’est pas clairement indiqué.

Pour la génération à partir d’une première image, utilisez une image fixe dont le sujet et la composition correspondent déjà à l’ouverture souhaitée. Décrivez le mouvement qui suit et le trajet de la caméra. Le profil d’image 1.0 précis du producteur accepte des entrées texte et image, tandis que son tableau de génération l’identifie comme de la vidéo à partir d’une première image. Préparez le recadrage et les détails visibles du produit ou du personnage avant de générer le plan. Vérifiez que ces détails restent reconnaissables pendant le mouvement au lieu de juger uniquement l’image d’ouverture.

La génération à partir de références combine les personnes, produits, styles ou décors des sources visuelles dans une scène nouvellement décrite. La page précise du modèle de références 1.0 documente jusqu’à neuf images. Attribuez-leur leurs rôles dans le brief et décrivez la manière dont le sujet doit agir dans la scène. Une présentation de produit peut distinguer la référence de l’article de celle du lieu environnant ou du style visuel. L’accent mis par le producteur sur la stabilité est un objectif de revue : comparez le sujet, ses inscriptions et son emplacement aux références réelles sur toute la durée du clip.

La famille 1.0 possède aussi un profil de modification vidéo nommé séparément, pour changer le style et apporter des révisions locales ou plus larges aux séquences existantes. Ce profil utilise exactement une vidéo source et de zéro à cinq images de référence, plutôt que la configuration de génération à neuf images de référence. Précisez ce qui doit changer et ce qui doit rester, par exemple changer un vêtement tout en conservant la personne, le mouvement et l’arrière-plan. Le résultat modifié doit être comparé à tout le clip source, et pas seulement à une image montrant le remplacement souhaité.

Le guide précis de modification 1.0 accepte des séquences sources MP4 ou MOV, recommande H.264 et autorise des durées sources de trois à soixante secondes. Il indique un maximum de 100 Mo, un côté court d’au moins 360 pixels, un côté long ne dépassant pas 4 096 pixels, des proportions comprises entre 1:2.5 et 2.5:1 et une fréquence d’entrée de huit à soixante images par seconde. Les vidéos modifiées durent de trois à quinze secondes : les sources de quinze secondes ou moins conservent leur durée, tandis que les sources plus longues n’utilisent que leurs quinze premières secondes. Découpez le passage souhaité avant de préparer la modification si une action importante se produit plus tard dans la source.

Les images de référence facultatives du profil de modification ont leur propre limite de vingt Mo et doivent utiliser JPEG/JPG, PNG ou WEBP, avec les deux dimensions d’au moins 300 pixels et la même plage de proportions documentée. Le guide distingue aussi le traitement automatique du son de la conservation du son original. Préparez la référence qui identifie le changement souhaité et choisissez la manière dont le son source doit accompagner cette modification. Il s’agit de contrôles spécifiques au profil de modification 1.0, distincts des modes de génération de nouvelles scènes.

Pour les modes de génération 1.0, le tableau précis du producteur indique des sorties en 720p ou 1080p, d’une durée de trois à quinze secondes, en MP4 à 24 images par seconde et avec du son. Le profil de modification produit aussi des vidéos en 720p ou 1080p dans sa limite de quinze secondes. Le processus de tâches documenté renvoie d’abord un identifiant de traitement, puis l’adresse de la vidéo terminée après réussite ; les adresses des résultats sont valides pendant vingt-quatre heures. Conservez le clip lui-même, le prompt et les références lorsque vous préparez un montage de production et examinez ensemble le cadrage, la durée et le son renvoyés.

HappyHorse 1.1 ajoute une option de génération 480p et des améliorations nommées des détails visuels, du mouvement et de la cohérence entre clips. Ces affirmations de génération ultérieures ne constituent pas une garantie pour la révision fixe du profil 1.0. La préparation utile en 1.0 suit le mode choisi et ses éléments sources réels. Vérifiez l’identité, les contacts, la géométrie des objets, le texte et le son, puis rendez la correction suivante concrète. Pour un clip modifié, vérifiez aussi que les détails originaux importants en dehors du changement demandé restent adaptés à la scène prévue.

Ailoot Ultra · Vidéo POST /v1/videos alibaba/happyhorse-1.0

alibaba/happyhorse-1.0

Alibaba /alibaba/happyhorse-1.0

Premiers pas

Alibaba HappyHorse 1.0 crée de courtes vidéos avec du son à partir de texte, d’une première image ou d’un maximum de neuf images de référence. Ses modes de génération produisent des MP4 de 3 à 15 secondes à 24 images par seconde en 720p ou 1080p. Un profil 1.0 de modification vidéo nommé séparément révise les séquences fournies, avec des références visuelles facultatives et ses propres limites.

Entrées acceptées
Texte · Images
Résultats
Vidéo

Disponible dans Ailoot · entrées et méthodes

Ailoot Ultra · Vidéo POST /v1/videos
Entrée
text, image
Sortie
video
Format de sortie
Octets MP4 d’origine ; sans normalisation ni transcodage
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
alibaba/happyhorse-1.0
Par défaut—
ChamppromptTypestringExigenceObligatoireValeurs et limitesPar défaut—
ChampdurationTypeintegerExigenceObligatoireValeurs et limites
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Minimum: 1
Maximum: 600
Par défaut—
ChampresolutionTypestringExigenceFacultatifValeurs et limites
720p, 1080p
Par défaut—
Champaspect_ratioTypestringExigenceFacultatifValeurs et limites
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21
Par défaut—
Champgenerate_audioTypebooleanExigenceFacultatifValeurs et limites
false
Par défaut—
Champframe_imagesTypearrayExigenceFacultatifValeurs et limites
Nombre minimal d’éléments: 1
Nombre maximal d’éléments: 1
Contenu en entrée: Tableau d’objets d’image. Chaque objet contient type=image_url, image_url contenant url et frame_type. Utilisez une URL d’image HTTPS et définissez frame_type sur first_frame. Chaque rôle d’image apparaît au maximum une fois.
Clés exactes: type, image_url, frame_type
Conditions: Ces clés décrivent chaque objet d’image ; image_url contient uniquement url. Omettez frame_images pour une requête contenant uniquement du texte.
Par défaut—
Champinput_referencesTypearrayExigenceFacultatifValeurs et limitesPar défaut—
ChampsizeTypestringExigenceFacultatifValeurs et limites
1280x720, 720x1280, 720x720, 960x720, 720x960, 1680x720, 720x1680, 1920x1080, 1080x1920, 1080x1080, 1440x1080, 1080x1440, 2520x1080, 1080x2520
Motif: ^[1-9][0-9]*x[1-9][0-9]*$
Par défaut—
ChampseedTypeintegerExigenceFacultatifValeurs et limites
Minimum: -9'223'372'036'854'775'808
Maximum: 9'223'372'036'854'775'807
Par défaut—
Champcallback_urlTypestringExigenceFacultatifValeurs et limites
Motif: ^https://
Par défaut—
Champsession_idTypestringExigenceFacultatifValeurs et limitesPar défaut—
ChamptraceTypeobjectExigenceFacultatifValeurs et limitesPar défaut—
ChampuserTypestringExigenceFacultatifValeurs et limitesPar défaut—
Combinaisons d’éléments d’entrée

Texte vers vidéo · Une consigne écrite. · Obligatoire : model, prompt, duration

Fournissez la consigne sous forme de texte et la durée en secondes entières. Choisissez une résolution prise en charge ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.

model: Type : string · alibaba/happyhorse-1.0

prompt: Type : string · Nombre maximal d’octets UTF-8: 10'000 · Caractères autres que des espaces requis: Oui

Image vers vidéo · Une consigne écrite et une image de départ. · Obligatoire : model, prompt, duration, frame_images

frame_images est un tableau. Chaque objet d’image comprend type, image_url et frame_type ; image_url contient url. Définissez type sur image_url. Utilisez first_frame. Chaque rôle d’image apparaît au maximum une fois. Fournissez une URL d’image HTTPS publique pour chaque image. Choisissez une résolution prise en charge ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.

Clés exactes : type, image_url, frame_type

model: Type : string · alibaba/happyhorse-1.0

prompt: Type : string · Nombre maximal d’octets UTF-8: 10'000 · Caractères autres que des espaces requis: Oui

Reference to video · Une consigne écrite et des images de référence prises en charge. · Obligatoire : model, prompt, duration, input_references

input_references est un tableau d’objets. Définissez type sur image_url et utilisez le champ correspondant contenant url. Utilisez des liens HTTPS publics. Omettez frame_images pour sélectionner le mode de référence. Choisissez une résolution prise en charge ; ajoutez un rapport largeur/hauteur ou utilisez une taille répertoriée.

model: Type : string · alibaba/happyhorse-1.0

prompt: Type : string · Nombre maximal d’octets UTF-8: 10'000 · Caractères autres que des espaces requis: Oui

Paramètres et cycle de vie de la méthode
ParamètreContrat
Paramètrecontent_typeContratapplication/json
ParamètrerequiredContratmodel, prompt, duration
Paramètrematerial_typesContrattext, image
Paramètreadditional_propertiesContratfalse
Paramètreoptional_controlsContratresolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user

Cycle de vie : submit_once_poll_original

GET /v1/videos/{public_id}

GET /v1/videos/{public_id}/content

Tarifs

Calcul du coût final

Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.

Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.

Mode rapide
Non précisé Lorsque le mode rapide est sélectionné
Mode Flex
Non précisé Lorsque le mode flex est sélectionné
Effort de raisonnement maximal
Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)

Tarifs estimés à des fins de comparaison

Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

ConfigurationBarème tarifaireQuantité prévisionnelleUnité de facturationConditions de facturationCoût
ConfigurationTarifs de base des jetonsBarème tarifaireTarif de baseQuantité prévisionnelle—Unité de facturation—Conditions de facturation—Coût
Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens
Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens
ConfigurationTarif vidéoBarème tarifaire—Quantité prévisionnelle—Unité de facturationpar seconde de vidéoConditions de facturationresolution: 1080pCoût
Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.3388 par seconde de vidéo
ConfigurationTarif vidéoBarème tarifaire—Quantité prévisionnelle—Unité de facturationpar seconde de vidéoConditions de facturationresolution: 720pCoût
Sortie · Tarif vidéo · Estimation à des fins de comparaison uniquement $0.1976 par seconde de vidéo
ConfigurationCoût estimé de la générationBarème tarifaire—Quantité prévisionnelleEstimation pour une générationUnité de facturation—Conditions de facturation—Coût
Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.5928 estimation avant génération

Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée.

Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →

Détails du tarif de référence

Les barèmes de référence du modèle ne modifient ni la sélection de méthode, ni les devis, ni les coûts. Les frais actifs utilisent les tarifs de la méthode Ailoot sélectionnée.

Références tarifaires des configurations vidéo

Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

ConfigurationConditions de facturationCoût
ConfigurationTarif vidéoConditions de facturationresolution: 720pCoût
Sortie · Tarif vidéo $0.1976 par seconde de vidéo

Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée.

ConfigurationTarif vidéoConditions de facturationresolution: 1080pCoût
Sortie · Tarif vidéo $0.3388 par seconde de vidéo

Tarif publié de référence pour la configuration affichée. Les frais définitifs correspondent à la configuration réellement facturée.

Exemples de requêtes

Ailoot Ultra · Vidéo

curl · créez une vidéo
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":3,"model":"alibaba/happyhorse-1.0","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

Recevoir et enregistrer les résultats

Ailoot Ultra · Vidéo

liens de contenu signés dont vous êtes propriétaire

  • GET /v1/videos/{public_id}
  • GET /v1/videos/{public_id}/content
Vérifier l’état de la tâche
GET état de l’opération d’origine
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
Autres lectures de contenu
Enregistrer chaque sortie terminée dont vous êtes propriétaire
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
Conserver tous les résultats terminés

Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.

Conservez chaque résultat réel dont vous êtes propriétaire et les métadonnées mesurées renvoyées avec celui-ci.

Si la réponse d’origine doit être vérifiée

503 result_pending_check + identifiant d’origine + X-Should-Retry:false ; ne répétez jamais l’envoi d’origine

Champs de la réponse
ChampTypeSignification
ChampindexTypeintegerSignificationPosition de cette vidéo dans la liste des résultats, avec une indexation à partir de zéro.
Champcontent_urlTypestringSignificationURL HTTPS signée de téléchargement de cette vidéo terminée.
Champsha256Typestring | nullSignificationEmpreinte SHA-256 des octets vidéo d’origine ; null si elle est indisponible.
Champsize_bytesTypeinteger | nullSignificationTaille du fichier vidéo d’origine en octets ; null si elle est indisponible.
Champduration_msTypeinteger | nullSignificationDurée mesurée de la vidéo en millisecondes ; null si elle est indisponible.
ChampwidthTypeinteger | nullSignificationLargeur de la vidéo en pixels ; null si elle est indisponible.
ChampheightTypeinteger | nullSignificationHauteur de la vidéo en pixels ; null si elle est indisponible.
Champvideo_codecTypestring | nullSignificationIdentifiant du codec vidéo ; null s’il n’a pas été enregistré.
Champhas_audioTypeboolean | nullSignificationIndique si la vidéo contient une piste audio ; null si cela n’a pas été mesuré.
Champaudio_codecTypestring | nullSignificationIdentifiant du codec audio ; null si aucun identifiant n’a été enregistré.
Erreurs et étapes suivantes
RéponseConditionÉtape suivante
Réponse404 · not_found_errorConditionL’accès à la vidéo est indisponible, ou cet identifiant vidéo est introuvable.Étape suivanteVérifiez l’accès à la vidéo. Pour une vidéo existante, utilisez son identifiant public d’origine et la même clé API.
Réponse401 · authentication_errorConditionLa clé API ne correspond pas au compte authentifié.Étape suivanteVérifiez votre clé API et l’accès au compte avant l’envoi.
Réponse400 · invalid_request_errorConditionLa requête n’a pas pu être lue, ou l’indice de téléchargement est invalide.Étape suivanteCorrigez le corps de la requête. Pour un téléchargement, choisissez un indice de sortie renvoyé par la tâche d’origine.
Réponse422 · price_unavailableConditionLa configuration vidéo sélectionnée ne peut pas être tarifée.Étape suivanteChoisissez une configuration vidéo prise en charge et renseignez toutes ses options obligatoires avant d’envoyer une demande corrigée.
Réponse422 · invalid_request_errorConditionUne entrée vidéo ou une tâche d’origine à prolonger est invalide.Étape suivanteUtilisez des entrées HTTPS valides. Pour une prolongation, utilisez l’identifiant vidéo public de votre vidéo d’origine terminée avec la même clé API.
Réponse402 · billing_errorConditionLe solde disponible ou les limites ne permettent pas de réserver le montant.Étape suivanteVérifiez votre solde disponible et vos limites avant d’envoyer une nouvelle demande.
Réponse503 · server_errorConditionLa vérification vidéo, le stockage ou l’accès au service est temporairement indisponible.Étape suivanteAttendez que le service soit disponible. Si vous avez déjà un identifiant vidéo, vérifiez cette tâche d’origine au lieu de lancer une nouvelle génération.
Réponse503 · result_pending_checkConditionLe résultat vidéo d’origine et sa facturation doivent être vérifiés.Étape suivanteConservez l’identifiant vidéo renvoyé et vérifiez cette tâche. N’envoyez pas de demande de génération de remplacement pendant sa vérification.
Réponse503 · owned_result_unavailableConditionLe téléchargement de la vidéo existante est temporairement indisponible.Étape suivanteVérifiez ultérieurement cette même tâche vidéo et téléchargez son résultat existant. Une nouvelle génération crée une opération distincte.
Réponse409 · video_not_readyConditionLe contenu vidéo n’a pas été publié.Étape suivanteVérifiez l’état de la tâche d’origine. Téléchargez le résultat lorsqu’elle indique completed ; si elle indique failed, suivez son avis de vérification de facturation.

Alias

Alias du modèle

Ailoot Ultra alibaba/happyhorse-1.0

Alias des chemins de méthode

Utilisez les chemins de méthode indiqués ci-dessus.

ID d’appel associés

alibaba/happyhorse-1.0

FAQ · Alibaba: HappyHorse 1.0
Quelles entrées et quels résultats sont disponibles ?

POST /v1/videos · alibaba/happyhorse-1.0: text, image → video

Quels champs la requête utilise-t-elle ?

POST /v1/videos · alibaba/happyhorse-1.0: model, prompt, duration, resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user

Quelles limites s’appliquent ?

POST /v1/videos · alibaba/happyhorse-1.0: duration.minimum: 1; duration.maximum: 600; frame_images.max_items: 1; frame_images.min_items: 1; seed.minimum: -9223372036854775808; seed.maximum: 9223372036854775807

Plus de détails

Connectez Ailoot à Claude Code, OpenCode, Hermes ou à votre application.

L’entreprise et son portefeuille de projets

L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.

Achetez des tokens à prix réduit.

Une remise d’abonnement pour le travail régulier. Des codes promo jusqu’à 50% sur l’achat de tokens.

Abonnement
Choisissez une offre à tarif réduit pour vos requêtes régulières.
Code promo jusqu’à 50%
Saisissez le code à l’achat. Le prix est recalculé selon la promotion en cours.
Dépenses dans l’historique
Modèle, tokens et montant sont enregistrés pour chaque requête.

Choisir un abonnement · Voir les prix des modèles

Connectez l’API au produit que vous vendez.

SaaS, applications et bots selon l’offre officielle et le contrat de licence Ailoot. Pour la revente, demandez une licence revendeur.

Application commerciale
Intégrez la génération de texte, d’images, de vidéo et de son aux fonctions payantes de votre service.
Licence revendeur
Envoyez la description du projet et le mode d’accès. Demandez des conditions écrites d’utilisation et de revente.
Documents sur le site
L’offre officielle, le contrat de licence et la politique de traitement des données sont accessibles avant connexion.

Demander une licence revendeur · Offre officielle et contrat de licence