Skip to main content
POST
/
products
Create a product
curl --request POST \
  --url https://api.arcuserp.com/v1/products \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Riser Kit",
  "product_type": "variant_parent",
  "description": "Modular riser kit with dome or flat options",
  "variants": [
    {
      "title": "Dome Riser Kit",
      "sku": "RISER-DOME",
      "product_type": "kit",
      "components": [
        {
          "component_product_id": "prod_stone_uuid",
          "quantity": 2
        },
        {
          "component_product_id": "prod_dome_lid_uuid",
          "quantity": 1
        }
      ],
      "pricing": [
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 1,
          "list_price": 49.99
        },
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 5,
          "list_price": 44.99
        },
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 10,
          "list_price": 39.99
        }
      ],
      "vendors": [
        {
          "vendor_id": "acct_acme_uuid",
          "vendor_sku": "RD-001",
          "default_unit_cost": 18
        }
      ]
    },
    {
      "title": "Flat Riser Kit",
      "sku": "RISER-FLAT",
      "product_type": "kit",
      "components": [
        {
          "component_product_id": "prod_stone_uuid",
          "quantity": 2
        },
        {
          "component_product_id": "prod_flat_lid_uuid",
          "quantity": 1
        }
      ],
      "pricing": [
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 1,
          "list_price": 44.99
        },
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 5,
          "list_price": 39.99
        },
        {
          "pricing_level_id": "pl_default_uuid",
          "min_quantity": 10,
          "list_price": 34.99
        }
      ]
    }
  ],
  "vendors": [
    {
      "vendor_id": "acct_acme_uuid",
      "vendor_sku": "RISER-PARENT",
      "default_unit_cost": 15
    }
  ]
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "object": "product",
    "entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "title": "<string>",
    "description": "<string>",
    "sku": "<string>",
    "part_number": "<string>",
    "barcode": "<string>",
    "product_type": "physical",
    "category_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "vendor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "list_price": 123,
    "cost": 123,
    "is_active": true,
    "is_serialized": true,
    "charge_tax": true,
    "track_inventory": true,
    "weight": 123,
    "weight_uom": "<string>",
    "length": 123,
    "width": 123,
    "height": 123,
    "length_uom": "<string>",
    "quantity_uom": "<string>",
    "product_tax_code": "<string>",
    "reorder_point": 123,
    "reorder_qty": 123,
    "safety_stock": 123,
    "has_variants": true,
    "metadata": {},
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key issued per entity via Settings > Developers > API Keys. Each key carries scopes (e.g. orders:read, products:write). Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.

Headers

Idempotency-Key
string

Client-generated unique key for idempotent POST/PATCH/DELETE operations. Alias for the Idempotency parameter. Max 255 chars. On retry with the same key, the original response is returned without re-executing the operation. Keys expire after 24 hours.

Maximum string length: 255

Body

application/json
title
string
required
Example:

"Riser Kit"

product_type
enum<string>
required
Available options:
physical,
kit,
box,
service,
variant_parent
Example:

"variant_parent"

description
string
Example:

"Modular riser kit with dome or flat options"

sku
string
list_price
number
components
object[]

Kit/box component assemblies (product_type=kit or box only). Each element references a component product and the quantity required to build one unit of this kit.

variants
object[]

Inline variants (product_type=variant_parent only). Each variant can itself carry kit components[], qty-break pricing[], and vendors[] that are wired atomically in the same transaction.

pricing
object[]

Sell-side pricing policies for the parent product (any product_type). Each element defines one qty-break tier on a pricing level. Use min_quantity to set the minimum order quantity that activates this tier (maps to qty_break internally). All money fields are returned as JS numbers (float).

vendors
object[]

Vendor relationships on the parent product (any product_type)

Response

Product created

data
object

Arcus ERP product (physical/kit/box/service/variant_parent).