Skip to main content
Returns the bandit-ranked eligible offers for one user, up to limit, so you can render them in your own UI and cycle through them. Each offer carries its own impressionUid and a branded short clickUrl.
Calling this endpoint is not the impression. When you actually display an offer, confirm it with POST /offers/impressions/{impressionUid}/delivered. For the scenario walkthrough (render, confirm, route the tap), see the Rewarded Actions guide; to fetch your full curated inventory instead of a ranked selection, see POST /offers/catalog.

Authentication

Pass your publishable key in the X-API-Key header (pk_live_* for production, pk_test_* for development). Multi-app projects also send X-Platform: api. Test keys return offers but do no impression or conversion tracking. The full model, including the API platform app type, is in the overview’s Authentication section.

Request

Structure

Field Reference

API-platform apps receive every eligible offer by default. An app created with platform API gets all entitled, geo-eligible offers with no per-platform trimming, which is ideal when you serve a mixed-platform audience from your own server. To narrow a single request to one surface, send that end user’s device platform in attributes.platform.

Response

Structure

Field Reference

The response carries no internal identifiers beyond each offer’s impressionUid. Offer ids, campaign ids, creative ids, and request ids are not returned; they are still computed server-side for analytics.

Image fields

imageUrl is a wide ~2.4:1 banner, not 16:9. A 16:9 slot will crop or letterbox it.

Example

Status codes

Retry guidance

  • Retries are not deduplicated server-side. Every /offers/feed call generates fresh short links and analytics rows, so only fetch a feed once per placement you intend to render.
  • Use exponential backoff with jitter (for example 200ms, 1s, 5s, max 3 retries) for transient failures (429 / 503 / network).
  • After exhausting retries, render nothing. The end-user experience should never degrade because of an Encore outage.