API Integration (Advanced)

Get Progress API - Technical Docs

Quick start

curl -H "X-API-Key: YOUR_WALL_API_KEY" \
  "https://publishers.revenueuniverse.com/api/v1/users/USER_ID/getprogress?limit=25"
curl -H "X-API-Key: YOUR_WALL_API_KEY" \
  "https://publishers.revenueuniverse.com/api/v1/users/USER_ID/getprogress?limit=25"
curl -H "X-API-Key: YOUR_WALL_API_KEY" \
  "https://publishers.revenueuniverse.com/api/v1/users/USER_ID/getprogress?limit=25"

Endpoint

Method: GET. HTTPS is required.

Authentication

This endpoint uses your wall-specific API key (a 20 character key found in the Publisher Portal under Offerwall > API Key). The key identifies the wall, so there is no wall parameter to send.

This key is specific to Get Progress. It is different from the account-level key used by the Get Offers API. The Get Personalized API requires no key at all. Use the wall key shown under Offerwall > API Key for this endpoint.

You can supply the key in any of these ways:

  • Header: X-API-Key: YOUR_WALL_API_KEY

  • Header: Authorization: ApiKey YOUR_WALL_API_KEY

  • Header: Authorization: Bearer YOUR_WALL_API_KEY

  • Query parameter: api_key=YOUR_WALL_API_KEY

Passing the key as a header is recommended so it stays out of URLs and logs. Keep the key secret and never expose it in client-side code.

Request parameters

Parameter

In

Type

Required

Description

user_id

path

string

Yes

The user's identifier in your integration (ASCII).

limit

query

integer

No

Maximum offers to return (1 to 500). Default 100.

offset

query

integer

No

Pagination offset. Default 0.

offer_id

query

integer

No

Return progress for a single offer only.

reward_status

query

integer

No

Filter by reward status: 1 in progress, 2 credited, 3 reversed or expired, 4 pending credit.

sid3

query

string

No

Optional session identifier.

ip

query

string (IPv4)

No

IP used for country macro expansion. Defaults to the caller's IP.

country

query

string

No

Two-letter country override for macros.

click_src

query

integer

No

Click source used when generating click_url.

Pagination

Results are paged with limit and offset, and the response reports total (the number of matching offers before paging). Walk the full set by incrementing offset by limit until offset reaches total.

The response

A successful request returns status: "success" and a paged list of the user's offers.

{
  "status": "success",
  "publisher_id": 2,
  "wall_id": 888,
  "support_id": 123456,
  "total": 25,
  "offset": 0,
  "limit": 100,
  "offers": [ /* ... offer progress objects ... */ ]
}
{
  "status": "success",
  "publisher_id": 2,
  "wall_id": 888,
  "support_id": 123456,
  "total": 25,
  "offset": 0,
  "limit": 100,
  "offers": [ /* ... offer progress objects ... */ ]
}
{
  "status": "success",
  "publisher_id": 2,
  "wall_id": 888,
  "support_id": 123456,
  "total": 25,
  "offset": 0,
  "limit": 100,
  "offers": [ /* ... offer progress objects ... */ ]
}

Field

Type

Description

status

string

success on a 2xx response.

publisher_id

integer

Your affiliate (publisher) ID.

wall_id

integer

The wall the key belongs to.

support_id

integer

A reference ID for this request, useful when contacting support.

total

integer

Matching offers before the offset/limit page slice.

offset

integer

The offset applied to this page.

limit

integer

The page size applied to this page.

offers

array

The user's offers and their progress (see below).

The offer object

Each entry in offers[] describes one offer the user has engaged with. The content, categorization, and reward fields match the rest of the RevU suite; the progress detail lives mostly inside events[].

Identity and content

Field

Type

Description

offer_id

integer

Unique offer identifier.

offer_name

string

Internal/campaign name.

headline

string

Short marketing headline.

description

string

Longer description.

offer_terms

string

Terms and requirements.

tag

string

Optional campaign label.

Categorization

Field

Type

Description

offer_type

string

Category label: Undefined, Free, Purchase, Trial, Other, Mobile Apps, Clicks and Videos, Studies, Contest.

offer_category

integer

Internal content category (0 to 11): 0 Undefined, 1 Casino/Gambling, 2 Loyalty Offers, 3 Non Branded Submits, 4 Games, 5 Trial/Purchase, 6 Surveys, 7 Branded, 8 Mobile Non Gaming, 9 Alcohol/Tobacco/Drugs, 10 Other Mature, 11 Social Casinos.

Rewards

Field

Type

Description

total_user_reward

number

Total virtual currency the user can earn across all events (sum of events[].user_reward).

total_payout

number

Your total payout across events in USD.

offer_conversion_window

integer

Base attribution window in days.

Click URL and timing

Field

Type

Description

click_url

string

The user-specific tracking URL. Serve it as-is.

attributed_click_time

string

null

mobile_package_id

string

null

creatives

array

Images, each with url, width, and height.

reporting

string

Expected tracking delay: Instant, Hourly, or 2-3 Days.

Events and per-step progress

Each entry in events[] is one step of the offer, with both its reward terms and the user's progress on it.

Field

Type

Description

event_id

string

Identifier for this step (the base step is base_<offer_id>).

event_description

string

What the user must do for this step.

user_reward

number

Virtual currency offered for this step.

payout

number

Your payout for this step in USD.

conversion_type

integer

Reporting type id from the campaign configuration.

event_conversion_window

integer

Attribution window for this event in days.

event_order

integer

false

points_awarded

integer

Points actually awarded to the user from the conversion record.

user_completed_at

string

null

event_reward_status

integer

Status code: 1 in progress, 2 credited, 3 reversed or expired, 4 pending credit.

event_reward_status_label

string

The status as a label: in_progress, credited, reversed_or_expired, pending_credit, or unknown.

pending_time

string

null

Reward status reference

The same status set is used by the reward_status filter and by each event's event_reward_status:

Code

Label

Meaning

1

in_progress

The user has started but not yet completed the step.

2

credited

The reward has been credited.

3

reversed_or_expired

The reward was reversed, or the opportunity expired.

4

pending_credit

Completed and awaiting credit (see pending_time for the expected time).

Best practices

  • Call on demand. Fetch a user's progress when you are about to render it, rather than caching it.

  • Serve click_url unmodified. It is already specific to the user.

  • Use event_reward_status_label to drive UI states (in progress, credited, pending, reversed).

  • Use reward_status to fetch just the slice you need (for example, only in-progress offers for an activity screen).

  • Paginate with limit and offset and stop once offset reaches total.

  • Include support_id from the response when you raise a support ticket.

Errors

Every error uses the same shape:

{ "status": "error", "error": { "code": "INVALID_API_KEY", "message": "Invalid or inactive API key" } }
{ "status": "error", "error": { "code": "INVALID_API_KEY", "message": "Invalid or inactive API key" } }
{ "status": "error", "error": { "code": "INVALID_API_KEY", "message": "Invalid or inactive API key" } }

HTTP

error.code

Meaning

400

MISSING_USER_ID

user_id was not supplied.

400

INVALID_USER_ID

The user ID contains unsupported (non-ASCII) characters.

401

MISSING_API_KEY

No API key was supplied.

403

INVALID_API_KEY

The key is invalid or inactive.

403

INVALID_WALL

The key does not resolve to a valid wall or affiliate.

405

(method not allowed)

Only GET is supported.

500

DB_ERROR / UID_DATA_ERROR

A server or data error occurred.

Support

For technical questions, contact your account manager or sales contact. Include the support_id from the response when reporting an issue.

Share feedback on this documentation