# GET /products/{product_id}

**Get a product**

Returns a product using its ID.

Use the `include` parameter to include related price entities in the response.

**Required permissions:** `product.read`

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `product_id` | string | required | Paddle ID of the product entity to work with. |

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | array | optional | Include related entities in the response. Use a comma-separated list to specify multiple entities. |

## Response (200)

- `data`: object (required) — Represents a product entity with included entities.
  - `id`: string (required) — Unique Paddle ID for this product, prefixed with `pro_`. (pattern: `^pro_[a-z\d]{26}$`)
  - `name`: string (required) — Name of this product. (Length: 1–200)
  - `description` (required) — Short description for this product. (Max length: 2048)
  - `type`: string (required) — Type of item. Standard items are considered part of your catalog and are shown in the Paddle dashboard.
  - `tax_category`: string (required) — Tax category for this product. Used for charging the correct rate of tax. Selected tax category must be enabled on your Paddle account.
  - `image_url` (required) — Image for this product. Included in the checkout and on some customer documents.
  - `custom_data` (required) — Your own structured key-value data.
  - `status`: string (required) — Whether this entity can be used in Paddle.
  - `import_meta` (required) — Import information for this entity. `null` if this entity is not imported.
  - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
  - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
  - `prices`: array — Prices for this product. Returned when the `include` parameter is used with the `prices` value.
- `meta`: object (required) — Information about this response.
  - `request_id`: string (required) — Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.

### Response example

```json
{
  "data": {
    "id": "pro_01gsz4t5hdjse780zja8vvr7jg",
    "name": "AeroEdit Pro",
    "tax_category": "standard",
    "type": "standard",
    "description": "Designed for professional pilots, including all features plus in Basic plus compliance monitoring, route optimization, and third-party integrations.",
    "image_url": "https://paddle.s3.amazonaws.com/user/165798/bT1XUOJAQhOUxGs83cbk_pro.png",
    "custom_data": {
      "features": {
        "aircraft_performance": true,
        "compliance_monitoring": true,
        "flight_log_management": true,
        "payment_by_invoice": false,
        "route_planning": true,
        "sso": false
      },
      "suggested_addons": [
        "pro_01h1vjes1y163xfj1rh1tkfb65",
        "pro_01gsz97mq9pa4fkyy0wqenepkz"
      ],
      "upgrade_description": "Move from Basic to Pro to take advantage of aircraft performance, advanced route planning, and compliance monitoring."
    },
    "status": "active",
    "import_meta": null,
    "created_at": "2023-02-23T12:43:46.605Z",
    "updated_at": "2024-04-05T15:53:44.687Z"
  },
  "meta": {
    "request_id": "ccb21d76-1e13-4a5e-afb8-0f4c9f20ac07"
  }
}
```
