Aller au contenu

Développeurs

Projets

Projets de l'organisation visibles par la clé.

Lister les projets

get/api/v1/projects

Scope requis : projects:read

Paramètres

  • limit (query)integer

    Taille de page.

  • cursor (query)string

    Curseur opaque rendu par la page précédente (next_cursor).

  • q (query)string

    Filtre sur le nom (contient, sans casse).

Réponses

  • 200Une page de projets.Page & object

Erreurs communes :400401403429500503(détail dans la section Erreurs)

curl -sS "$SEVEUP_API/api/v1/projects" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Exemple (200)
{
  "data": [
    {
      "id": "5b0f3c3e-1d7a-4d0c-9a51-3f2b8f1e7a10",
      "name": "LNPCA — Section 1",
      "description": "Ligne nouvelle Provence Côte d'Azur",
      "space_id": "0b8a2c47-5a0e-4a7e-8f0d-0c6d2b7e9c31",
      "model_count": 197,
      "requirement_set_count": 4,
      "start_date": "2026-01-05T00:00:00Z",
      "end_date": null,
      "created_at": "2026-01-05T09:12:44Z",
      "updated_at": "2026-10-20T16:02:10Z"
    }
  ],
  "next_cursor": "eyJpZCI6IjViMGYzYzNlIn0",
  "has_more": true
}

Créer un projet

post/api/v1/projects

Scope requis : projects:write

Projet créé au nom du créateur de la clé, dans l'espace space_id (à la racine de l'organisation sinon). Un nom déjà pris dans le même espace (sans tenir compte de la casse) répond 409.

Paramètres

  • Idempotency-Key (header)string

    Clé d'idempotence, gardée 24 h par organisation.

Corps de la requêteProjectCreate

  • namestringrequis

  • descriptionstring | null

  • space_idstring (uuid) | null

    Espace de l'organisation (space_id d'un projet) ; racine si absent.

  • start_datestring (date-time) | null

  • end_datestring (date-time) | null

    Postérieure ou égale à start_date.

Réponses

  • 201Projet créé.Project
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Erreurs communes :400401403429500503(détail dans la section Erreurs)

curl -sS -X POST "$SEVEUP_API/api/v1/projects" \
  -H "Authorization: Bearer $SEVEUP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "LNPCA — Section 2",
  "description": "Ligne nouvelle Provence Côte d'\''Azur",
  "space_id": "0b8a2c47-5a0e-4a7e-8f0d-0c6d2b7e9c31",
  "start_date": "2027-01-04T00:00:00Z"
}'
Exemple (201)
{
  "id": "6c1a4d4f-2e8b-4e1d-8b62-4a3c9f2e8b21",
  "name": "LNPCA — Section 2",
  "description": "Ligne nouvelle Provence Côte d'Azur",
  "space_id": "0b8a2c47-5a0e-4a7e-8f0d-0c6d2b7e9c31",
  "space_name": "SNCF",
  "space_path": "~/SNCF",
  "model_count": 0,
  "requirement_set_count": 0,
  "start_date": "2027-01-04T00:00:00Z",
  "end_date": null,
  "created_at": "2026-11-04T09:00:00Z",
  "updated_at": "2026-11-04T09:00:00Z"
}

Lire un projet

get/api/v1/projects/{project_id}

Scope requis : projects:read

Paramètres

  • project_id (path)string (uuid)requis

    Identifiant du projet (id rendu par GET /api/v1/projects).

Réponses

  • 200Le projet.Project

Erreurs communes :401403404429500503(détail dans la section Erreurs)

curl -sS "$SEVEUP_API/api/v1/projects/$PROJECT_ID" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Exemple (200)
{
  "id": "5b0f3c3e-1d7a-4d0c-9a51-3f2b8f1e7a10",
  "name": "LNPCA — Section 1",
  "description": "Ligne nouvelle Provence Côte d'Azur",
  "space_id": "0b8a2c47-5a0e-4a7e-8f0d-0c6d2b7e9c31",
  "model_count": 197,
  "requirement_set_count": 4,
  "start_date": "2026-01-05T00:00:00Z",
  "end_date": null,
  "created_at": "2026-01-05T09:12:44Z",
  "updated_at": "2026-10-20T16:02:10Z"
}

Modifier un projet

patch/api/v1/projects/{project_id}

Scope requis : projects:write

Seuls les champs présents changent ; null vide un champ facultatif (description, dates, space_id qui range le projet à la racine). Renommer vers un nom déjà pris dans l'espace répond 409, comme un projet synchronisé depuis Trimble Connect, qui se modifie dans Trimble.

Paramètres

  • project_id (path)string (uuid)requis

    Identifiant du projet (id rendu par GET /api/v1/projects).

Corps de la requêteProjectUpdate

  • namestring

  • descriptionstring | null

  • space_idstring (uuid) | null

    null range le projet à la racine de l'organisation.

  • start_datestring (date-time) | null

  • end_datestring (date-time) | null

Réponses

  • 200Le projet modifié.Project
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Erreurs communes :400401403404429500503(détail dans la section Erreurs)

curl -sS -X PATCH "$SEVEUP_API/api/v1/projects/$PROJECT_ID" \
  -H "Authorization: Bearer $SEVEUP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "LNPCA — Section 1 (APD)",
  "end_date": "2027-06-30T00:00:00Z"
}'
Exemple (200)
{
  "id": "5b0f3c3e-1d7a-4d0c-9a51-3f2b8f1e7a10",
  "name": "LNPCA — Section 1 (APD)",
  "description": "Ligne nouvelle Provence Côte d'Azur",
  "space_id": "0b8a2c47-5a0e-4a7e-8f0d-0c6d2b7e9c31",
  "model_count": 197,
  "requirement_set_count": 4,
  "start_date": "2026-01-05T00:00:00Z",
  "end_date": "2027-06-30T00:00:00Z",
  "created_at": "2026-01-05T09:12:44Z",
  "updated_at": "2026-11-04T09:00:00Z"
}

Archiver un projet

delete/api/v1/projects/{project_id}

Scope requis : projects:write

Comme « Archiver » dans l'App : le projet sort des listes de l'API et de l'App, et se restaure depuis la section « Archivés » de la liste des projets. Ses maquettes et jeux d'exigences ne sont ni archivés ni supprimés. Un projet déjà archivé répond 404.

Paramètres

  • project_id (path)string (uuid)requis

    Identifiant du projet (id rendu par GET /api/v1/projects).

Réponses

  • 204Projet archivé.
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Erreurs communes :400401403404429500503(détail dans la section Erreurs)

curl -sS -X DELETE "$SEVEUP_API/api/v1/projects/$PROJECT_ID" \
  -H "Authorization: Bearer $SEVEUP_KEY"