[ Trusted by builders from ]NetflixServiceNowCiscoAdobePayPalAmazonDatadogJPMorgan ChaseDell
[ Trusted by builders from ]NetflixServiceNowCiscoAdobePayPalAmazonDatadogJPMorgan ChaseDell
Prior.Runprior.run

FIG · 01— rest endpoint specification, v1

Ship after simulation.

The same engine you drive through the web UI, exposed as JSON over HTTPS. Build CI gates. Ship agents. Stop checking screenshots.

~/prior.run — curllive
$ curl https://api.prior.run/api/v1/ads/compare
  -H "Authorization: Bearer $PR_KEY"
  -d '{"image_a": "…", "image_b": "…", …}'

// analysis phase ·············· 75s
// synthesis phase ············· 15s

 {
    "memo_id": "comp_b81b0b93",
    "status": "complete",
    "memo": { verdict: { winner: "A" }, confidence_level: "Moderate", verdict_headline: "We prefer Design A" … }
}

Production hostprod
https://api.prior.run
Local dev hostdev
http://localhost:8000
Bearer tokenrequired
Authorization: Bearer pr_live_••••••••••••

Generate at /settings. Plaintext shown once.


Every product memo the web UI produces — verdict, reactions, quotes, audience preference, risk flags — in one JSON response.

POST/api/v1/design/reviewsingle design01
POST/api/v1/design/comparetwo variants02
POST/api/v1/design/multithree to five variants03
POST/api/v1/design/flowtwo funnels04

Scroll-stop, hook clarity, brand recall. Platform-aware when you pass run_platform=meta | tiktok | google. Inspiration drafts bundle action items into one new image + body copy + headline + CTA — CTA is auto-snapped to the platform's allowed list.

POST/api/v1/ads/singleone creative01
POST/api/v1/ads/comparetwo head-to-head02
POST/api/v1/ads/multithree to five03
POST/api/v1/ads/inspirationdraft from recs · single + compare04
GET/api/v1/ads/inspiration/{id}latest draft05

Create returns a memo_id immediately. Poll until status = complete — typically 75–120s for ads, 90–180s for non-ads.

GET/api/v1/memo/{id}full memo JSON01

01 · kickoff↳ returns memo_id immediately
01curl -X POST https://api.prior.run/api/v1/ads/compare \
02 -H "Authorization: Bearer $PRIORRUN_API_KEY" \
03 -H "Content-Type: application/json" \
04 -d '{
05 "image_a": "https://cdn.brand.com/hero-a.png",
06 "image_b": "https://cdn.brand.com/hero-b.png",
07 "campaign_context": "Gen Z skincare, TikTok awareness.",
08 "run_platform": "tiktok"
09 }'
02 · response↳ memo_id, url, status=pending
01{
02 "memo_id": "comp_b81b0b93",
03 "status": "pending",
04 "url": "https://prior.run/ads/memo/comp_b81b0b93"
05}
03 · poll until complete↳ ~90s end-to-end
01curl https://api.prior.run/api/v1/memo/comp_b81b0b93 \
02 -H "Authorization: Bearer $PRIORRUN_API_KEY"
03
04# → { memo_id, status: "complete", memo: { verdict,
05# quotes, action_items, lens_highlights, ... } }

rule i

Images


Base64, data URL, or https. Max 10 MB.

rule ii

Dedup


Duplicate or near-duplicate images rejected (400).

rule iii

Ads context


10–500 chars. Sanitized for injection.

rule iv

Modes


3–5 images for multi, 2–5 screens per flow.

rule v

Auth


Bearer pr_live_… . Keys are user-scoped.

rule vi

Polling


Create returns memo_id · poll GET /memo/{id} until status=complete.


[ end of specification ]

Or skip the curl.
Use an agent.