Docs menu

REST API · Creatives

Create import

Import the creatives behind a link into Apogee storage

POSThttps://api.apogee.ad/api/v1/imports

What it does

Frame.io (project, folder or file; a public share link works without a Frame.io account, 20 to 30 s to read), Dropbox (shared file or folder) or Google Drive (file or folder; Frame.io / Drive / Dropbox accounts are the ones connected in the app). Answers 202 with an import id: follow it with GET /imports/{id} until done. The first 200 files of a link at most, counted in the day's upload budget (429 rate_limited past it).

Request

POST /imports on https://api.apogee.ad/api/v1.

Headers

  • Authorization string header required

    Bearer apk_…: an API key with the scope of this route.

  • Idempotency-Key string header required

    A unique key per request, e.g. a UUID, reused when you retry it: the first answer comes back instead of a second write (idempotency).

    1 to 255 visible ASCII characters

  • Content-Type string header required

    application/json

Body

  • url string (uri) required

    The link

    up to 2,048 characters

Response

202.

  • id string
  • source string

    One of frameio, google_drive, dropbox

  • jobs array of objects
    Fields of each item (7)
    • id string
    • name string or null
    • status string

      One of PENDING, PROCESSING, COMPLETED, FAILED, MISSING

    • progress number or null
    • size_bytes number or null
    • ref string or null
    • error string or null
  • share_name string or null
  • done boolean
  • created_at string or null
  • note string

    Why an import has no file (done at once)

  • truncated boolean
  • skipped_too_large array of values

Every answer carries X-Request-Id (give it to support), Apogee-Version: 2026-10-06, and the RateLimit and RateLimit-Policy headers; a replayed answer also carries Idempotent-Replayed: true.

Errors

Errors are application/problem+json with a stable code to switch on (all the codes).

Example

With your key in APOGEE_API_KEY (create one):

Request
curl -X POST 'https://api.apogee.ad/api/v1/imports' \
  -H "Authorization: Bearer $APOGEE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.dropbox.com/scl/fo/example0000/nordlicht-creatives"
}'
Response 202 (shape)
{
  "id": "120200000000000001",
  "source": "frameio",
  "share_name": "Nordlicht | Spring launch",
  "done": false,
  "created_at": "2026-10-23T09:00:00.000Z",
  "note": "Example text",
  "jobs": [
    {
      "id": "120200000000000001",
      "name": "Nordlicht | Spring launch",
      "status": "PENDING",
      "progress": 100,
      "size_bytes": 48213112,
      "ref": "120200000000000001",
      "error": "120200000000000001"
    }
  ],
  "truncated": false,
  "skipped_too_large": [
    "120200000000000001"
  ]
}

Access and cost

PlansPro and Scale.
Scopelaunch (scopes).
CreditsFree up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A request that fails costs nothing, a replayed one neither (credits).
Rate limitWrite: 120 per 15 minutes on Pro, 240 on Scale (rate limits).
Daily capCounts 2 units toward the 2,000 units one API key can use in 24 hours.

In the MCP

An AI assistant does the same with this tool of the MCP server:

Last updated on . The parameters, limits, credits and error codes of these pages are generated from the code of the Apogee API (contract 2026-10-06).

A question, something missing? Write to hello@apogee.ad.

Book a demo

Pick the time that suits you.

Open in a new tab

Loading the calendar…

Talk to Founder