API Documentation
Integrate Studio into your applications with our REST API.
Base URL
https://api-studio.domainedunet.frAuthentication
All authenticated endpoints require an API key sent via the X-Api-Key header. Each workspace has its own API key, available in your workspace settings.
curl https://api-studio.domainedunet.fr/publications \
-H "X-Api-Key: sk_studio_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Endpoints
/publications/upload-urlGet upload URL
Returns a signed URL for uploading a PDF file to storage.
Request
{
"type": "pdf"
}Response
{
"uploadUrl": "https://...signed-url...",
"token": "upload-token",
"storageKey": "aBcD1234",
"pdfPath": "{workspaceId}/aBcD1234.pdf",
"workspaceId": "uuid"
}/publicationsCreate publication
Creates a publication from an uploaded file.
Request
{
"title": "My document",
"storageKey": "aBcD1234",
"pdfPath": "{workspaceId}/aBcD1234.pdf",
"sourceType": "pdf"
}Response
{
"id": "uuid",
"slug": "my-document",
"status": "processing",
"title": "My document",
...
}/publicationsList publications
Returns all publications in the workspace.
Response
[
{
"id": "uuid",
"slug": "my-document",
"title": "My document",
"status": "ready",
"page_count": 12,
...
}
]Structured path (optional)
You can organize files in storage by passing a custom path parameter. Useful for structured content like election documents.
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",
...
}Public endpoints
These endpoints do not require authentication.
/publications/:slug/pdfGet PDF URL
Returns a signed URL to access the PDF file (valid 1 hour).
Response
{
"url": "https://...signed-url...(1h)..."
}/publications/:slug/imagesGet images
Returns CDN URLs for image-based publications.
Response
{
"images": ["https://ik.imagekit.io/.../0.img", ...]
}/publications/:slug/downloadDownload PDF
Redirects to the PDF file for download.
Integration flow
- 1Get a signed upload URL
- 2Upload your PDF to the signed URL (PUT request)
- 3Create the publication with the returned storageKey and pdfPath
- 4Use the returned slug to build the public URL
# 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}Rate limiting
The API is limited to 100 requests per second per IP address.