Envoyez les sources que vous avez déjà, récupérez un moteur en retour. POST /jobs/provisioning prend un nom pour un nouveau moteur et jusqu'à 10 sources — liens à explorer ou texte brut — puis renvoie 202 Accepted avec l'ID du moteur. Vous n'avez pas à attendre que l'IA ait fini de lire votre contenu : le moteur existe dès que l'appel renvoie, et sa configuration s'applique au fil de l'exécution de la tâche.
POST /jobs/provisioningCette page présente l'appel de création : ses paramètres, le format de la requête et la réponse 202. Vous découvrez le provisionnement asynchrone ? Commencez par la Vue d'ensemble de l'API de provisionnement asynchrone pour bien comprendre le modèle. Ce qui fait une bonne source est expliqué sur une page dédiée — Types de sources — et ce que l'IA en extrait se trouve sur Ce que l'IA extrait.
Authentification
Transmettez votre clé API dans l'en-tête X-API-Key. Les clés sont limitées à l'organisation et donnent accès à tous les moteurs de l'organisation. Consultez Authentification pour en savoir plus.
Paramètres#
Seul engine.name est obligatoire. Tout le reste façonne ce que le moteur apprend — ou, si vous ne fournissez rien d'autre, vous laisse avec un moteur vierge en configuration par défaut.
| Paramètre | Type | Description |
|---|---|---|
engine.name | string | Nom du nouveau moteur de localisation. |
engine.description | string (facultatif) | Description libre du moteur. |
locales | string[] (facultatif) | langues cibles BCP-47 à configurer, par ex. ["es", "ja", "de"]. |
sources | array (facultatif) | Jusqu'à 10 sources à analyser. Chacune est soit une link (une URL que la plateforme explore), soit un content (texte brut ou markdown). Voir Types de sources. |
callbackUrl | string (facultatif) | URL de webhook HTTPS pour recevoir le résultat final. HTTPS uniquement — les URL de rappel HTTP sont rejetées. Voir Livraison des webhooks. |
Requête#
Une source est un objet { type, payload }. Faites pointer les sources link vers des pages avec un vrai contexte — directives de marque, guides de style, documentation produit — et utilisez content pour les règles de terminologie et de ton que vous pouvez coller directement. La requête ci-dessous combine les deux : deux pages à explorer et un bloc de règles explicites.
const response = await fetch("https://api.lingo.dev/jobs/provisioning", {
method: "POST",
headers: {
"X-API-Key": process.env.LINGO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
engine: {
name: "Acme Corp Engine",
description: "Production localization engine for acme.com",
},
locales: ["de", "fr", "ja", "es"],
sources: [
{ type: "link", payload: "https://acme.com/brand-guidelines" },
{ type: "link", payload: "https://acme.com/docs/style-guide" },
{
type: "content",
payload:
"Brand name 'Acme' is never translated. Use formal tone in German (Sie-form). Product names: AcmeFlow, AcmeSync, AcmeVault - always keep in English.",
},
],
callbackUrl: "https://your-app.com/webhooks/provisioning",
}),
});
const { jobId, engineId, status } = await response.json();
// 202 back right away.
// status: "in_progress" – the AI is reading your sources.
console.log(engineId); // "eng_X1y2Z3a4B5c6D7e8" – usable right nowRéponse (202 Accepted)#
L'appel renvoie sans attendre l'exploration ni l'analyse : il vous donne un ID de tâche à suivre et un ID de moteur déjà actif.
{
"jobId": "pjb_A1b2C3d4E5f6G7h8",
"engineId": "eng_X1y2Z3a4B5c6D7e8",
"status": "in_progress"
}| Champ | Description |
|---|---|
jobId | ID de tâche de provisionnement (préfixe pjb_). Suivez la tâche en ouvrant une connexion WebSocket pour voir la progression en direct, ou recevez le résultat sur votre webhook lorsqu'elle se termine. |
engineId | ID du nouveau moteur (préfixe eng_). Utilisable immédiatement — la configuration qu'en extrait l'IA lui est appliquée au fil de l'exécution de la tâche. |
status | in_progress lorsque vous fournissez des sources ; completed lorsque vous n'en fournissez pas (voir ci-dessous). |
Le détail qui rend cet appel asynchrone vraiment intéressant, plutôt qu'un simple temps d'attente : engineId revient dans le même 202 et pointe immédiatement vers un vrai moteur. Vous pouvez le stocker, lui envoyer une requête de Localize synchrone ou l'intégrer à votre application avant même que l'IA ait fini de lire une seule source. À mesure que les voix de marque, les éléments de glossaire et les instructions sont extraits, la plateforme les applique à ce même moteur — le moteur existe avant sa configuration. Pour savoir exactement ce que la tâche a créé, consultez Ce que l'IA extrait.
Pas de sources ? Vous obtenez un moteur, pas de délai d'attente.
Omettez sources et il n'y a rien à explorer : le moteur est donc créé avec la configuration de modèle par défaut et renvoyé avec status: "completed" dans la même réponse. C'est la voie rapide si vous voulez un moteur vide à configurer vous-même — un appel, un engineId prêt à l'emploi, aucune tâche en arrière-plan à suivre.
