OnwardOnward
  • Public docs
  • Internal docs
  • Guides
  • Public API Reference
  • Internal documentation
Information
Users API
Account Connection API
Events API
Rewards API
Quest chain API
Schemas
Onward Public API
Onward Public API

Schemas


QuestChainsOutput

Payload of user's chains response: every active quest chain of one platform user.
​object · required

Temporary authorization and baseline for quest chain polling.

​object[] · required

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.

​object[] · required

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.

​object · required

Facts about the requested user that hold regardless of chain membership.

QuestChainItem

One quest chain together with its tasks and the user's progress in it.
​object · required

The quest chain this entry describes.

​object[] · required

Levels of the chain, ordered by order_by. Contains a single virtual level when levels are disabled.

​object · required

Progress of the requested user inside this chain.

​object · required

Final reward of this quest chain, or null when the chain has no final reward.

QuestChain

Metadata of a quest chain the user takes part in.
id
​string · uuid · required

Quest chain unique identifier.

name
​string · required

Quest chain name, safe to show to the user as is.

description
​null | string · required

Long-form quest chain description, or null when the chain has none.

logo_url
​null | string · required

Absolute URL of the chain logo, or null when the chain has none.

background_image_url
​null | string · required

Absolute URL of the chain background image, or null when the chain has none.

start_date
​null | string · required

Moment the chain becomes joinable, ISO 8601 with offset. Null means the chain has no explicit start and is governed by its status alone.

end_date
​null | string · required

Moment the chain stops accepting progress, ISO 8601 with offset. Null means the chain has no explicit end.

status
​string · enum · required

Lifecycle state of the quest chain itself. Only active, cooldown, pending_reward chains are returned by the active-chains endpoint;

Enum values:
active
completed
cancelled
archived
cooldown
pending_reward
expired
platform_id
​string · uuid · required

Identifier of the platform that owns the chain. Always the caller's own platform.

advertiser_id
​null | string · uuid · required

Identifier of the advertiser funding the chain rewards, or null for a platform-funded chain.

allow_any_order
​boolean · required

When 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_levels
​boolean · required

When true the tasks are grouped into levels; when false all tasks belong to a single virtual level.

QuestChainLevel

A group of tasks within a quest chain, or the virtual common level when levels are disabled.
id
​null | string · uuid · required

Level identifier, or null for the virtual common level when the chain has no levels.

name
​null | string · required

Level display name, or null for the virtual common level when the chain has no levels.

show_content
​boolean · required

Whether the tasks of this level are visible to the user.

completed
​boolean · required

Whether all tasks in this level are completed or claimed by the user.

​object[] · required

Tasks belonging to this level, ordered by sequence_number.

QuestChainTask

A single task of a quest chain, already resolved for the requested user.
id
​string · uuid · required

Task unique identifier. Pass it to the reward-claim endpoint.

sequence_number
​integer · min: -9007199254740991 · max: 9007199254740991 · required

Position of the task inside the chain, starting at 1. Tasks arrive already ordered by this field.

name
​string · required

Task name, safe to show to the user as is.

description
​null | string · required

Long-form task description, or null when the task has none.

condition_event_type
​string · required

Type 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_amount
​null | number · required

Minimum event amount required to complete the task, or null when the task has no amount condition.

condition_currency
​null | string · required

Currency the condition_min_amount is denominated in, for example USD. Null when the task has no amount condition.

condition_after_timestamp
​null | string · required

Only 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_timestamp
​null | string · required

Only events at or before this moment can complete the task, ISO 8601 with offset. Null when the task has no upper time bound.

reward_type
​null | string · required

Reward 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_name
​null | string · required

Human-readable reward name, or null when the task carries no reward.

reward_value
​null | number · required

Numeric reward value; meaningful for credit and multiplier rewards. Null when the reward has no numeric value.

reward_image_urls
​null | array · required

Absolute URLs of the reward images, or null when the reward has none.

user_status
​null | string · enum · required

State of the task for the requested user, or null when no per-user record exists yet. See QuestChainUserTaskStatus for the individual values.

Enum values:
pending
activated
completed
claimed
locked
level_id
​null | string · uuid · required

Identifier of the level this task belongs to, or null when the task is not assigned to any level.

QuestChainUserProgress

Progress of the requested user inside one quest chain.
status
​string · enum · required

State of this user's participation in the chain.

Enum values:
in_progress
completed
pending_reward
cooldown
progress
​number · required

Completion of the chain in percent, 0 to 100.

joined_at
​string · required

Moment the user joined the chain, ISO 8601 with offset.

completed_at
​null | string · required

Moment the user completed the chain, ISO 8601 with offset. Null while the chain is still in progress.

completed_tasks
​integer · min: -9007199254740991 · max: 9007199254740991 · required

Number of tasks the user has completed or already claimed.

total_tasks
​integer · min: -9007199254740991 · max: 9007199254740991 · required

Total number of tasks in the chain.

QuestChainReward

The big reward of a quest chain, resolved for the requested user.
id
​string · uuid · required

Final quest chain reward identifier.

type
​null | string · required

Reward code sent to the reward provider, or null when it is not set.

name
​null | string · required

Human-readable reward name, or null when the reward has none.

value
​null | number · required

Numeric reward value, or null when the reward has no numeric value.

image_urls
​null | array · required

Absolute URLs of the reward images, or null when the reward has none.

claimable
​boolean · required

Whether the requested user can claim this final chain reward now.

RetroEvent

A historical event to apply immediately after connecting the account.
event_type
​string · minLength: 1 · maxLength: 100 · required

Advertiser-defined event type, for example deposit.completed.

timestamp
​string · date-time · pattern: ^(?:(?:\d\d[2468][04… · required

Moment the event occurred, formatted as an ISO 8601 UTC timestamp.

amount
​number · min: 0

Non-negative event amount when the event represents a measurable value.

currency
​string · maxLength: 10

Currency or unit associated with amount, when applicable.

reference
​string · maxLength: 255

Advertiser-side idempotency or audit reference for this event.

​object

Additional advertiser-defined event attributes.

ConnectAccountOutput

Result of a successfully completed account connection.
user_connected
​boolean · enum · required

Always true when the account connection completed successfully.

Enum values:
user_id
​string · uuid · required

Onward user identifier.

platform_user_id
​string · required

Identifier of the user in the platform's system.

advertiser_user_id
​string · required

Identifier of the user in the advertiser's system.

redirect_url
​string · uri · required

Validated URL to which the integration should redirect the user.

event_id
​string · uuid · required

Identifier of the account-link event created by Onward.

processed_outbox_record_ids
​integer[] · required

Identifiers of outbox records processed as part of the connection workflow.

RegisterUserOutput

Result of registering or finding a platform user in Onward.
user_id
​string · uuid · required

Internal Onward identifier of the user.

Example: 6f2f6f4e-4a1e-4f6f-9a2b-2c9d1f0b7a31
platform_user_id
​string · required

Unique user identifier supplied by the platform.

Example: user_12345
created_at
​string · date-time · required

Moment the user was created, formatted as an ISO 8601 timestamp.

Example: 2026-08-20T12:30:00.000Z
already_exists
​boolean · required

Indicates whether the user already existed at the moment of the request.

Example: false

SendEventOutput

Result of recording or deduplicating a Platform or Advertiser event.
event_id
​string · uuid · required

Internal identifier of the recorded event.

Example: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
user_id
​string · required

The caller-scoped user identifier supplied in the request.

Example: platform-user-456
event_type
​string · required

The caller-defined event type supplied in the request.

Example: transaction
received_at
​string · date-time · required

Moment Onward first recorded the event, formatted as an ISO 8601 timestamp.

Example: 2025-10-21T18:45:01Z
status
​string · enum · required

received for a newly recorded event or duplicate when the same user, event type, and event timestamp were already recorded.

Enum values:
received
duplicate
Example: received

StartAccountConnectOutput

redirect_url
​string · uri · required

ClaimTaskRewardOutput

Identifiers and timestamp of the successfully recorded task reward claim.
user_task_id
​string · uuid · required

Identifier of the user's task-progress record that was claimed.

Example: 550e8400-e29b-41d4-a716-446655440000
task_id
​string · uuid · required

Identifier of the claimed task.

Example: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
user_id
​string · uuid · required

Internal Onward identifier of the user.

Example: 550e8400-e29b-41d4-a716-446655440001
claimed_at
​string · date-time · required

ISO 8601 timestamp when the reward claim was recorded.

Example: 2026-08-20T12:30:00Z

ClaimChainRewardOutput

Identifiers and timestamp of the accepted quest-chain reward claim.
quest_chain_id
​string · uuid · required

Identifier of the quest chain whose chain-level reward was claimed.

Example: 6f2f6f4e-4a1e-4f6f-9a2b-2c9d1f0b7a31
user_id
​string · uuid · required

Internal Onward identifier of the user.

Example: 550e8400-e29b-41d4-a716-446655440001
claimed_at
​string · date-time · required

ISO 8601 timestamp when the chain reward claim was accepted.

Example: 2026-08-20T12:35:00Z
On this page
  • QuestChainsOutput
  • QuestChainItem
  • QuestChain
  • QuestChainLevel
  • QuestChainTask
  • QuestChainUserProgress
  • QuestChainReward
  • RetroEvent
  • ConnectAccountOutput
  • RegisterUserOutput
  • SendEventOutput
  • StartAccountConnectOutput
  • ClaimTaskRewardOutput
  • ClaimChainRewardOutput