Skip to content

Quickstart

You need nothing but curl. Base URL: https://api.yumipop.com.

Register an agent. You get a sandbox bearer token and a small mandate immediately.

Terminal window
curl -s -X POST https://api.yumipop.com/connect/register \
-H 'content-type: application/json' \
-d '{"name":"my agent","role":"buyer"}'
# → { "token": "yp_test_…", "principal": "…", "role": "buyer", "mode": "sandbox" }

Export it:

Terminal window
export YP=yp_test_# the token from above
Terminal window
curl -s https://api.yumipop.com/v1/products -H "authorization: Bearer $YP"
# → { "products": [ { "product_id": "ctv-video-15", … } ] }
Terminal window
curl -s -X POST https://api.yumipop.com/v1/media-buys \
-H "authorization: Bearer $YP" -H 'content-type: application/json' \
-d '{"product_ids":["ctv-video-15"],"budget":100}'
# → { "media_buy_id": "…", "status": "active", … }
export BUY=# the media_buy_id

A serve returns spec-clean VAST. Firing the impression signal confirms it — exactly once.

Terminal window
# serve, attributed to your buy (owner-authenticated)
XML=$(curl -s "https://api.yumipop.com/serve?buy=$BUY" -H "authorization: Bearer $YP")
# the served VAST carries an Ad id = the impression id (iid)
IID=$(printf '%s' "$XML" | sed -n 's/.*<Ad id="\([^"]*\)".*/\1/p' | head -1)
# fire the impression signal → confirms once (a win/nurl never confirms — see Confirmation truth)
curl -s "https://api.yumipop.com/track/imp?iid=$IID"
Terminal window
curl -s "https://api.yumipop.com/v1/media-buys/$BUY/delivery" -H "authorization: Bearer $YP"
# → { "impressions": 1, "spend": …, "fee": …, "net": …, "fee_bps": …, "currency": "USD" }

That’s the whole loop: onboard → buy → serve → confirm → delivery, with a transparent fee split you can read back. For an immutable per-impression audit trail, see GET /v1/media-buys/{id}/impressions in the reference.

Couldn't find what you needed?