API & webhooks
Read experiment data programmatically and push conversion events into your own systems.
Two ways to get Cartie data into your own stack: pull experiment results from the REST API, or have conversion events pushed to your endpoint as they happen.
#Getting an API key
Settings → Developer → API Access → Generate key. The key is shown once and stored hashed — copy it immediately. Regenerating invalidates the previous key straight away, so update anything using it first.
#Reading experiments
curl https://cartie.io/api/v1/experiments \
-H "Authorization: Bearer ck_live_your_key_here"Returns every experiment for your store with its status, per-variant visitors, conversions and revenue, plus lift, confidence and the four decision gates:
{
"success": true,
"data": [
{
"id": "exp_...",
"name": "Free shipping threshold $75",
"status": "RUNNING",
"widgetType": "free_shipping_bar",
"startedAt": "2026-08-01T09:12:00.000Z",
"concludedAt": null,
"daysRunning": 9,
"visitors": 8421,
"conversions": 402,
"lift": 0.061,
"confidence": 0.968,
"gates": {
"sampleSize": true,
"duration": true,
"significance": true,
"positiveLift": true,
"decided": true
},
"variants": [ /* per-variant metrics */ ]
}
]
}| Detail | Value |
|---|---|
| Auth | Authorization: Bearer <key> — a missing or invalid key returns 401. |
| Rate limit | 60 requests per minute per IP; over that returns 429. |
| Scope | The key only ever returns data for the store that generated it. |
#Conversion webhook
Set an HTTPS endpoint in Settings → Integrations → Custom Webhook and Cartie POSTs conversion events to it as they arrive:
POST https://your-endpoint.example.com/cartie-events
Content-Type: application/json
X-Cartie-Event: conversion
{
"shop": "your-store.myshopify.com",
"sessionId": "…",
"events": [ { "event": "conversion", "…": "…" } ]
}#Shopify-side data
Order, product and discount data all live in Shopify — use the Shopify Admin API for those. Cartie's API covers only what Cartie itself measures.
Still stuck on this?Send us your store domain and what you’re seeing — we’ll take a look.