Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Référence

Lister, lire et créer des projets avec l'API Host. Champs de l'objet projet et erreurs.

Un projet correspond à un site. Il a ses variables, ses domaines et son historique de déploiements.

GET /v9/projects

Liste les projets de l’organisation. Avec une clé de projet, la liste ne contient que ce projet. La liste compte 100 projets au plus.

curl https://api.host.hgdc.ch/v9/projects \
-H "Authorization: Bearer $VERCEL_TOKEN"

Réponse 200 :

{
"projects": [
{
"id": "j97d3k2m8x1q4p6s7t9v0w2y5z",
"name": "site-atelier",
"accountId": "k57a1b2c3d4e5f6g7h8j9k0m1n",
"framework": "astro",
"rootDirectory": null,
"buildCommand": null,
"installCommand": null,
"outputDirectory": null,
"nodeVersion": "24.x",
"createdAt": 1760259600000,
"updatedAt": 1760259600000
}
],
"pagination": { "count": 1, "next": null, "prev": null }
}

Le même endpoint répond aussi sous /v10/projects.

GET /v9/projects/:idOrName

Lit un projet, par son identifiant ou son nom, sans tenir compte de la casse.

curl https://api.host.hgdc.ch/v9/projects/site-atelier \
-H "Authorization: Bearer $VERCEL_TOKEN"

Réponse 200 : l’objet projet, décrit ci-dessous. Les routes /v9 et /v10 renvoient la même réponse.

ErreurCodeCause
404not_foundAucun projet de ce nom dans l’organisation, ou projet hors de la portée de la clé

POST /v11/projects

Crée un projet. Tu peux aussi t’en passer : le premier déploiement sur un nom inconnu crée le projet.

curl -X POST https://api.host.hgdc.ch/v11/projects \
-H "Authorization: Bearer $VERCEL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"site-atelier","framework":"astro"}'
ChampTypeRequisDescription
namestringOuiNom du projet, 100 caractères au plus. Il devient le nom dans l’URL, en minuscules
frameworkstring ou nullNonnextjs, astro, vite, sveltekit, nuxt, tanstack-start ou react-router. Une autre valeur, ou null, enregistre un site sans framework

Réponse 200 : l’objet projet créé.

ErreurCodeCause
400bad_requestNom absent ou trop long
403forbiddenLa clé est limitée à un projet : elle ne crée rien
409conflictUn projet porte déjà ce nom

L’objet projet

ChampTypeDescription
idstringIdentifiant du projet. C’est la valeur de VERCEL_PROJECT_ID
namestringNom du projet, dans l’URL de la console
accountIdstringIdentifiant de l’organisation propriétaire
frameworkstring ou nullFramework enregistré, ou null pour un site sans framework
rootDirectorystring ou nullDossier de l’app dans le dépôt, pour un monorepo
buildCommandstring ou nullCommande de build imposée. null : celle détectée par vercel build
installCommandstring ou nullCommande d’installation imposée
outputDirectorystring ou nullDossier de sortie imposé
nodeVersion"22.x" ou "24.x"Version de Node.js du build
createdAtnumberDate de création, en millisecondes depuis l’époque Unix
updatedAtnumberMême valeur que createdAt
linkobjectPrésent seulement pour un projet relié à GitHub : type (github), repo (propriétaire/dépôt) et productionBranch
aliasobject[]Adresse de production du projet : domain (<projet>.hgdc.cloud), target (PRODUCTION), environment (production), createdAt, deployment (null). Les domaines personnalisés n’y figurent pas
targets.productionobjectPrésent une fois une production en ligne : le déploiement servi, avec id, url, alias (["<projet>.hgdc.cloud"]), aliasAssigned (moment de la mise en ligne), readyState, createdAt, readyAt et meta. targets vaut {} avant la première production

Pour un projet dont le framework n’est pas reconnu, framework vaut null.

Voir aussi