Offer - Serve (matcher)
Runs the serving-layer OfferMatcher for the current context and returns the single offer it would serve (highest tier, weighted-random within tier, hourly-floor aware), plus a match_id correlation token to thread through the funnel (pass it to /submit). Pass offer_list_id to serve from a specific list; omit it (and publisher_id) for native / search traffic, which draws from every active list. Context is built from an optional consumer session (age + zipcode from profile, lockout gating) and optional query params. Returns offer=null when nothing is eligible (a normal outcome, still 200). Does not pre-ping or log an impression.
Request
- Base URL: https://api.juju.com
- URL: https://api.juju.com/api/v1/offers/next
- Auth: none declared
Query parameters
The offer list to serve from. Optional — omit to draw from every list eligible for the context. When set, only that (active) list is considered.
Publisher context. When set, narrows eligible lists to that publisher's assigned lists. Optional (omit for native / search traffic).
Adjacent job's sponsor. Reserved — not gated on today (future offer-level blocklist).
Overrides the profile zipcode for the zipcode-allowlist gate.
Overrides the profile-derived age for age gating.
Response
The matched offer (or offer=null when none is eligible).
Example response
{
"data": {
"offer": {
"action": {
"method": "POST",
"target": "_blank"
}
}
},
"errors": []
}Changes
No recorded changes to this operation across all 1 revision of this API.