Schemas
QuestChainsOutput
Temporary authorization and baseline for quest chain polling.
Active quest chains of the user, each with its tasks and progress. Empty when the user exists but takes part in no active chain, and also empty when the user is unknown — read user.exists to tell those apart.
Tasks from past (expired or completed) quest chains whose reward has not yet been claimed. The user may call the reward-claim endpoint for any of these.
Facts about the requested user that hold regardless of chain membership.
setup_statusInitial quest-chain setup state: not_started for an unknown user, pending while durable registration work remains retryable, ready after setup completes, and failed after retries are exhausted.
QuestChainItem
The quest chain this entry describes.
Levels of the chain, ordered by order_by. Contains a single virtual level when levels are disabled.
Progress of the requested user inside this chain.
Final reward of this quest chain, or null when the chain has no final reward.
QuestChain
idQuest chain unique identifier.
nameQuest chain name, safe to show to the user as is.
descriptionLong-form quest chain description, or null when the chain has none.
logo_urlAbsolute URL of the chain logo, or null when the chain has none.
background_image_urlAbsolute URL of the chain background image, or null when the chain has none.
start_dateMoment the chain becomes joinable, ISO 8601 with offset. Null means the chain has no explicit start and is governed by its status alone.
end_dateMoment the chain stops accepting progress, ISO 8601 with offset. Null means the chain has no explicit end.
statusLifecycle state of the quest chain itself. Only active, cooldown, pending_reward chains are returned by the active-chains endpoint;
platform_idIdentifier of the platform that owns the chain. Always the caller's own platform.
advertiser_idIdentifier of the advertiser funding the chain rewards, or null for a platform-funded chain.
allow_any_orderWhen true the tasks may be completed in any order; when false the chain is step-by-step and unreached tasks are reported with user_status: "locked".
use_levelsWhen true the tasks are grouped into levels; when false all tasks belong to a single virtual level.
QuestChainLevel
idLevel identifier, or null for the virtual common level when the chain has no levels.
nameLevel display name, or null for the virtual common level when the chain has no levels.
show_contentWhether the tasks of this level are visible to the user.
completedWhether all tasks in this level are completed or claimed by the user.
Tasks belonging to this level, ordered by sequence_number.
QuestChainTask
idTask unique identifier. Pass it to the reward-claim endpoint.
sequence_numberPosition of the task inside the chain, starting at 1. Tasks arrive already ordered by this field.
nameTask name, safe to show to the user as is.
descriptionLong-form task description, or null when the task has none.
completion_instructionsUser-facing instructions explaining what the user must do for the task to be considered complete, or null when no additional instructions are configured.
condition_event_typeType of the event that completes this task, for example transaction, link_account or kyc. Send it back through the events endpoint when the user performs the action.
condition_min_amountMinimum event amount required to complete the task, or null when the task has no amount condition.
condition_currencyCurrency the condition_min_amount is denominated in, for example USD. Null when the task has no amount condition.
condition_after_timestampOnly events at or after this moment can complete the task, ISO 8601 with offset. Null when the task has no lower time bound.
condition_before_timestampOnly events at or before this moment can complete the task, ISO 8601 with offset. Null when the task has no upper time bound.
reward_typeReward kind, for example credit, item, multiplier or case. Null when the task carries no reward. For a task completed by a retroactive event this is the retro reward, which may differ from the regular one.
reward_nameHuman-readable reward name, or null when the task carries no reward.
reward_valueNumeric reward value; meaningful for credit and multiplier rewards. Null when the reward has no numeric value.
reward_image_urlsAbsolute URLs of the reward images, or null when the reward has none.
Every possible outcome this reward can draw, with its weight, or null when the task carries no reward. Has more than one entry only for a reward that draws randomly among several outcomes (a "case"/mystery box) — the reward_type/reward_name/reward_value/reward_image_urls fields above only describe one committed outcome and fall back to a generic case preview in that situation, so a client that wants to show the actual possible prizes and their odds should read this field instead.
user_statusState of the task for the requested user, or null when no per-user record exists yet. See QuestChainUserTaskStatus for the individual values.
level_idIdentifier of the level this task belongs to, or null when the task is not assigned to any level.
RewardOutcome
typeReward kind of this possible outcome, for example credit, item or multiplier.
nameHuman-readable name of this possible outcome.
valueNumeric value of this possible outcome; meaningful for credit and multiplier rewards.
image_urlsAbsolute URLs of this outcome's images, or null when it has none.
weightDraw weight of this outcome relative to the other outcomes of the same reward, for showing odds.
QuestChainUserProgress
statusState of this user's participation in the chain.
progressCompletion of the chain in percent, 0 to 100.
joined_atMoment the user joined the chain, ISO 8601 with offset.
completed_atMoment the user completed the chain, ISO 8601 with offset. Null while the chain is still in progress.
completed_tasksNumber of tasks the user has completed or already claimed.
total_tasksTotal number of tasks in the chain.
QuestChainReward
idIdentifier of the prize backing this chain's final reward -- never a specific outcome. See reward_outcomes for the possible outcomes when this prize can draw more than one.
typeReward code sent to the reward provider, or null when it is not set.
nameHuman-readable reward name, or null when the reward has none.
valueNumeric reward value, or null when the reward has no numeric value.
image_urlsAbsolute URLs of the reward images, or null when the reward has none.
Every possible outcome this reward can draw, with its weight, or null when the chain has no final reward. See QuestChainTask.reward_outcomes for the same "case"/mystery box semantics.
claimableWhether the requested user can claim this final chain reward now.
ConnectAccountInput
tokenShort-lived account connection token received through the Onward OAuth flow.
advertiser_user_idIdentifier of the user in the advertiser's own system.
Advertiser-defined attributes to store with the account connection.
Up to 100 historical events to evaluate after the advertiser account is linked.
RetroEvent
event_typeAdvertiser-defined event type, for example deposit.completed.
timestamp^(?:(?:\d\d[2468][04… · requiredMoment the event occurred, formatted as an ISO 8601 UTC timestamp.
amountNon-negative event amount when the event represents a measurable value.
currencyCurrency or unit associated with amount, when applicable.
referenceAdvertiser-side idempotency or audit reference for this event.
Additional advertiser-defined event attributes.
ConnectAccountOutput
user_connectedAlways true when the account connection completed successfully.
user_idOnward user identifier.
platform_user_idIdentifier of the user in the platform's system.
advertiser_user_idIdentifier of the user in the advertiser's system.
redirect_urlValidated URL to which the integration should redirect the user.
event_idIdentifier of the account-link event created by Onward.
RegisterUserInput
platform_user_idUnique user identifier from your platform
Links the user to the advertiser of the x-advertiser-api-key/secret headers. Platforms do not send it.
country_codeISO 3166-1 alpha-2 country code of the user.
Additional user attributes supplied by the platform.
advertiser_user_idDeprecated: use as_advertiser.advertiser_user_id. Rejected together with as_advertiser.
RegisterUserAsAdvertiser
advertiser_user_idAdvertiser-side user identifier.
Up to 100 historical events to evaluate after the advertiser account is linked.
RegisterUserOutput
user_idInternal Onward identifier of the user.
platform_user_idUnique user identifier supplied by the platform.
created_atMoment the user was created, formatted as an ISO 8601 timestamp.
already_existsIndicates whether the user already existed at the moment of the request.
continuation_statusDurable user setup state: completed, pending, or failed.
SendEventInput
user_idIdentifier of the user in the caller's own system: a Platform user ID for Platform credentials or an Advertiser user ID for Advertiser credentials.
event_typeCaller-defined event type. Common examples include registration, kyc, link_account, and transaction.
timestamp^(?:(?:\d\d[2468][04… · requiredRequired ISO 8601 UTC timestamp indicating when the event occurred.
amountOptional non-negative value associated with the event, such as a deposit or purchase amount.
currencyOptional currency or unit associated with amount, for example an ISO 4217 code.
referenceOptional caller-defined business or audit reference associated with the event.
Additional caller-defined context used for task evaluation, audit, or analytics.
SendEventOutput
event_idInternal identifier of the recorded event.
user_idThe caller-scoped user identifier supplied in the request.
event_typeThe caller-defined event type supplied in the request.
received_atMoment Onward first recorded the event, formatted as an ISO 8601 timestamp.
statusreceived for a newly recorded event or duplicate when the same user, event type, and event timestamp were already recorded.
StartAccountConnectInput
platform_user_idUser's ID on the platform.
quest_chain_idQuest chain ID which initiates the account connection.
redirect_urlWhere to send the user after the connection completes (success or error)
StartAccountConnectOutput
redirect_urlClaimTaskRewardInput
platform_user_idIdentifier of the user in the calling Platform's own system.
task_idIdentifier of the completed quest-chain task whose reward the user is claiming.
ClaimTaskRewardOutput
user_task_idIdentifier of the user's task-progress record that was claimed.
task_idIdentifier of the claimed task.
user_idInternal Onward identifier of the user.
claimed_atISO 8601 timestamp when the reward claim was recorded.
The reward drawn from the task's mystery box at claim time, or null when the task has no reward configured.
ClaimedReward
idIdentifier of the reward configuration that was drawn. Correlates this claim response with the reward.claimed webhook event carrying the same reward_id.
typeReward kind, for example credit, item, multiplier, or case. Null when no type is configured.
Configured reward value. It may be a JSON number or a decimal string; null when the reward has no numeric value.
nameHuman-readable reward name, or null when none is configured.
provider_typeType of the provider responsible for fulfillment: platform or advertiser.
provider_idInternal identifier of the provider responsible for fulfillment.
metadataAdditional reward configuration passed to the fulfillment integration.
image_urlsAbsolute URLs of reward images, or null when the reward has none.
redemption_instructionsUser-facing instructions explaining how to receive, redeem, or use the claimed reward.
ClaimChainRewardInput
platform_user_idIdentifier of the user in the calling Platform's own system.
quest_chain_idIdentifier of the completed quest chain whose chain-level reward the user is claiming.
ClaimChainRewardOutput
quest_chain_idIdentifier of the quest chain whose chain-level reward was claimed.
user_idInternal Onward identifier of the user.
claimed_atISO 8601 timestamp when the chain reward claim was accepted.
The reward drawn from the chain's mystery box at claim time. A chain reward claim never succeeds without one.
ClaimedRewardListItem
claim_idIdentifier of the user task or user chain record that owns the claim.
source_typeWhether the reward was claimed for a task or for completing a quest chain.
source_idTask identifier for task claims, or quest-chain identifier for chain claims.
quest_chain_idQuest-chain identifier associated with the claim, when available.
claimed_atISO 8601 timestamp when the reward claim was recorded.
Reward configuration resolved at the moment of claim.