SlideStrike API Reference

Generate professional presentations programmatically. One API call to transform data into slides.

v1.0Base URL: https://api.slidestrike.com

Authentication

All API requests require authentication using an API key in the Authorization header.

curl https://api.slidestrike.com/v1/presentations \
  -H "Authorization: Bearer ss_live_your_api_key"

API Key Prefixes:
ss_test_ - Test/sandbox keys (limited to 100 requests)
ss_live_ - Production keys (full access)

Data Types

SlideStrike accepts multiple data formats. Specify the type in your data.type field.

json

JSON object with your data

{"project": "Website", "status": "On Track"}
csv

CSV formatted string

Name,Status\nTask 1,Complete\nTask 2,In Progress
text

Plain text content

Project update: The website redesign is 80% complete...
image

Base64 encoded image for OCR

data:image/png;base64,iVBORw0KGgo...
url

URL to fetch data from

https://api.example.com/project-data.json

Templates

Choose a template to define the presentation structure. Each template is optimized for specific use cases.

executive-summary
weekly-status
monthly-review
quarterly-report
project-kickoff
sprint-review
construction-progress
financial-analysis
sales-pipeline
thesis-defense
POST/v1/presentations/generate

Create Presentation

Generate a new presentation from your data

Request Example
curl -X POST https://api.slidestrike.com/v1/presentations/generate \
  -H "Authorization: Bearer ss_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "type": "csv",
      "content": "Task,Status,Progress\nDesign,Complete,100%\nDevelopment,In Progress,60%"
    },
    "template": "weekly-status",
    "options": {
      "title": "Sprint 42 Review",
      "slides": 6
    }
  }'
Request Body
{
  "data": {
    "type": "json",
    "content": "{\"project\": \"Website Redesign\", \"status\": \"On Track\", \"budget\": 50000}"
  },
  "template": "executive-summary",
  "options": {
    "title": "Q4 Status Update",
    "slides": 8,
    "style": "professional",
    "branding": {
      "primary_color": "#ff3b3b",
      "secondary_color": "#1e1e1e"
    }
  },
  "output": {
    "format": "pptx",
    "webhook_url": "https://yoursite.com/webhooks/slidestrike"
  }
}
Response
{
  "id": "pres_abc123xyz",
  "status": "pending",
  "progress": 0,
  "created_at": "2024-01-15T10:30:00Z",
  "estimated_completion": "2024-01-15T10:31:00Z",
  "metadata": {
    "title": "Q4 Status Update",
    "template": "executive-summary",
    "data_type": "json"
  }
}
GET/v1/presentations/{id}

Get Presentation

Retrieve the status and details of a presentation

Request Example
curl https://api.slidestrike.com/v1/presentations/pres_abc123xyz \
  -H "Authorization: Bearer ss_live_your_api_key"
Response
{
  "id": "pres_abc123xyz",
  "status": "complete",
  "progress": 100,
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:30:45Z",
  "slides": 8,
  "output": {
    "pptx_url": "https://api.slidestrike.com/v1/presentations/pres_abc123xyz/download?format=pptx",
    "pdf_url": "https://api.slidestrike.com/v1/presentations/pres_abc123xyz/download?format=pdf",
    "embed_url": "https://slidestrike.com/embed/pres_abc123xyz",
    "expires_at": "2024-01-22T10:30:45Z"
  },
  "metadata": {
    "title": "Q4 Status Update",
    "template": "executive-summary",
    "data_type": "json"
  }
}
GET/v1/presentations

List Presentations

List all presentations for the authenticated user

Query Parameters

limitintegerNumber of results (1-100, default: 20)
offsetintegerPagination offset (default: 0)
statusstringFilter by status: pending, processing, complete, failed
Response
{
  "data": [
    {
      "id": "pres_abc123xyz",
      "status": "complete",
      "created_at": "2024-01-15T10:30:00Z",
      "metadata": { "title": "Q4 Status Update" }
    },
    {
      "id": "pres_def456uvw",
      "status": "processing",
      "created_at": "2024-01-15T10:35:00Z",
      "metadata": { "title": "Weekly Report" }
    }
  ],
  "pagination": {
    "total": 42,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}
GET/v1/presentations/{id}/download

Download Presentation

Download the generated presentation file

Query Parameters

formatstringFile format: pptx or pdf (default: pptx)
Request Example
curl -O https://api.slidestrike.com/v1/presentations/pres_abc123xyz/download?format=pptx \
  -H "Authorization: Bearer ss_live_your_api_key"
Response
Binary file data (application/vnd.openxmlformats-officedocument.presentationml.presentation)
DELETE/v1/presentations/{id}

Delete Presentation

Delete a presentation and its associated files

Response
{
  "id": "pres_abc123xyz",
  "deleted": true
}

Webhooks

Receive notifications when presentations are ready. Include a webhook_url in your create request.

presentation.complete

Sent when presentation generation completes successfully

{
  "event": "presentation.complete",
  "timestamp": "2024-01-15T10:30:45Z",
  "data": {
    "id": "pres_abc123xyz",
    "status": "complete",
    "output": { ... }
  }
}
presentation.failed

Sent when presentation generation fails

{
  "event": "presentation.failed",
  "timestamp": "2024-01-15T10:30:45Z",
  "data": {
    "id": "pres_abc123xyz",
    "status": "failed",
    "error": {
      "code": "processing_failed",
      "message": "Unable to parse data format"
    }
  }
}

Error Codes

All errors return a consistent JSON structure with error details.

Error Response Format
{
  "error": {
    "type": "invalid_request_error",
    "code": "missing_required_field",
    "message": "The 'data' field is required",
    "param": "data",
    "doc_url": "https://docs.slidestrike.com/errors/missing_required_field"
  }
}
CodeStatusDescription
invalid_api_key401The API key provided is invalid or expired
insufficient_permissions403The API key does not have the required permissions
rate_limit_exceeded429Too many requests. Check X-RateLimit-* headers
invalid_json400Request body is not valid JSON
missing_required_field400A required field is missing from the request
invalid_data_type400The data.type field has an invalid value
presentation_not_found404The requested presentation does not exist
processing_failed500An error occurred during presentation generation

Rate Limits

API requests are rate-limited based on your plan. Check the response headers:

X-RateLimit-LimitMaximum requests per minute
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the limit resets