Kettio scores are relative within the batch you submit. They are not conversion
probabilities, and they are not forecasts of CPA, ROAS, or causal lift. Treat them as a
prioritization signal, not a prediction.
Two surfaces
MCP server
Install into Claude Code, Codex, or Claude Desktop and rank creative straight from local
files. Two commands and a key.
REST API
Batch scoring over HTTP. Use this for volume: pipelines, scheduled jobs, and anything that
runs without a client attached.
rank_assets
over MCP takes local paths and uploads them for you, while the REST API expects assets
already published at fetchable URLs. See Agent loop for choosing between
them.
Endpoints
|
POST /api/v1/pairwise | Run a five-voter blinded panel on explicit head-to-head matchups. |
Base URL is https://kettio.com for every endpoint. Authentication is a bearer token on every
request — see Authentication.
What the score means
Every asset is scored by Kettio’s SSR pipeline against a persona built from the audience you supply. Each scoring evaluation runs three independent repetitions and averages them, so a single score already carries a spread you can inspect throughconfidence_details.
When you include copy_context, Kettio scores the full ad package and runs an image-only
ablation, so the response also tells you what the copy contributed (copy_lift).
How scoring works
Repetitions, evaluations, copy lift, and the image-only ablation.
Reading confidence
When a gap is real and when two assets are effectively tied.
Start here
1
Create an API key
Open Dashboard → API Keys. The raw key is
shown once.
2
Pick your path
Using a coding agent? Set up your agent — install, rank local
files, done. Calling over HTTP? First ranking walks through a
working request and its response.
3
Wire it into your loop
Read Limits and billing before you scale up — billing is
counted in scoring evaluations, not assets.