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

# Get a product

> Retrieve a product by its ID.

Returns one product. Your API key needs the `products:find` scope.

## Headers

<ParamField header="X-Api-Key" type="string" required>
  Your API key. You can use `Authorization: Api-Key your_key` instead.
</ParamField>

## Path parameters

<ParamField path="id" type="string" required>
  Product GUID.
</ParamField>

## Request example

```bash theme={null}
curl "$MORABAA_API_URL/external/v1/products/11111111-1111-1111-1111-111111111111" \
  --header "X-Api-Key: $MORABAA_API_KEY"
```

## Response

<ResponseField name="id" type="UUID" required>Product ID.</ResponseField>
<ResponseField name="name" type="string" required>Product name.</ResponseField>
<ResponseField name="sku" type="string | null">Product SKU.</ResponseField>
<ResponseField name="quantity" type="number | null">Available quantity.</ResponseField>
<ResponseField name="price" type="number" required>List price.</ResponseField>
<ResponseField name="sellPrice" type="number" required>Effective selling price after an active discount, when one applies.</ResponseField>
<ResponseField name="isAvailable" type="boolean" required>Whether the product is available.</ResponseField>
<ResponseField name="productImageUrl" type="string | null">Product image URL.</ResponseField>
<ResponseField name="variants" type="object[]" required>Product variants and their options.</ResponseField>
<ResponseField name="combinations" type="object[]" required>Available option combinations.</ResponseField>

```json theme={null}
{
  "id": "11111111-1111-1111-1111-111111111111",
  "name": "Arabic coffee",
  "sku": "COFFEE-250",
  "quantity": 18,
  "price": 12000,
  "sellPrice": 10000,
  "isAvailable": true,
  "productImageUrl": "https://cdn.example.com/products/coffee.jpg",
  "variants": [],
  "combinations": []
}
```

## Errors

| Status | Cause                                    |
| ------ | ---------------------------------------- |
| `400`  | `id` is not a valid GUID.                |
| `401`  | The API key is missing or invalid.       |
| `403`  | The key lacks the `products:find` scope. |
| `404`  | No product matches `id`.                 |
| `429`  | The rate limit was exceeded.             |
| `500`  | An unexpected error occurred.            |

```json theme={null}
{
  "error": "product_not_found",
  "message": "No product matches the given id."
}
```
