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

# Create Product

> Add a new product to your catalog with automatic HSA/FSA eligibility detection

# Create Product

Create a new product in your catalog. Gale automatically checks HSA/FSA eligibility via the SIGIS database using the product's UPC code or name.

## Authentication

```bash theme={null}
Authorization: Bearer glm_test_YOUR_API_KEY
```

## Request Body

```json theme={null}
{
  "name": "Digital Blood Pressure Monitor",
  "tagline": "FDA-approved automatic BP monitor",
  "description": "Clinically validated blood pressure monitor with Bluetooth connectivity. Features automatic inflation, irregular heartbeat detection, and memory for 200 readings. Includes carrying case and 4 AAA batteries.",
  "price": 4995,
  "currency": "USD",
  "merchant_product_id": "BP-MONITOR-001",
  "upc_code_or_gtin": "14567890123456",
  "images": [
    "https://cdn.example.com/bp-monitor-1.jpg",
    "https://cdn.example.com/bp-monitor-2.jpg"
  ],
  "metadata": {
    "category": "medical_devices",
    "brand": "HealthTech Pro",
    "weight": "0.5 lbs"
  }
}
```

## Parameters

> All monetary amounts are integers in cents (e.g., 4995 = \$49.95).

| Parameter             | Type    | Required | Description                                      |
| --------------------- | ------- | -------- | ------------------------------------------------ |
| `name`                | string  | Yes      | Product name (max 255 chars)                     |
| `tagline`             | string  | No       | Short description (max 255 chars)                |
| `description`         | string  | No       | Full product description (supports markdown)     |
| `price`               | integer | Yes      | Price in cents (e.g., 4995 = \$49.95)            |
| `currency`            | string  | Yes      | ISO 4217 currency code (e.g., "USD")             |
| `merchant_product_id` | string  | No       | Your reference ID for this product               |
| `upc_code_or_gtin`    | string  | No       | UPC or GTIN barcode (used for eligibility check) |
| `images`              | array   | No       | Array of image URLs (max 10)                     |
| `metadata`            | object  | No       | Custom key-value pairs                           |

## Response

```json theme={null}
{
  "id": 12345,
  "name": "Digital Blood Pressure Monitor",
  "tagline": "FDA-approved automatic BP monitor",
  "description": "Clinically validated blood pressure monitor with Bluetooth connectivity. Features automatic inflation, irregular heartbeat detection, and memory for 200 readings. Includes carrying case and 4 AAA batteries.",
  "price": 4995,
  "currency": "USD",
  "merchant_product_id": "BP-MONITOR-001",
  "upc_code_or_gtin": "14567890123456",
  "status": "active",
  "eligibility": {
    "hsa_fsa_eligible": true,
    "message": "SIGIS verified - Medical device"
  },
  "images": [
    {
      "id": 567,
      "url": "https://cdn.example.com/bp-monitor-1.jpg",
      "is_primary": true
    },
    {
      "id": 568,
      "url": "https://cdn.example.com/bp-monitor-2.jpg",
      "is_primary": false
    }
  ],
  "metadata": {
    "category": "medical_devices",
    "brand": "HealthTech Pro",
    "weight": "0.5 lbs"
  },
  "created_at": "2025-10-18T14:30:00Z",
  "updated_at": "2025-10-18T14:30:00Z"
}
```

See [Product Object](/api-reference/objects/product) for complete field descriptions.

## Examples

### Basic Product

```bash theme={null}
curl -X POST https://api.withgale.com/api/v2/products \
  -H "Authorization: Bearer glm_test_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Digital Thermometer",
    "description": "Fast and accurate digital thermometer",
    "price": 2995,
    "currency": "USD"
  }'
```

### Complete Product with UPC

```bash theme={null}
curl -X POST https://api.withgale.com/api/v2/products \
  -H "Authorization: Bearer glm_test_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Premium Blood Pressure Monitor",
    "tagline": "Professional-grade BP monitoring",
    "description": "Clinically validated automatic blood pressure monitor with advanced features.",
    "price": 4995,
    "currency": "USD",
    "merchant_product_id": "BP-MONITOR-PRO",
    "upc_code_or_gtin": "14567890123456",
    "images": [
      "https://cdn.example.com/bp-monitor-1.jpg",
      "https://cdn.example.com/bp-monitor-2.jpg"
    ],
    "metadata": {
      "category": "medical_devices",
      "brand": "HealthTech",
      "features": "bluetooth,memory,irregular_detection"
    }
  }'
```

## Webhooks

Product creation triggers the following webhook event:

```json theme={null}
{
  "type": "product.created",
  "data": {
    "id": 12345,
    "name": "Digital Blood Pressure Monitor",
    "eligibility": {
      "hsa_fsa_eligible": true,
      "message": "SIGIS verified - Medical device"
    }
  }
}
```

See [Webhooks Reference](/developer-manual/webhooks) for details.

## Errors

| Status Code | Error Code            | Description                    |
| ----------- | --------------------- | ------------------------------ |
| 400         | `invalid_request`     | Missing or invalid parameters  |
| 400         | `invalid_price`       | Price must be positive integer |
| 400         | `invalid_currency`    | Unsupported currency code      |
| 401         | `unauthorized`        | Invalid or missing API key     |
| 422         | `validation_error`    | Field validation failed        |
| 429         | `rate_limit_exceeded` | Too many requests              |

Example error:

```json theme={null}
{
  "error": {
    "code": "validation_error",
    "message": "Invalid product data",
    "details": [
      {
        "field": "name",
        "message": "Name is required"
      },
      {
        "field": "price",
        "message": "Price must be a positive integer"
      }
    ]
  }
}
```

## Related

* [Get Product](/api-reference/endpoint/get-product-v2)
* [Update Product](/api-reference/endpoint/update-product-v2)
* [List Products](/api-reference/endpoint/list-products-v2)
* [Check Eligibility](/api-reference/endpoint/check-eligibility)
* [Product Object](/api-reference/objects/product)
