Slideform API

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.