> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fungies.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Product

> The Product object represents a sellable item in your Fungies store.

A Product object represents something you sell in your store. Products contain metadata like name, description, and type, while pricing is managed through linked [Offers](/core-resources/offer). This separation allows a single product to have multiple pricing options for different regions or tiers.

Products support various types including digital downloads, games, gift cards, software keys, subscriptions, and one-time payments. Each product can have variants (different versions) and, for subscriptions, billing plans.

## Endpoints

| Method  | Endpoint                                                | Description              |
| ------- | ------------------------------------------------------- | ------------------------ |
| `GET`   | `/v0/products/list`                                     | List and filter products |
| `POST`  | `/v0/products/create`                                   | Create a new product     |
| `GET`   | `/v0/products/{productId}`                              | Retrieve a product       |
| `PATCH` | `/v0/products/{productId}/update`                       | Update a product         |
| `PATCH` | `/v0/products/{productId}/archive`                      | Archive a product        |
| `POST`  | `/v0/products/{productId}/duplicate`                    | Duplicate a product      |
| `POST`  | `/v0/products/{productId}/variants/add`                 | Add a variant            |
| `PATCH` | `/v0/products/{productId}/variants/{variantId}/update`  | Update a variant         |
| `PATCH` | `/v0/products/{productId}/variants/{variantId}/archive` | Archive a variant        |
| `POST`  | `/v0/products/{productId}/plans/add`                    | Add a subscription plan  |
| `PATCH` | `/v0/products/{productId}/plans/{planId}/update`        | Update a plan            |
| `PATCH` | `/v0/products/{productId}/plans/{planId}/archive`       | Archive a plan           |

## The Product object

<ResponseField name="object" type="string">
  Object type identifier. Always `"product"` for Product objects.
</ResponseField>

<ResponseField name="id" type="string" required>
  Unique identifier (UUID) for this product.
</ResponseField>

<ResponseField name="type" type="string" required>
  Product type. Possible values: `DigitalDownload`, `Game`, `GiftCard`, `SoftwareKey`, `VirtualCurrency`, `VirtualItem`, `Subscription`, `OneTimePayment`
</ResponseField>

<ResponseField name="name" type="string" required>
  Display name of the product.
</ResponseField>

<ResponseField name="description" type="string">
  Product description. May contain HTML or markdown.
</ResponseField>

<ResponseField name="internalId" type="string | null">
  Your custom identifier for this product. Use to link to your own inventory system.
</ResponseField>

<ResponseField name="status" type="string" required>
  Product status. Possible values: `DRAFT`, `ACTIVE`, `ARCHIVED`
</ResponseField>

<ResponseField name="developer" type="string | null">
  Game developer name (primarily for `Game` type products).
</ResponseField>

<ResponseField name="publisher" type="string | null">
  Game publisher name (primarily for `Game` type products).
</ResponseField>

<ResponseField name="releaseDate" type="integer | null">
  Unix timestamp (milliseconds) of the game's release date.
</ResponseField>

<ResponseField name="pegiRating" type="string | null">
  PEGI age rating. Possible values: `3`, `7`, `12`, `16`, `18`, `!` (pending)
</ResponseField>

<ResponseField name="systems" type="array | null">
  Supported platforms/systems. Possible values: `Windows`, `MacOs`, `Linux`, `PlayStation 4`, `PlayStation 5`, `Xbox One`, `Xbox Series X|S`, `iOS`, `Android`, `Nintendo Switch`, `Nintendo 3DS`
</ResponseField>

<ResponseField name="genres" type="array | null">
  Game genres. Common values: `Action`, `Adventure`, `RPG`, `FPS`, `Strategy`, `Simulation`, `Sports`, `Racing`, `Puzzle`, `Horror`, `Indie`, `MMO`, `Open World`, `Multiplayer`
</ResponseField>

***

## Product hierarchy

```mermaid theme={null}
flowchart TB
    Prod["🎮 Product"]
    
    Prod --> Variants["Variants"]
    Prod --> Plans["Plans"]
    
    Variants --> V1["Standard Edition"]
    Variants --> V2["Deluxe Edition"]
    Variants --> V3["Ultimate Edition"]
    
    Plans --> P1["Monthly Plan"]
    Plans --> P2["Annual Plan"]
    Plans --> P3["Lifetime Plan"]
    
    V1 --> O1["Offer: US $59.99"]
    V1 --> O2["Offer: EU €54.99"]
    V2 --> O3["Offer: US $79.99"]
```

***

## Example response

```json theme={null}
{
  "status": "success",
  "data": {
    "product": {
      "object": "product",
      "id": "bb0e8400-e29b-41d4-a716-446655440006",
      "type": "Game",
      "name": "Epic Adventure Quest",
      "description": "An immersive open-world RPG experience...",
      "internalId": "game_epic_adventure",
      "status": "ACTIVE",
      "developer": "Awesome Games Studio",
      "publisher": "Big Publisher Inc",
      "releaseDate": 1735689600000,
      "pegiRating": "16",
      "systems": ["Windows", "PlayStation 5", "Xbox Series X|S"],
      "genres": ["Action RPG", "Open World", "Adventure"]
    }
  }
}
```

***

## Subscription product example

```json theme={null}
{
  "status": "success",
  "data": {
    "product": {
      "object": "product",
      "id": "cc0e8400-e29b-41d4-a716-446655440007",
      "type": "Subscription",
      "name": "Pro Membership",
      "description": "Unlock all premium features with our Pro plan",
      "internalId": "membership_pro",
      "status": "ACTIVE",
      "developer": null,
      "publisher": null,
      "releaseDate": null,
      "pegiRating": null,
      "systems": null,
      "genres": null
    }
  }
}
```

***

## Related resources

<CardGroup cols={2}>
  <Card title="Offers" icon="tag" href="/core-resources/offer">
    Pricing options for products
  </Card>

  <Card title="Discounts" icon="percent" href="/core-resources/discount">
    Discounts applicable to products
  </Card>

  <Card title="Orders" icon="receipt" href="/core-resources/order">
    Orders containing products
  </Card>

  <Card title="Subscriptions" icon="rotate" href="/core-resources/subscription">
    Subscription products
  </Card>
</CardGroup>
