This document describes the Slideform public REST API, including endpoints, request/response formats, and usage examples with the Python SDK.
Authentication
All endpoints require an API key in the x-api-key
header:
headers = {
'x-api-key': 'YOUR_API_KEY'
}
To create your Slideform API key, an account Admin should go to Admin on the main Slideform menu. Click the API tab and "Create API key".
Base URL
https://rest.slideform.co
Endpoints
Path | Method | Description |
---|---|---|
/projects | GET | List all templates (projects). |
/project | GET | Get details for a single template. Query: ?project={project_id} . |
/job | POST | Create a job to render a presentation. JSON body: { project: ..., pragmas: {...}, options: {...} } . |
/bulk | POST | Submit multiple jobs in bulk. JSON body: { project: ..., pragmas: [...], mode: 'multiple', parallel_bulk: true, settings: {...} } . |
/file/<file_name> | GET | Download a generated file. |
/status/<job_id> | GET | Check status of a job. |
/files | POST | Upload an image for use in presentations. Form-data key: file . |
/health | GET | Health check endpoint. |
Response Format
All successful responses return JSON with a status
field:
{
"status": "ok",
...
}
Python SDK
Use the provided client.py
for convenient access:
from client import (
create_auth_header,
get_projects,
submit_job,
bulk_submit,
get_job_status,
upload_image,
add_pragma_to_job
)
api_key = 'YOUR_API_KEY'
List Projects
projects = get_projects(api_key)
print(projects)
Create a Job
form = {
'project': 'PROJECT_ID',
'pragmas': {},
'options': {}
}
# Add a text pragma
add_pragma_to_job(form, '', 'Acme Corp', type='text')
resp = submit_job(api_key, form)
print(resp)
Example Script
Sample usage in api_example.py
:
from client import *
api_key = 'YOUR_API_KEY'
projects = get_projects(api_key)
print("Available templates:", projects)
# Bulk submit example
bulk_pragmas = [
{ 'client': 'Client A' },
{ 'client': 'Client B' }
]
resp = bulk_submit(api_key, {
'project': 'PROJECT_ID',
'pragmas': bulk_pragmas,
'mode': 'multiple',
'parallel_bulk': True,
'settings': {
'upload_dir': 'https://drive.google.com/...',
'upload_source': 'gsuite',
'slack_webhook': 'https://hooks.slack.com/...'
}
})
print(resp)
Simple API client for the Slideform API
File: client.py
Support
For issues or questions, contact support@slideform.co.