Documentation

GET /api/ad

The ad artifact for the session's product, with its pass criteria.

RequestGET /api/ad
AuthenticationSession cookie required
Handlerbackend/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

ParameterInTypeRequiredDescription
ff_sessioncookiestringOptionalThe 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

200An artifact exists. It carries the creative fields, including `headline` and `primary_text`, and the pass criteria the run is measured against.

Errors

StatusReasonWhen
404not_foundNo artifact exists for the resolved product.

Related

Back to the API reference index, or read the cookbook for recipes that compose this endpoint with others.