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

# Get Product

> Retrieve a single product by ID

# Get Product

Returns a single product by its unique ID.

## Request

```bash theme={null}
curl -X GET "https://api.launchmystore.io/api/v1/products/482910.json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

## Parameters

<ParamField path="id" type="string" required>
  The product to retrieve. Accepts either the UUID product ID or the
  6-digit numeric product ID.
</ParamField>

## Response

Returns the product as a bare object under the `product` key. Money
fields are returned as decimal strings and IDs are numeric. The header
`X-LMS-Api-Version` advertises the contract version.

<ResponseField name="product" type="object">
  The product object

  <Expandable title="Product Object">
    <ResponseField name="id" type="integer">
      Numeric product ID
    </ResponseField>

    <ResponseField name="product_id" type="string">
      UUID product ID. Either `id` or `product_id` may be used as the
      `:id` path parameter on subsequent calls.
    </ResponseField>

    <ResponseField name="title" type="string">
      Product title
    </ResponseField>

    <ResponseField name="handle" type="string">
      URL-safe product handle
    </ResponseField>

    <ResponseField name="body_html" type="string">
      Product description (HTML)
    </ResponseField>

    <ResponseField name="vendor" type="string">
      Product vendor
    </ResponseField>

    <ResponseField name="product_type" type="string">
      Product type/category
    </ResponseField>

    <ResponseField name="published_scope" type="string">
      Publication scope. Always `global`.
    </ResponseField>

    <ResponseField name="published_at" type="string">
      Publish timestamp (ISO 8601)
    </ResponseField>

    <ResponseField name="tags" type="array">
      Array of product tags
    </ResponseField>

    <Note>
      The product body does **not** include a `status`
      (`active`/`draft`/`archived`) field — the product transformer does
      not emit one, so don't gate logic on product status read from this
      endpoint. `status` is still **settable** on
      [Create](/api-reference/products/create) /
      [Update](/api-reference/products/update) and **filterable** on
      [List Products](/api-reference/products/list) — it's just not echoed
      back in the response.
    </Note>

    <ResponseField name="variants" type="array">
      Array of product variants
    </ResponseField>

    <ResponseField name="options" type="array">
      Array of product options (e.g., Size, Color)
    </ResponseField>

    <ResponseField name="images" type="array">
      Array of product images
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Creation timestamp (ISO 8601)
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Last update timestamp (ISO 8601)
    </ResponseField>
  </Expandable>
</ResponseField>

## Example Response

```json theme={null}
{
  "product": {
    "id": 482910,
    "product_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "title": "Classic T-Shirt",
    "handle": "classic-t-shirt",
    "body_html": "<p>A comfortable cotton t-shirt perfect for everyday wear.</p>",
    "vendor": "MyBrand",
    "product_type": "Apparel",
    "published_scope": "global",
    "published_at": "2024-01-15T10:30:00.000Z",
    "tags": ["cotton", "casual", "summer"],
    "options": [
      {
        "id": 1,
        "name": "Size",
        "position": 1,
        "values": ["Small", "Medium", "Large", "XL"]
      },
      {
        "id": 2,
        "name": "Color",
        "position": 2,
        "values": ["Black", "White", "Navy"]
      }
    ],
    "variants": [
      {
        "id": 731204,
        "title": "Small / Black",
        "price": "25.00",
        "compare_at_price": "30.00",
        "sku": "TSHIRT-S-BLK",
        "inventory_quantity": 50,
        "weight": 0.2,
        "weight_unit": "kg",
        "option1": "Small",
        "option2": "Black",
        "position": 1
      }
    ],
    "images": [
      {
        "id": 1,
        "src": "https://cdn.launchmystore.io/images/tshirt.jpg",
        "alt": "Classic T-Shirt",
        "position": 1,
        "width": 1200,
        "height": 1200
      }
    ],
    "created_at": "2024-01-15T10:30:00.000Z",
    "updated_at": "2024-01-20T14:45:00.000Z"
  }
}
```

## Error Response

If no product matches the given ID, a standard `{ errors }` body is
returned with HTTP `404`:

```json theme={null}
{
  "errors": {
    "base": ["Product not found"]
  }
}
```
