Référence
Projets
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.
| Erreur | Code | Cause |
|---|---|---|
404 | not_found | Aucun 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"}'| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom du projet, 100 caractères au plus. Il devient le nom dans l’URL, en minuscules |
framework | string ou null | Non | nextjs, 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éé.
| Erreur | Code | Cause |
|---|---|---|
400 | bad_request | Nom absent ou trop long |
403 | forbidden | La clé est limitée à un projet : elle ne crée rien |
409 | conflict | Un projet porte déjà ce nom |
L’objet projet
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant du projet. C’est la valeur de VERCEL_PROJECT_ID |
name | string | Nom du projet, dans l’URL de la console |
accountId | string | Identifiant de l’organisation propriétaire |
framework | string ou null | Framework enregistré, ou null pour un site sans framework |
rootDirectory | string ou null | Dossier de l’app dans le dépôt, pour un monorepo |
buildCommand | string ou null | Commande de build imposée. null : celle détectée par vercel build |
installCommand | string ou null | Commande d’installation imposée |
outputDirectory | string ou null | Dossier de sortie imposé |
nodeVersion | "22.x" ou "24.x" | Version de Node.js du build |
createdAt | number | Date de création, en millisecondes depuis l’époque Unix |
updatedAt | number | Même valeur que createdAt |
link | object | Présent seulement pour un projet relié à GitHub : type (github), repo (propriétaire/dépôt) et productionBranch |
alias | object[] | 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.production | object | Pré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
- Déploiements : créer un déploiement pour ce projet.
- Erreurs : la liste des codes.
Cette page t'a aidé ?
Merci, c'est noté.