Products

Product management endpoints

Create Product

post

Creates a new product in the system

Authorizations
Body
titlestring · min: 1 · max: 255Required

Product name

Example: Premium Cotton T-Shirt
body_htmlstring · max: 65535Optional

Product description (HTML allowed)

Example: <p>High quality cotton t-shirt perfect for everyday wear.</p>
vendorstring · max: 255Optional

Brand/vendor name

Example: Your Brand Name
product_typestring · max: 255Optional

Product category

Example: Apparel
tagsstring · max: 1000Optional

Comma-separated tags

Example: cotton,premium,t-shirt,comfortable
handlestringOptional

URL slug (auto-generated if not provided)

Example: premium-cotton-t-shirtPattern: ^[a-z0-9-]+$
template_suffixstring · max: 255Optional

Template suffix

published_scopestringOptional

Published scope

Default: web
Responses
201

Product created successfully

application/json
post
/products
POST /api/v1/products HTTP/1.1
Host: api.maisonsafqa.com
X-MaisonSafqa-Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 613

{
  "title": "Premium Cotton T-Shirt",
  "body_html": "<p>High quality cotton t-shirt perfect for everyday wear.</p>",
  "vendor": "Your Brand Name",
  "product_type": "Apparel",
  "tags": "cotton,premium,t-shirt,comfortable",
  "handle": "premium-cotton-t-shirt",
  "template_suffix": "text",
  "published_scope": "web",
  "variants": [
    {
      "title": "Medium",
      "sku": "COTTON-TEE-001-M",
      "price": 99.99,
      "compare_at_price": 149.99,
      "inventory_quantity": 25,
      "weight": 0.2,
      "weight_unit": "kg",
      "barcode": "1234567890123",
      "requires_shipping": true,
      "taxable": true
    }
  ],
  "images": [
    {
      "src": "https://example.com/images/tshirt-front.jpg",
      "alt": "T-shirt front view",
      "position": 1
    }
  ]
}
{
  "error": null,
  "product": {
    "id": "product_1234567890123456",
    "title": "Premium Cotton T-Shirt",
    "description": "<p>High quality cotton t-shirt perfect for everyday wear.</p>",
    "handle": "premium-cotton-t-shirt",
    "status": "draft",
    "variants": [
      {
        "id": "text",
        "title": "text",
        "sku": "text",
        "price": 1,
        "compare_at_price": 1,
        "inventory_quantity": 1,
        "weight": 1,
        "weight_unit": "text",
        "requires_shipping": true,
        "taxable": true,
        "barcode": "text",
        "option1": "text",
        "option2": "text",
        "option3": "text"
      }
    ],
    "images": [
      {
        "id": "text",
        "src": "text",
        "alt": "text",
        "position": 1
      }
    ],
    "product_type": "text",
    "vendor": "text",
    "tags": "text",
    "created_at": "2025-10-27T21:19:59.383Z",
    "updated_at": "2025-10-27T21:19:59.383Z",
    "synced": true,
    "last_synced_at": "2025-10-27T21:19:59.383Z"
  },
  "message": "Product created successfully. It will be synced to Shopify when activated."
}

Get Product

get

Retrieves a specific product by ID. Use external_id for synced products or product_id for unsynced products.

Authorizations
Path parameters
idstringRequired

Product identifier - external_id (Shopify ID) for synced products, or product_id for unsynced products

Responses
200

Product retrieved successfully

application/json
get
/products/{id}
GET /api/v1/products/{id} HTTP/1.1
Host: api.maisonsafqa.com
X-MaisonSafqa-Api-Key: YOUR_API_KEY
Accept: */*
{
  "error": null,
  "product": {
    "id": "product_1234567890123456",
    "title": "Premium Cotton T-Shirt",
    "description": "<p>High quality cotton t-shirt perfect for everyday wear.</p>",
    "handle": "premium-cotton-t-shirt",
    "status": "draft",
    "variants": [
      {
        "id": "text",
        "title": "text",
        "sku": "text",
        "price": 1,
        "compare_at_price": 1,
        "inventory_quantity": 1,
        "weight": 1,
        "weight_unit": "text",
        "requires_shipping": true,
        "taxable": true,
        "barcode": "text",
        "option1": "text",
        "option2": "text",
        "option3": "text"
      }
    ],
    "images": [
      {
        "id": "text",
        "src": "text",
        "alt": "text",
        "position": 1
      }
    ],
    "product_type": "text",
    "vendor": "text",
    "tags": "text",
    "created_at": "2025-10-27T21:19:59.383Z",
    "updated_at": "2025-10-27T21:19:59.383Z",
    "synced": true,
    "last_synced_at": "2025-10-27T21:19:59.383Z"
  },
  "message": "Product created successfully. It will be synced to Shopify when activated."
}

Update Product

put

Updates an existing product. Use external_id for synced products or product_id for unsynced products.

Authorizations
Path parameters
idstringRequired

Product identifier - external_id (Shopify ID) for synced products, or product_id for unsynced products

Body

All fields are optional for updates

titlestring · min: 1 · max: 255Optional

Product name

body_htmlstring · max: 65535Optional

Product description (HTML allowed)

vendorstring · max: 255Optional

Brand/vendor name

product_typestring · max: 255Optional

Product category

tagsstring · max: 1000Optional

Comma-separated tags

handlestringOptional

URL slug

Pattern: ^[a-z0-9-]+$
template_suffixstring · max: 255Optional

Template suffix

published_scopestringOptional

Published scope

Responses
200

Product updated successfully

application/json
put
/products/{id}
PUT /api/v1/products/{id} HTTP/1.1
Host: api.maisonsafqa.com
X-MaisonSafqa-Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 477

{
  "title": "text",
  "body_html": "text",
  "vendor": "text",
  "product_type": "text",
  "tags": "text",
  "handle": "text",
  "template_suffix": "text",
  "published_scope": "text",
  "variants": [
    {
      "title": "Medium",
      "sku": "COTTON-TEE-001-M",
      "price": 99.99,
      "compare_at_price": 149.99,
      "inventory_quantity": 25,
      "weight": 0.2,
      "weight_unit": "kg",
      "barcode": "1234567890123",
      "requires_shipping": true,
      "taxable": true
    }
  ],
  "images": [
    {
      "src": "https://example.com/images/tshirt-front.jpg",
      "alt": "T-shirt front view",
      "position": 1
    }
  ]
}
{
  "error": null,
  "product": {
    "id": "product_1234567890123456",
    "title": "Premium Cotton T-Shirt",
    "description": "<p>High quality cotton t-shirt perfect for everyday wear.</p>",
    "handle": "premium-cotton-t-shirt",
    "status": "draft",
    "variants": [
      {
        "id": "text",
        "title": "text",
        "sku": "text",
        "price": 1,
        "compare_at_price": 1,
        "inventory_quantity": 1,
        "weight": 1,
        "weight_unit": "text",
        "requires_shipping": true,
        "taxable": true,
        "barcode": "text",
        "option1": "text",
        "option2": "text",
        "option3": "text"
      }
    ],
    "images": [
      {
        "id": "text",
        "src": "text",
        "alt": "text",
        "position": 1
      }
    ],
    "product_type": "text",
    "vendor": "text",
    "tags": "text",
    "created_at": "2025-10-27T21:19:59.383Z",
    "updated_at": "2025-10-27T21:19:59.383Z",
    "synced": true,
    "last_synced_at": "2025-10-27T21:19:59.383Z"
  },
  "message": "Product created successfully. It will be synced to Shopify when activated."
}