Create Cart
Creates a **Cart**.
**Required Fields**
|Field|Details|
|-|-|
|`line_item`|Specifies a line item.|
|`custom_items`|Specifies a custom item. Only required if adding a custom item to the cart.|
|`gift_certificates`|Specifies a gift certificate. Only required if adding a gift certificate to the cart.|
**Usage Notes**
* A **cart** `id` (UUID) is returned in the response.
* A **cart** `id` is the same as a **checkout** `id`.
* A cart can be created by adding an existing **catalog item** or a **custom item**.
* Carts are valid for **30 days** from the **last modification** (this includes creating the cart or editing the cart).
* If a product has modifiers, use the `option_selections` array to describe the **modifier** selection(s).
* The format and data type of a cart’s `option_value` are defined by the `value_data` object of a product’s [variant option value](/developer/api-reference/rest/admin/catalog/product-variant-options/values), [modifier value](/developer/api-reference/rest/admin/catalog/product-modifiers/values), or a combination of both.
* Redirect URLs can only be generated from carts that were created using the **REST Management API**.
* To get cart `redirect_urls` in the response, append the following query parameter to the request URL: `include=redirect_urls`. Redirect URLs point to either a shared checkout domain or a channel-specific domain, depending on the storefront configuration.
* To restore a cart that was created by a shopper or through a Storefront API, first recreate the cart using the **REST Management API**.
* To get cart `promotions` in the response, append the following query parameter to the request URL: `include=promotions.banners`.
Authentication
X-Auth-Tokenstring
### OAuth scopes
| UI Name | Permission | Parameter |
|:--------|:-----------|:----------|
|Carts|modify|`store_cart`|
|Carts |read-only|`store_cart_read_only`|
|Information & Settings | modify | `store_v2_information`|
|Information & Settings | read-only| `store_v2_information`|
### Authentication header
| Header | Argument | Description |
|:-------|:---------|:------------|
| `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |
### Further reading
For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).
For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).
For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
Query parameters
include
* `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.
* `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical items product options. To return the extended cart object, use in a /POST request.
* `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital items product options. To return the extended cart object, use in a /POST request.
* `promotions.banners`: Returns a list of eligible banners.
Allowed values:
Request
**Examples:**
1. Creating a cart by adding a simple product (a product without option selections).
2. Creating a cart with a variant. This works when a product can be specified purely by a variant, without any other required options.
3. Creating a cart using a date option. The API supports timestamps, “option_value”: 1743570000, and dates as an object literal, “option_value”: {“day”:”01”, “month”:”02”, “year”:”2020”}.
4. Creating a cart with a variant, a checkbox, and a picklist modifier added.
5. Creating a cart using a custom item.
customer_id
line_items
custom_items
gift_certificates
channel_id
The Channel ID. If no channel is specified, defaults to 1.
currency
locale
The locale of the cart. Accepts strings of format `xx` or `xx-YY`. Uses the [ISO-639 standard](https://www.iso.org/iso-639-language-codes.html) format.
Response
data
A cart contains a collection of items, prices, discounts, etc. It does not contain customer-related data.
meta
Response metadata.