Create and reuse

Export branded carousel slides

Use with your agent

Give this prompt to your AI agent. The agent does the task for you.

Read https://thirds.ai/docs/carousels and help me turn a multi-page thirds.ai template into ordered carousel images or a PDF, with a clear credit cost.

Keep one saved template and treat each page as a slide. Open the editor, add or reorder pages, then open Export. Choose the slides and the order, check the credit cost, and click the button. A refresh never spends a credit.

A PDF of the selected slides costs one credit. Each successful image costs one credit. Failed slides cost nothing. Retry failed slides does not charge slides that already succeeded.

Copy the launch checklist to start with five portrait slides, or open a PDF you already saved.

Export from the editor

Open a PDF template with two or more pages. Export lists every slide. Leave every box checked to keep the document order, or clear boxes and keep the remaining slides in page order.

Choose One PDF for a single file, or Images ZIP for PNG, JPEG, or WebP files. The button shows the cost before you start. When images finish, download each slide or the ZIP. Retry failed slides if a member fails.

API

Pin the template version. Reuse an idempotency key only for the same body.

This request makes ordered images from the launch checklist pages:

POST /v1/carousels
curl --fail-with-body --silent --show-error https://thirds.ai/v1/carousels \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: YOUR_UNIQUE_CAROUSEL_REQUEST' \
  --data '{"template_id":"tpl_00000000000000000000000000000000","version":1,"format":"png","pages":["cover","message","offer","proof","action"],"data":{"brand":"Northline Studio","series":"Launch week","headline":"Five slides for one launch week.","cover_line":"A Fieldnote Labs product launch.","date":"21 September 2026","message_title":"Show the change in one sentence.","message_body":"Every client sees the same numbers.","offer_label":"The offer","offer":"14 days","offer_detail":"One owner for every slide.","quote":"The questions finally matched.","attribution":"Maya Chen","role":"Operations lead, Fieldnote Labs","action":"Start this week","action_note":"Export the set as images."}}'

Poll GET /v1/carousels/{id} until state is complete, partial, or failed. Then download archive_url. POST /v1/carousels/{id}/retry admits failed slides only.

This request makes one PDF of two slides in that order:

POST /v1/pdf
curl --fail-with-body --silent --show-error https://thirds.ai/v1/pdf \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: YOUR_UNIQUE_PDF_REQUEST' \
  --data '{"template_id":"tpl_00000000000000000000000000000000","version":1,"pages":["cover","action"],"data":{"brand":"Northline Studio","series":"Launch week","headline":"Five slides for one launch week.","cover_line":"A Fieldnote Labs product launch.","date":"21 September 2026","message_title":"Show the change.","message_body":"Every client sees the same numbers.","offer_label":"The offer","offer":"14 days","offer_detail":"One owner for every slide.","quote":"The questions finally matched.","attribution":"Maya Chen","role":"Operations lead, Fieldnote Labs","action":"Start this week","action_note":"Export the set as a PDF."},"pdf":{"width":"1080px","height":"1350px"},"wait":false}'

Duplicate or unknown page ids return invalid_request with field pages. Use 1 to 100 different, known page ids. The selected canvases together stay within 128 million pixels.

Node 24:

JavaScript
const response = await fetch("https://thirds.ai/v1/carousels", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.THIRDS_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "YOUR_UNIQUE_CAROUSEL_REQUEST",
  },
  body: JSON.stringify({
    template_id: "tpl_00000000000000000000000000000000",
    version: 1,
    format: "png",
    pages: ["cover", "action"],
    data: { brand: "Northline Studio", action: "Start this week" },
  }),
});
const carousel = await response.json();

Python 3:

Python
import os
import urllib.request

request = urllib.request.Request(
    "https://thirds.ai/v1/carousels",
    data=b'{"template_id":"tpl_00000000000000000000000000000000","version":1,"format":"png","pages":["cover","action"],"data":{"brand":"Northline Studio"}}',
    headers={
        "Authorization": f"Bearer {os.environ['THIRDS_API_KEY']}",
        "Content-Type": "application/json",
        "Idempotency-Key": "YOUR_UNIQUE_CAROUSEL_REQUEST",
    },
    method="POST",
)

See credits, PDF and image options, and the carousel API.

Ready to make your first file?

Start in the playground with a gallery template, or get an API key and send your first request from your own terminal.