← scrollify.io

API Reference

Scrollify provides a read-only REST API for listing and downloading your exports programmatically. The API uses Bearer token authentication via an API key you generate in your account settings.

Authentication

All requests must include your API key as a Bearer token in the Authorization header.

Authorization: Bearer <your-api-key>

Generate a key in User settings → API Access. Each user has one active key at a time. Rotating generates a new key and invalidates the old one immediately.

Base URL

https://scrollify.io

Endpoints

GET /api/v1/exports

List all exports for the authenticated user. Returns the same shape as the in-app library.

Response

{
  "object": "list",
  "data": [
    {
      "jobId": "01JXXXXXXXXXXXXXXXXXXXXXXX",
      "url": "https://example.com/page",
      "status": "ready",
      "createdAt": "2026-06-17T10:00:00.000Z",
      "outputs": [
        {
          "outputId": "01JXXXXXXXXXXXXXXXXXXXXXXX",
          "format": "mp4",
          "status": "ready",
          "downloadUrl": "/api/v1/outputs/01JXXX.../download"
        }
      ]
    }
  ]
}
GET /api/v1/exports/:jobId

Get a single export by its jobId (ULID).

Response

Same shape as a single element from the list above. Returns 404 if not found or not owned by the key holder.

Downloading outputs

Each output object includes a downloadUrl field when status is "ready". Append the base URL and request it with the same Authorization header — the server streams the file with a Content-Disposition: attachment header.

curl -H "Authorization: Bearer <key>" \
  https://scrollify.io/api/v1/outputs/<outputId>/download \
  -o my-export.mp4

Note: Download counts are tracked for each output. View counts are tracked when a share link is viewed.

Rate limits

EndpointLimitWindow
GET /api/v1/exports60 requests60 seconds
GET /api/v1/exports/:jobId120 requests60 seconds
GET /api/v1/outputs/:id/download72 requests60 seconds

Exceeding a limit returns 429 Too Many Requests.

Error responses

{ "error": "Human-readable error message" }
StatusMeaning
401Missing, invalid, or revoked API key
404Export not found or not owned by key holder
429Rate limit exceeded
500Unexpected server error