Search
Documentation

← Documentation

JSON API — /api/v1

Slidura’s HTTP+JSON interface. Authenticate with a Bearer API key on every request; scopes on the key control what each call is allowed to do.

Base URL

https://app.slidura.com/api/v1

Authentication

Authorization: Bearer slidura_live_...

Mint a key at app.slidura.com/settings/api-keys.

Scopes

Keys carry coarse per-route scopes. The required scope is inferred from the HTTP method unless a route overrides it explicitly.

ScopeDefault HTTP methodsUsed by
readGET, HEADListing templates, fetching catalogs, polling build status
writePOST, PUT, PATCHEditing annotations, updating a build’s working fill
deleteDELETERemoving templates or builds
build— (explicit override)Creating a draft build, starting a build, copying/archiving

A key missing the required scope receives 403 Forbidden.

Resources

Account

MethodPathDescription
GET/meCaller’s account and current credit balance

Templates

MethodPathDescription
GET/templatesOwn + non-hidden provider templates, starred first
POST/templatesUpload a new .pptx template (multipart; optional slides_pdf)
GET/templates/{id}Template detail with versions and catalog summary
DELETE/templates/{id}Delete a template and all its catalogs/builds (cascades)
GET/templates/{id}/themeActive theme and derived palette
PUT/templates/{id}/themeSet the theme (base, look, font, background, variables)
POST/templates/{id}/starStar or un-star a template
POST/templates/{id}/hideHide a starter template from listings (hide-not-delete)

Catalogs and annotations

MethodPathDescription
GET/catalogs/{id}Catalog status and metadata
GET/catalogs/{id}/compactAnnotated compact catalog — the agent brief
GET/catalogs/{id}/fullRaw full catalog JSON (available once the scan job completes)
GET/catalogs/{id}/annotationsList all field annotations
PATCH/catalogs/{id}/annotations/{aid}Update a field annotation (label, description, choices, types…)
GET/catalogs/{id}/variablesHead variables for template-product interpolation
PUT/catalogs/{id}/variablesReplace head variables
GET/catalogs/{id}/fill-draftStaged draft fill (legacy catalog-scoped draft)
PUT/catalogs/{id}/fill-draftWrite a staged draft a human can review in the fill builder
GET/catalogs/{id}/default-fillOwner-editable default every new build starts from
PUT/catalogs/{id}/default-fillReplace the default fill

Builds — full lifecycle

MethodPathScopeDescription
POST/catalogs/{id}/buildsbuildCreate a created build (the agent-editing entry point)
GET/buildsreadList the caller’s builds; optional lifecycle filter
GET/builds/{id}readBuild status and metadata
PATCH/builds/{id}writeEdit the working fill and/or title of a created build
POST/builds/{id}/startbuildValidate, spend credit, enqueue the build job
POST/builds/{id}/copybuildCopy a build into a new created build
POST/builds/{id}/reopenbuildReopen an archived build back to created
POST/builds/{id}/archivebuildArchive a build
DELETE/builds/{id}deletePermanently delete a build
GET/builds/{id}/downloadreadDownload the .pptx output (also accepts a signed URL)

See the build lifecycle for state transitions and the lifecycle field values.

Refs

MethodPathDescription
GET/refsSearch fillable assets for paste-ready @ref strings; context ranks scoped items first

Media — charts, tables, images, icons, diagrams, code, arts

All media resources follow the same pattern: list, create, get, update, delete. Arts additionally expose layout manifests, SVG rendering, and a geometry solve endpoint.

ResourceBase path
Charts/charts
Tables/tables
Images/images (presign + confirm upload flow)
Icon packs / glyphs/icon-packs, /icon-glyphs
Diagrams/diagrams
Code blocks/code-blocks
Procedural arts/arts

Jobs

MethodPathDescription
GET/jobs/{id}Poll a background job by id (catalog scan, build, enrichment)

Published-fill hooks

These endpoints sit outside /api/v1 and use no API key — the capability token embedded in the URL is the only credential.

MethodPathDescription
POST/hooks/fills/{token}Trigger a build from a flat {variables, fields} payload merged onto the endpoint’s published default fill; returns build_id + status_url
GET/hooks/fills/{token}/builds/{build_id}Poll the build; returns status, download_url (time-limited signed URL), and expires_at

Manage published-fill endpoints from the template workspace (Designs view) or the web UI.


Per-resource request/response shapes and generated OpenAPI docs are TODO.