# Get Product

Returns a single Product resource by its identifier.
## Authentication
Requires a valid API key in the `X-API-KEY` header.
## Headers
### Accept-Language
Indicates the preferred natural language and locale for localized content.
- **omitted / null**: content in the tenant's default culture.
- **culture-code** (e.g. `en-US`, `es`): content localized in the specified culture.
- **`*`** and q-factor weighting are currently not supported.

## OData Query Support
### $select
Comma-separated list of root-resource property names to include in the response.
See `/Products/$metadata` for the available properties.
Selecting properties of embedded resources is not supported.
Example: `$select=prod_description,prod_tags`
### $expand
Comma-separated list of embedded collections to include (e.g. `Variants`).
By default, embedded collections are not included.
Only embedded collections (not embedded resources) are supported.
Example: `$expand=Variants`
## Response
**200 OK** — `EntityRepresentation` with the Product resource.
## Error Responses
- **400 Bad Request** — Invalid OData expression (returns `ValidationFailureRepresentation`).
- **401 Unauthorized** — Missing or invalid API key. Returned by the API gateway as
`{ "message": "Unauthorized", "request_id": "d8aafa5b8f3e400b60bea0123dd33317" }`.
- **404 Not Found** — Product with the given identifier does not exist.
- **500 Internal Server Error** — Unexpected technical error.

## Example
**Request:**

```http
GET /Products(456)?$select=prod_description,prod_tags&$expand=Variants HTTP/1.1
X-API-KEY: your-api-key-here
Accept-Language: en-US
```
**Response:**

```http
HTTP/1.1 200 OK
Content-Type: application/json
```

Endpoint: GET /Products({productIdentifier})
Version: 2.0.0

## Path parameters:

  - `productIdentifier` (integer, required)
    Product resource identifier

## Query parameters:

  - `$select` (string)

  - `$expand` (string)

## Header parameters:

  - `X-API-KEY` (string)
    Tenant's API key (required)

  - `Accept-Language` (string)
    Preferred localization culture (Accept-Language header)

## Response 200 fields (application/json):

  - `@readLink` (string)

  - `@editLink` (string)

  - `@etag` (string)

  - `@navigationLinks` (array)

  - `@navigationLinks.uri` (string)

  - `@associationLinks` (array)

  - `@associationLinks.uri` (string)

  - `@context` (string)

  - `value` (any)

## Response 401 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 404 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 500 fields (application/json):

  - `error` (string)

  - `details` (any)

