# Get current user's offer chain by ID

Gets the current user’s offer chain by the offer chain's ID.  
  Note
    This API call uses a user JWT for authorization.
    Include the token in the Authorization header in the following format: Bearer &lt;user_JWT&gt;. For more information about user JWT, see the Security block for this call.

Endpoint: GET /v2/project/{project_id}/user/offer_chain/{offer_chain_id}
Version: 2.0.0
Security: XsollaLoginUserJWT

## Path parameters:

  - `project_id` (integer, required)
    Project ID. You can find this parameter in your Publisher Account next to the project name and in the browser address bar when working with a project. The URL has the following format: https://publisher.xsolla.com//projects/.
    Example: 44056

  - `offer_chain_id` (integer, required)
    Offer chain ID.
    Example: 101

## Response 200 fields (application/json):

  - `id` (integer)
    Offer chain ID.
    Example: 9

  - `name` (string)
    Offer chain name.
    Example: "Weekly quest"

  - `description` (string,null)
    Offer chain description.
    Example: "Major weekly quest"

  - `order` (integer)
    Defines arrangement order.

  - `date_start` (string)
    Date when the offer chain starts.

  - `date_end` (string,null)
    Date when the offer chain ends. Can be null. If date_end is null, the offer chain will not have a time limit.

  - `steps` (array)

  - `steps.step_number` (integer)
    Step number.

  - `steps.is_free` (boolean)
    Indicates whether the offer chain step is free:If true, the step must be claimed using the Claim free offer chain step call.If false, it must be purchased using the Create order for paid offer chain step call.

  - `steps.is_claimed` (boolean)
    Indicates whether the step reward is claimed or purchased.

  - `steps.step_price` (object,null)

  - `steps.step_price.amount` (number, required)
    Step price in real currency.

  - `steps.step_price.currency` (string, required)
    Item price currency. Three-letter code per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).

  - `steps.items` (array)

  - `steps.items.item_id` (integer)
    Internal unique item ID.

  - `steps.items.sku` (string)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.

  - `steps.items.type` (string)
    Type of item: virtual_good/virtual_currency/bundle/unit.

  - `steps.items.name` (string)
    Item name.

  - `steps.items.description` (string,null)
    Item description.

  - `steps.items.bundle_type` (string,null)
    Enum: "standard", "virtual_currency_package"

  - `steps.items.image_url` (string,null)
    Image URL.

  - `steps.items.is_free` (boolean)
    Whether the item is free.

  - `steps.items.quantity` (integer)
    Amount of items.
    Example: 1

  - `steps.items.order` (integer)
    Defines arrangement order.

  - `steps.items.content` (array,null)

  - `steps.step_vp_rewards` (array,null)
    An array of value points from the reward system, granted as a reward.

  - `steps.step_vp_rewards.item_id` (integer)
    Internal unique item ID.

  - `steps.step_vp_rewards.sku` (string)
    Unique value point ID.

  - `steps.step_vp_rewards.amount` (integer)
    Amount of value points.

  - `steps.step_vp_rewards.name` (string)
    Value point name.

  - `steps.step_vp_rewards.image_url` (string)
    Image URL.

  - `steps.step_vp_rewards.is_clan` (boolean)
    Whether the value point is used in clan reward chains.

  - `steps.step_loyalty_rewards` (array,null)

  - `steps.step_loyalty_rewards.name` (string)
    Loyalty point name.
    Example: "First Loyalty Point"

  - `steps.step_loyalty_rewards.sku` (string)
    Loyalty point SKU.
    Example: "0c745ef0-4243-46e1-aa90-54dee07da622"

  - `steps.step_loyalty_rewards.description` (string)
    Loyalty point description.
    Example: "First Loyalty Point Desc"

  - `steps.step_loyalty_rewards.image_url` (string,null)
    Image URL.

  - `steps.step_loyalty_rewards.amount` (integer)
    Amount of loyalty points.
    Example: 1

  - `recurrent_schedule` (object,null)
    Reset period of the offer chain.

  - `recurrent_schedule.interval_type` (string)
    Frequency of the offer chain reset.
    Enum: "weekly", "monthly", "hourly"

  - `recurrent_schedule.reset_next_date` (integer)
    The calculated date and time when the offer chain will be reset next time, in Unix Timestamp format.  For example, the monthly offer chain reset starts on March 1, 2024, at 01:00 Kuala Lumpur time (GMT+8). The following reset occurs on April 1, 2024 at 01:00 Kuala Lumpur time (GMT+8), which corresponds to March 31, 2024 17:00 GMT+0 or 1711904400000 in the Unix Timestamp format.  Example: 1711904400000

  - `next_step_number` (integer,null)
    Next offer chain step number. null if the offer chain is completed.
    Example: 1

## Response 404 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (object,null)


