Offer

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.

get/api/v1/offers/next

Request

  • Base URL: https://api.juju.com
  • URL: https://api.juju.com/api/v1/offers/next
  • Auth: none declared

Query parameters

offer_list_idinteger

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_idinteger

Publisher context. When set, narrows eligible lists to that publisher's assigned lists. Optional (omit for native / search traffic).

sponsor_idinteger

Adjacent job's sponsor. Reserved — not gated on today (future offer-level blocklist).

zipcode_idinteger

Overrides the profile zipcode for the zipcode-allowlist gate.

ageinteger

Overrides the profile-derived age for age gating.

Response

The matched offer (or offer=null when none is eligible).

metaobject required

Pagination and context metadata. Always present, empty object ({}) when no metadata applies to the response.

errorsstring[] required

Empty array on success. On failure, human-readable error strings suitable for surfacing to end users.

Example response

{
  "data": {
    "offer": {
      "action": {
        "method": "POST",
        "target": "_blank"
      }
    }
  },
  "errors": []
}

Changes

No recorded changes to this operation across all 1 revision of this API.