Documentation
GET /api/ad
The ad artifact for the session's product, with its pass criteria.
| Request | GET /api/ad |
|---|---|
| Authentication | Session cookie required |
| Handler | backend/server.py |
What it does
The ad specification the engine produced: creative fields plus the CTR and CPC bar the artifact must clear to be considered passing. The product is resolved claimed-first and then by hold — never by a direct read of the holds table, which is how this endpoint once told a fresh session everything was spoken for while eleven products were free.
Authentication
Session cookie required. Send the ff_session cookie. Without one the engine treats the caller as a new visitor with no holds and no claims, and returns a new cookie to use from then on.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ff_session | cookie | string | Optional | The session identifier. Omit it on the first call and store the value the response sets; every later call must send the same one or the engine treats the caller as a new visitor with no holds and no claims. |
Request
The cookie jar carries the session between calls. Angle-bracketed values are the parameter types from the table above.
curl -s -b cookies.txt -c cookies.txt \
"https://flowfinds.ai/api/ad"const res = await fetch("https://flowfinds.ai/api/ad", {
method: "GET",
credentials: "include",
});
const data = await res.json();import requests
s = requests.Session()
r = s.get("https://flowfinds.ai/api/ad")
data = r.json()Recorded example
curl -s -b cookies.txt -c cookies.txt \
"$FLOWFINDS_ORIGIN/api/ad"Responses
200 — An artifact exists. It carries the creative fields, including `headline` and `primary_text`, and the pass criteria the run is measured against.
Errors
| Status | Reason | When |
|---|---|---|
404 | not_found | No artifact exists for the resolved product. |
Related
POST /api/ad/edit— Override the ad copy, or reset it to the generated version.POST /api/growth/edit— Edit a growth artifact in natural language.GET /api/ads-manager— The campaign book.POST /api/ads-manager— Save the campaign book.GET /api/adbalance— The advertising balance, its ledger and any pending top-ups.POST /api/adbalance— Start a balance top-up.GET /api/adbalance/confirm— Retired. Balance confirmation is no longer client-driven.POST /api/organic/research— Research an organic campaign for named platforms.
Back to the API reference index, or read the cookbook for recipes that compose this endpoint with others.