Skip to content

Developers

Kairnial

Projets du connecteur Kairnial et exports zip de leurs fichiers.

The reference text comes from the contract and is written in French.

Lister les projets Kairnial accessibles

get/api/v1/kairnial-projects

Required scope : projects:read

Les projets Kairnial que le créateur de la clé voit dans le connecteur Kairnial de l'App, par nom. file_count et size_bytes comptent la dernière version de chaque fichier, d'une seule extension si extension est donnée (par exemple dwg). La liste vient de la dernière synchronisation du connecteur.

Parameters

  • limit (query)integer

    Taille de page.

  • cursor (query)string

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

  • extension (query)string

    Extension de fichier comptée, sans le point (dwg, pdf…).

Responses

  • 200Une page de projets Kairnial.Page & object
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Common errors :400401403429500503(details in the Errors section)

curl -sS "$SEVEUP_API/api/v1/kairnial-projects" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Example (200)
{
  "data": [
    {
      "project_key": "hopital",
      "name": "SAS BIM - HOPITAL",
      "file_count": 16,
      "size_bytes": 143276544
    }
  ],
  "next_cursor": null,
  "has_more": false
}

Exporter en zip des fichiers d'un projet Kairnial

post/api/v1/kairnial-exports

Required scope : projects:read

Rassemble dans un ou plusieurs zips la dernière version de chaque fichier d'un projet Kairnial ayant l'une des extensions demandées, dans tout le projet ou dans un dossier et ses sous-dossiers (folder_id). Dans le zip, chaque fichier garde le chemin de son dossier Kairnial. Les zips sont coupés vers 100 Mo.

Kairnial ne sert un fichier qu'avec la connexion d'un utilisateur : l'export tourne avec la connexion Kairnial du créateur de la clé (409 s'il n'en a pas de valide) et ne voit que ses projets. Le travail est asynchrone : suivre GET /api/v1/kairnial-exports/{export_id} jusqu'à COMPLETE. Un seul export à la fois par organisation (409 sinon) ; 5 000 fichiers et 20 Go au plus par export. Un fichier que Kairnial ne rend pas est écarté et nommé dans skipped. Les zips sont gardés 7 jours.

Parameters

  • Idempotency-Key (header)string

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

Request bodyKairnialExportCreate

  • project_keystringrequired

    project_key rendu par GET /api/v1/kairnial-projects.

  • extensionsstring[]required

    Extensions retenues, sans le point et sans tenir compte de la casse.

  • folder_idstring | null

    Dossier Kairnial ; ses sous-dossiers sont compris. Tout le projet par défaut.

Responses

  • 202Export mis en file ; le suivre par son Location.KairnialExport
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Common errors :400401403404429500503(details in the Errors section)

curl -sS -X POST "$SEVEUP_API/api/v1/kairnial-exports" \
  -H "Authorization: Bearer $SEVEUP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "project_key": "hopital",
  "extensions": [
    "dwg"
  ]
}'
Example (202)
{
  "id": "2b3c4d5e-6f70-4a81-9b2c-3d4e5f6a7b8c",
  "project_key": "hopital",
  "project_name": "SAS BIM - HOPITAL",
  "extensions": [
    "dwg"
  ],
  "folder_id": null,
  "status": "QUEUED",
  "file_count": 16,
  "done_count": 0,
  "total_bytes": 143276544,
  "parts": [],
  "skipped": [],
  "error": null,
  "created_at": "2026-11-05T10:02:00Z",
  "started_at": null,
  "completed_at": null,
  "expires_at": null
}

Suivre un export Kairnial

get/api/v1/kairnial-exports/{export_id}

Required scope : projects:read

L'état de l'export (QUEUED, PROCESSING, COMPLETE, ERROR, EXPIRED après 7 jours), sa progression (done_count sur file_count) et, une fois COMPLETE, ses zips avec un lien signé chacun, valable une heure et renouvelé à chaque lecture. Les liens s'ouvrent sans clé d'API.

Parameters

  • export_id (path)string (uuid)required

    Identifiant de l'export (id rendu par POST /api/v1/kairnial-exports).

Responses

  • 200L'export.KairnialExport

Common errors :400401403404429500503(details in the Errors section)

curl -sS "$SEVEUP_API/api/v1/kairnial-exports/$EXPORT_ID" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Example (200)
{
  "id": "2b3c4d5e-6f70-4a81-9b2c-3d4e5f6a7b8c",
  "project_key": "hopital",
  "project_name": "SAS BIM - HOPITAL",
  "extensions": [
    "dwg"
  ],
  "folder_id": null,
  "status": "COMPLETE",
  "file_count": 16,
  "done_count": 16,
  "total_bytes": 143276544,
  "parts": [
    {
      "index": 1,
      "file_name": "kairnial-sas-bim-hopital-dwg-1.zip",
      "file_count": 11,
      "size_bytes": 98213450,
      "download_url": "https://storage.example.com/object/sign/attachments/kairnial-exports/kairnial-sas-bim-hopital-dwg-1.zip?token=...",
      "download_expires_at": "2026-11-05T11:15:00Z"
    },
    {
      "index": 2,
      "file_name": "kairnial-sas-bim-hopital-dwg-2.zip",
      "file_count": 5,
      "size_bytes": 40117231,
      "download_url": "https://storage.example.com/object/sign/attachments/kairnial-exports/kairnial-sas-bim-hopital-dwg-2.zip?token=...",
      "download_expires_at": "2026-11-05T11:15:00Z"
    }
  ],
  "skipped": [],
  "error": null,
  "created_at": "2026-11-05T10:02:00Z",
  "started_at": "2026-11-05T10:02:01Z",
  "completed_at": "2026-11-05T10:06:40Z",
  "expires_at": "2026-11-12T10:06:40Z"
}