Bulk Upload
POST /vendor/products/bulk-upload — Create multiple products via JSON feed (returns queue_id).
/vendor/products/bulk-uploadVendor bearer token requiredBulk Upload
Create multiple products at once via JSON feed.
Bulk upload allows you to create multiple products at once. The request is queued asynchronously and returns a queue_id you can poll via import job endpoints.
When to use this
- Migrating a catalog from legacy G-Commerce products_feed.
- Importing large product batches from an external system.
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| items[].product | string | Yes | Product name. |
| items[].full_description | string | No | Full product description (HTML allowed). |
| items[].code | string | Yes | Supplier code (SKU). |
| items[].vendor_price | number | Yes | Vendor/cost price (USD). The customer retail price is derived from it as `vendor_price × (1 + your commission %)`; there is no separate price field. |
| items[].amount | integer | No | Product amount in stock. |
| items[].min_qty | integer | No | Minimal order quantity. |
| items[].unit_of_measure | string | No | Unit of measure. |
| items[].manufacturer_name | string | No | Manufacturer name. |
| items[].manufacturer_part_number | string | No | Manufacturer part number. |
| items[].country_of_origin | string | No | Country of origin. |
| items[].upc | string | number | No | Universal Product Code (UPC). |
| items[].unspsc | string | number | No | UNSPSC code. |
| items[].commodity_code | string | number | No | Commodity / HS-style code (max 28 characters). Rejected if longer. |
| items[].eccn | string | number | No | Export Control Classification Number (ECCN). |
| items[].category_ids | string | number | No | Existing category UUID(s), comma-separated. Use [List Categories](/docs/v1/vendor/categories/list) to look up valid IDs. Vendors cannot create categories. |
| items[].images | string | No | Public image URLs separated by ///. These are fetched server-side (not multipart uploads and not returned `/assets/…` paths). |
| items[].weight | number | No | Weight (stored as product metadata). |
| items[].free_shipping | string | No | Free shipping: Y for Yes, N for No. |
| items[].brand | string | No | Brand name. |
| items[].abilityone | string | No | AbilityOne: Y for Yes, N for No. |
| items[].made_in_usa | string | No | Made in USA: Y for Yes, N for No. |
| items[].green_product | string | No | Green product: Y for Yes, N for No. |
Request example
curl -X POST 'https://api.next.gcommerce.glass/api/v1/vendor/products/bulk-upload' \
-H 'Content-Type: application/json' \
-d '{
"items": [
{
"product": "3D Printer",
"code": "B1224059",
"vendor_price": 132.33
}
]
}'Response examples
{ "queue_id": "550e8400-e29b-41d4-a716-446655440050" }Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid bearer token.
Forbidden
Insufficient permissions for this action.
Bad Request
Validation failed or invalid parameters.
Not Found
Resource not found.
Too Many Requests
Global rate limit exceeded (10,000 requests per 10 minutes per IP).
Internal Server Error
Unexpected server error.
Forbidden
No vendor membership, or insufficient vendor role (requires OWNER, ADMIN, or EDITOR for write operations).
Try it
Uses your saved session from login. Edit values and send a live request, or copy the cURL command.