Developers

API reference

Create and manage your projects from external tools — Zapier, scripts, your own integrations.

Authentication

Generate a personal access token from your account (Pro plan required) and send it as a bearer token on every request:

Authorization: Bearer YOUR_TOKEN
Accept: application/json

Each token is scoped to one or both abilities: projects:read and projects:write. A request to an endpoint the token wasn't granted returns 403 Forbidden.

Base URL

https://baconservices.com/api/v1

Rate limits

60 requests per minute per token. Exceeding it returns 429 Too Many Requests.

Endpoints

GET /user

Returns the token owner's account.

GET /projects

Lists your personal projects (most recently updated first). Requires projects:read.

POST /projects

Creates a project. Requires projects:write.

curl -X POST https://baconservices.com/api/v1/projects \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "project": {
      "width": 1080,
      "height": 1080,
      "background": "#ffffff",
      "layers": [
        { "id": "layer-1", "type": "text", "text": "Hello", "x": 100, "y": 100, "width": 400, "height": 120 }
      ],
      "metadata": { "name": "My design" }
    }
  }'

GET /projects/{id}

Returns one project's full data (dimensions, background, layers). Requires projects:read.

PUT /projects/{id}

Replaces a project's design — same body shape as create. Requires projects:write.

DELETE /projects/{id}

Deletes a project. Requires projects:write.

Limits

What this API doesn't do

There's no endpoint to render a design to a PNG/JPG/PDF — export only happens in the browser's own canvas today, so there's no server-side renderer to call. Use this API to manage project data, then open the result in the editor to export it.