Développeurs

Documentation API

Intégrez Studio dans vos applications grâce à notre API REST.

URL de base

https://api-studio.domainedunet.fr

Authentification

Tous les endpoints authentifiés nécessitent une clé API envoyée via le header X-Api-Key. Chaque workspace dispose de sa propre clé API, disponible dans les paramètres du workspace.

curl https://api-studio.domainedunet.fr/publications \
  -H "X-Api-Key: sk_studio_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Endpoints

POST/publications/upload-url

Obtenir une URL d'upload

Retourne une URL signée pour uploader un fichier PDF dans le stockage.

Request

{
  "type": "pdf"
}

Response

{
  "uploadUrl": "https://...signed-url...",
  "token": "upload-token",
  "storageKey": "aBcD1234",
  "pdfPath": "{workspaceId}/aBcD1234.pdf",
  "workspaceId": "uuid"
}
POST/publications

Créer une publication

Crée une publication à partir d'un fichier uploadé.

Request

{
  "title": "My document",
  "storageKey": "aBcD1234",
  "pdfPath": "{workspaceId}/aBcD1234.pdf",
  "sourceType": "pdf"
}

Response

{
  "id": "uuid",
  "slug": "my-document",
  "status": "processing",
  "title": "My document",
  ...
}
GET/publications

Lister les publications

Retourne toutes les publications du workspace.

Response

[
  {
    "id": "uuid",
    "slug": "my-document",
    "title": "My document",
    "status": "ready",
    "page_count": 12,
    ...
  }
]

Chemin structuré (optionnel)

Vous pouvez organiser les fichiers dans le stockage en passant un paramètre path personnalisé. Utile pour du contenu structuré comme des documents électoraux.

POST /publications/upload-url
{
  "type": "pdf",
  "path": "bretagne/35/melesse-35/municipales-2026/profession-de-foi.pdf"
}

// Response:
{
  "pdfPath": "{workspaceId}/bretagne/35/melesse-35/municipales-2026/profession-de-foi.pdf",
  "storageKey": "aBcD1234",
  ...
}

Endpoints publics

Ces endpoints ne nécessitent pas d'authentification.

GET/publications/:slug/pdf

Obtenir l'URL du PDF

Retourne une URL signée pour accéder au fichier PDF (valide 1 heure).

Response

{
  "url": "https://...signed-url...(1h)..."
}
GET/publications/:slug/images

Obtenir les images

Retourne les URLs CDN pour les publications basées sur des images.

Response

{
  "images": ["https://ik.imagekit.io/.../0.img", ...]
}
GET/publications/:slug/download

Télécharger le PDF

Redirige vers le fichier PDF pour téléchargement.

Flux d'intégration

  1. 1Obtenir une URL d'upload signée
  2. 2Uploader votre PDF sur l'URL signée (requête PUT)
  3. 3Créer la publication avec le storageKey et pdfPath retournés
  4. 4Utiliser le slug retourné pour construire l'URL publique
# 1. Get upload URL
curl -X POST https://api-studio.domainedunet.fr/publications/upload-url \
  -H "X-Api-Key: sk_studio_xxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "pdf"}'

# 2. Upload PDF
curl -X PUT "{uploadUrl}" \
  -H "Content-Type: application/pdf" \
  --data-binary @document.pdf

# 3. Create publication
curl -X POST https://api-studio.domainedunet.fr/publications \
  -H "X-Api-Key: sk_studio_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My document",
    "storageKey": "{storageKey}",
    "pdfPath": "{pdfPath}",
    "sourceType": "pdf"
  }'

# 4. Public URL
# https://studio.domainedunet.fr/p/{slug}

Limite de requêtes

L'API est limitée à 100 requêtes par seconde par adresse IP.