Adds a new line item to the order.
Required scope: write_orders (for API-key authentication).
POST
/
api
/
v3
/
admin
/
orders
/
{order_id}
/
items
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const item = await client.orders.items.create('or_UkLWZg9DAJ', {
variant_id: 'variant_k5nR8xLq',
quantity: 2,
})spree api post /orders/{order_id}/items -d '{"variant_id":"variant_k5nR8xLq","quantity":2}'{
"id": "li_gbHJdmfrXB",
"variant_id": "variant_VqXmZF31wY",
"preorder": false,
"preorder_ships_at": null,
"quantity": 3,
"currency": "USD",
"name": "Product 191265",
"slug": "product-191265",
"options_text": "Size: S",
"price": "19.99",
"display_price": "$19.99",
"total": "59.97",
"display_total": "$59.97",
"adjustment_total": "0.0",
"display_adjustment_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"pre_tax_amount": "59.97",
"display_pre_tax_amount": "$59.97",
"discounted_amount": "59.97",
"display_discounted_amount": "$59.97",
"display_compare_at_amount": "$0.00",
"compare_at_amount": null,
"thumbnail_url": null,
"option_values": [
{
"id": "optval_gbHJdmfrXB",
"option_type_id": "opt_gbHJdmfrXB",
"name": "size-3",
"label": "S",
"position": 1,
"color_code": null,
"option_type_name": "foo-size-12",
"option_type_label": "Size",
"image_url": null,
"metadata": {},
"created_at": "2026-07-24T18:11:28.545Z",
"updated_at": "2026-07-24T18:11:28.545Z"
}
],
"digital_links": [],
"metadata": {},
"created_at": "2026-07-24T18:11:28.619Z",
"updated_at": "2026-07-24T18:11:28.619Z",
"cost_price": "17.0",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}Authorizations
Secret API key for admin access
JWT token for admin user authentication
Headers
Bearer token for admin authentication
Path Parameters
Order ID
Response
201 - application/json
item added
Was this page helpful?
⌘I
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const item = await client.orders.items.create('or_UkLWZg9DAJ', {
variant_id: 'variant_k5nR8xLq',
quantity: 2,
})spree api post /orders/{order_id}/items -d '{"variant_id":"variant_k5nR8xLq","quantity":2}'{
"id": "li_gbHJdmfrXB",
"variant_id": "variant_VqXmZF31wY",
"preorder": false,
"preorder_ships_at": null,
"quantity": 3,
"currency": "USD",
"name": "Product 191265",
"slug": "product-191265",
"options_text": "Size: S",
"price": "19.99",
"display_price": "$19.99",
"total": "59.97",
"display_total": "$59.97",
"adjustment_total": "0.0",
"display_adjustment_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"pre_tax_amount": "59.97",
"display_pre_tax_amount": "$59.97",
"discounted_amount": "59.97",
"display_discounted_amount": "$59.97",
"display_compare_at_amount": "$0.00",
"compare_at_amount": null,
"thumbnail_url": null,
"option_values": [
{
"id": "optval_gbHJdmfrXB",
"option_type_id": "opt_gbHJdmfrXB",
"name": "size-3",
"label": "S",
"position": 1,
"color_code": null,
"option_type_name": "foo-size-12",
"option_type_label": "Size",
"image_url": null,
"metadata": {},
"created_at": "2026-07-24T18:11:28.545Z",
"updated_at": "2026-07-24T18:11:28.545Z"
}
],
"digital_links": [],
"metadata": {},
"created_at": "2026-07-24T18:11:28.619Z",
"updated_at": "2026-07-24T18:11:28.619Z",
"cost_price": "17.0",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}
