Medusa
Store APIAdmin API
Store APIAdmin API
Discord
Twitter
Linkedin
Github
  1. Products
  • Auth
    • Get Current User
      GET
    • User Logout
      DELETE
    • User Login
      POST
    • User Login (JWT)
      POST
  • Apps Oauth
    • Generate Token for App
      POST
    • List Applications
      GET
  • Batch Jobs
    • Cancel a Batch Job
      POST
    • Get a Batch Job
      GET
    • Confirm a Batch Job
      POST
    • List Batch Jobs
      GET
    • Create a Batch Job
      POST
  • Currencies
    • List Currency
    • Update a Currency
  • Customers
    • Create a Customer
    • List Customers
    • Update a Customer
    • Get a Customer
  • Customer Groups
    • Remove Customers from Group
    • Add Customers to Group
    • List Customers
    • Create a Customer Group
    • List Customer Groups
    • Get a Customer Group
    • Delete a Customer Group
    • Update a Customer Group
  • Discounts
    • Create a Condition
    • Create a Discount
    • List Discounts
    • Get a Condition
    • Update a Condition
    • Delete a Condition
    • Create a Dynamic Code
    • Remove Batch Resources
    • Add Batch Resources
    • Get Discount by Code
    • Delete a Dynamic Code
    • Add Region to Discount
    • Remove Region
    • Delete a Discount
    • Update a Discount
    • Get a Discount
  • Draft Orders
    • Create a Line Item
    • Delete a Line Item
    • Update a Line Item
    • Update a Draft Order
    • Delete a Draft Order
    • Get a Draft Order
    • Create a Draft Order
    • List Draft Orders
    • Mark Paid
  • Gift Cards
    • Create a Gift Card
    • List Gift Cards
    • Delete a Gift Card
    • Get a Gift Card
    • Update a Gift Card
  • Inventory Items
    • Create an Inventory Item
    • List Inventory Items
    • List Inventory Level
    • Create an Location Level
    • Update an Inventory Item
    • Get an Inventory Item
    • Delete an Inventory Item
    • Update a Location Level
    • Delete a Location Level
  • Invites
    • Lists Invites
    • Create an Invite
    • Delete an Invite
    • Accept an Invite
    • Resend an Invite
  • Notes
    • List Notes
    • Create a Note
    • Get a Note
    • Delete a Note
    • Update a Note
  • Notifications
    • Resend Notification
    • List Notifications
  • Orders
    • Create a Reservation
    • Cancel Claim's Fulfillment
    • Ship a Claim's Fulfillment
    • Cancel Swap's Fulfilmment
    • Get Order Reservations
    • Add a Shipping Method
    • Create a Refund
    • Get an Order
    • Update an Order
    • Create a Fulfillment
    • Cancel a Swap
    • List Orders
    • Create a Swap
    • Complete an Order
    • Create a Swap Fulfillment
    • Cancel a Claim
    • Process a Swap Payment
    • Ship a Fulfillment
    • Capture an Order's Payments
    • Archive Order
    • Update a Claim
    • Request a Return
    • Create a Claim Fulfillment
    • Ship a Swap's Fulfillment
    • Cancel a Fulfilmment
    • Create a Claim
    • Cancel an Order
  • Order Edits
    • Delete a Line Item Change
    • Add a Line Item
    • Upsert Line Item Change
    • Delete Line Item
    • Cancel an Order Edit
    • Delete an Order Edit
    • Get an Order Edit
    • Update an Order Edit
    • Request Confirmation
    • Create an OrderEdit
    • List Order Edits
    • Confirm an OrderEdit
  • Payments
    • Capture a Payment
    • Get Payment details
    • Refund Payment
  • Payment Collections
    • Delete a Payment Collection
    • Get a Payment Collection
    • Update Payment Collection
    • Mark Authorized
  • Product Collections
    • Add Products to Collection
    • Remove Products from Collection
    • Get a Collection
    • Update a Collection
    • Delete a Collection
    • List Collections
    • Create a Collection
  • Product Tags
    • List Product Tags
  • Product Types
    • List Product Types
  • Product Variants
    • Get Variant's Inventory
    • List Product Variants
    • Get a Product variant
  • Price Lists
    • Delete a Product's Prices
    • List Products
    • Delete a Variant's Prices
    • Get a Price List
    • Update a Price List
    • Delete a Price List
    • Add or Update Prices
    • Delete Prices
    • Create a Price List
    • List Price Lists
  • Products
    • List Product Types
      GET
    • List Tags Usage Number
      GET
    • List a Product's Variants
      GET
    • Create a Product Variant
      POST
    • Update a Product Variant
      POST
    • Delete a Product Variant
      DELETE
    • Add a Product Option
      POST
    • Set Metadata
      POST
    • Delete a Product Option
      DELETE
    • Update a Product Option
      POST
    • List Products
      GET
    • Create a Product
      POST
    • Delete a Product
      DELETE
    • Update a Product
      POST
    • Get a Product
      GET
  • Product Categories
    • Create a Product Category
    • List Product Categories
    • Update a Product Category
    • Delete a Product Category
    • Get a Product Category
    • Add Products to a Category
    • Remove Products from Category
  • Publishable Api Keys
    • List Sales Channels
    • Delete Publishable API Key
    • Get a Publishable API Key
    • Revoke a Publishable API Key
    • Remove Sales Channels
    • Add Sales Channels
    • Update Publishable API Key
    • List Publishable API keys
    • Create Publishable API Key
  • Reservations
    • Delete a Reservation
    • Update a Reservation
    • Get a Reservation
    • Create a Reservation
    • List Reservations
  • Regions
    • List Fulfillment Options
    • Add Country
    • Remove Fulfillment Provider
    • Remove Payment Provider
    • Add Payment Provider
    • Delete a Region
    • Update a Region
    • Get a Region
    • List Regions
    • Create a Region
    • Add Fulfillment Provider
    • Remove Country
  • Return Reasons
    • Get a Return Reason
    • Delete a Return Reason
    • Update a Return Reason
    • List Return Reasons
    • Create a Return Reason
  • Returns
    • Receive a Return
    • List Returns
    • Cancel a Return
  • Sales Channels
    • Remove Stock Location from Sales Channels.
    • Associate a Stock Location
    • Get a Sales Channel
    • Delete a Sales Channel
    • Update a Sales Channel
    • Remove Products from Sales Channel
    • Add Products to Sales Channel
    • Create a Sales Channel
    • List Sales Channels
  • Shipping Options
    • Update Shipping Option
    • Get a Shipping Option
    • Delete Shipping Option
    • List Shipping Options
    • Create Shipping Option
  • Shipping Profiles
    • List Shipping Profiles
    • Create a Shipping Profile
    • Delete a Shipping Profile
    • Update a Shipping Profile
    • Get a Shipping Profile
  • Stock Locations
    • Get a Stock Location
    • List Stock Locations
    • Create a Stock Location
    • Update a Stock Location
    • Delete a Stock Location
  • Store
    • List Payment Providers
    • Add a Currency Code
    • Remove a Currency
    • List Tax Providers
    • Update Store Details
    • Get Store details
  • Swaps
    • Get a Swap
    • List Swaps
  • Uploads
    • Upload Files
    • Delete an Uploaded File
    • Get a File's Download URL
    • Protected File Upload
  • Tax Rates
    • Add to Shipping Options
    • Remove Shipping Options from Rate
    • Create a Tax Rate
    • List Tax Rates
    • Add to Products
    • Remove Products from Rate
    • Delete a Tax Rate
    • Get a Tax Rate
    • Update a Tax Rate
    • Add to Product Types
    • Remove Product Types from Rate
  • Users
    • Reset Password
    • Request Password Reset
    • Get a User
    • Delete a User
    • Update a User
    • Create a User
    • List Users
  1. Products

Add a Product Option

POST
/admin/products/{id}/options
Products
Add a Product Option to a Product.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request POST '{{BASE_URL}}/admin/products//options' \
--header 'Content-Type: application/json' \
--data-raw '{
    "title": "Size"
}'
Response Response Example
200 - Example 1
{
  "product": {
    "id": "prod_01G1G5V2MBA328390B5AXJ610F",
    "title": "Medusa Coffee Mug",
    "subtitle": "string",
    "description": "Every programmer's best friend.",
    "handle": "coffee-mug",
    "is_giftcard": false,
    "thumbnail": "http://example.com",
    "profile_id": "sp_01G1G5V239ENSZ5MV4JAR737BM",
    "weight": null,
    "length": null,
    "height": null,
    "width": null,
    "hs_code": null,
    "origin_country": null,
    "mid_code": null,
    "material": null,
    "collection_id": "pcol_01F0YESBFAZ0DV6V831JXWH0BG",
    "type_id": "ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A",
    "discountable": true,
    "external_id": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "deleted_at": "2019-08-24T14:15:22Z",
    "status": "draft",
    "metadata": {
      "car": "white"
    },
    "images": [
      {
        "id": "img_01G749BFYR6T8JTVW6SGW3K3E6",
        "url": "http://example.com",
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "metadata": {
          "car": "white"
        }
      }
    ],
    "categories": [
      {
        "id": "pcat_01G2SG30J8C85S4A5CHM2S1NS2",
        "name": "Regular Fit",
        "handle": "regular-fit",
        "mpath": "pcat_id1.pcat_id2.pcat_id3",
        "is_internal": false,
        "is_active": false,
        "rank": 0,
        "parent_category_id": null,
        "parent_category": {},
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "category_children": [
          {}
        ],
        "products": [
          {}
        ]
      }
    ],
    "collection": {
      "id": "pcol_01F0YESBFAZ0DV6V831JXWH0BG",
      "title": "Summer Collection",
      "handle": "summer-collection",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z",
      "deleted_at": "2019-08-24T14:15:22Z",
      "products": [
        {}
      ],
      "metadata": {
        "car": "white"
      }
    },
    "tags": [
      {
        "id": "ptag_01G8K2MTMG9168F2B70S1TAVK3",
        "value": "Pants",
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "metadata": {
          "car": "white"
        }
      }
    ],
    "profile": {
      "id": "sp_01G1G5V239ENSZ5MV4JAR737BM",
      "name": "Default Shipping Profile",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z",
      "deleted_at": "2019-08-24T14:15:22Z",
      "type": "default",
      "products": [
        {}
      ],
      "shipping_options": [
        {}
      ],
      "metadata": {
        "car": "white"
      }
    },
    "profiles": [
      {
        "id": "sp_01G1G5V239ENSZ5MV4JAR737BM",
        "name": "Default Shipping Profile",
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "type": "default",
        "products": [
          {}
        ],
        "shipping_options": [
          {}
        ],
        "metadata": {
          "car": "white"
        }
      }
    ],
    "type": {
      "id": "ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A",
      "value": "Clothing",
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z",
      "deleted_at": "2019-08-24T14:15:22Z",
      "metadata": {
        "car": "white"
      }
    },
    "sales_channels": [
      {
        "id": "sc_01G8X9A7ESKAJXG2H0E6F1MW7A",
        "name": "Market",
        "description": "Multi-vendor market",
        "is_disabled": false,
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "metadata": {
          "car": "white"
        },
        "locations": [
          {
            "id": "scloc_01G8X9A7ESKAJXG2H0E6F1MW7A",
            "sales_channel_id": "sc_01G8X9A7ESKAJXG2H0E6F1MW7A",
            "location_id": "string",
            "sales_channel": {},
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "deleted_at": "2019-08-24T14:15:22Z"
          }
        ]
      }
    ],
    "options": [
      {
        "id": "opt_01F0YESHQBZVKCEXJ24BS6PCX3",
        "title": "Size",
        "product_id": "prod_01G1G5V2MBA328390B5AXJ610F",
        "product": {},
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "metadata": {
          "car": "white"
        },
        "values": [
          {
            "id": "optval_01F0YESHR7S6ECD03RF6W12DSJ",
            "value": "large",
            "option_id": "opt_01F0YESHQBZVKCEXJ24BS6PCX3",
            "option": {},
            "variant_id": "variant_01G1G5V2MRX2V3PVSR2WXYPFB6",
            "variant": {},
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "deleted_at": "2019-08-24T14:15:22Z",
            "metadata": {
              "car": "white"
            }
          }
        ]
      }
    ],
    "variants": [
      {
        "id": "variant_01G1G5V2MRX2V3PVSR2WXYPFB6",
        "title": "Small",
        "product_id": "prod_01G1G5V2MBA328390B5AXJ610F",
        "product": {},
        "sku": "shirt-123",
        "barcode": null,
        "ean": null,
        "upc": null,
        "variant_rank": 0,
        "inventory_quantity": 100,
        "allow_backorder": false,
        "manage_inventory": true,
        "hs_code": null,
        "origin_country": null,
        "mid_code": null,
        "material": null,
        "weight": null,
        "length": null,
        "height": null,
        "width": null,
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "deleted_at": "2019-08-24T14:15:22Z",
        "purchasable": true,
        "metadata": {
          "car": "white"
        },
        "options": [
          {
            "id": "optval_01F0YESHR7S6ECD03RF6W12DSJ",
            "value": "large",
            "option_id": "opt_01F0YESHQBZVKCEXJ24BS6PCX3",
            "option": {},
            "variant_id": "variant_01G1G5V2MRX2V3PVSR2WXYPFB6",
            "variant": {},
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "deleted_at": "2019-08-24T14:15:22Z",
            "metadata": {
              "car": "white"
            }
          }
        ],
        "inventory_items": [
          {
            "id": "pvitem_01G8X9A7ESKAJXG2H0E6F1MW7A",
            "inventory_item_id": "string",
            "variant_id": "string",
            "variant": {},
            "required_quantity": 1,
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "deleted_at": "2019-08-24T14:15:22Z"
          }
        ],
        "prices": [
          {
            "id": "ma_01F0YESHRFQNH5S8Q0PK84YYZN",
            "amount": 100,
            "min_quantity": 1,
            "max_quantity": 1,
            "price_list_id": "pl_01G8X3CKJXCG5VXVZ87H9KC09W",
            "price_list": {},
            "variant_id": "variant_01G1G5V2MRX2V3PVSR2WXYPFB6",
            "variant": {},
            "region_id": "reg_01G1G5V26T9H8Y0M4JNE3YGA4G",
            "region": {},
            "created_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "deleted_at": "2019-08-24T14:15:22Z",
            "currency_code": "usd",
            "currency": {
              "symbol": "$",
              "symbol_native": "$",
              "name": "US Dollar",
              "includes_tax": false,
              "code": "usd"
            }
          }
        ],
        "original_price": 0,
        "calculated_price": 0,
        "original_price_incl_tax": 0,
        "calculated_price_incl_tax": 0,
        "original_tax": 0,
        "calculated_tax": 0,
        "tax_rates": [
          {
            "rate": 0,
            "name": "string",
            "code": "string"
          }
        ]
      }
    ]
  }
}

Request

Path Params
id
string 
required
The ID of the Product.
Body Params application/json
title
string 
required
The title the Product Option.
Example:
Size
Examples

Responses

🟢200OK
application/json
Body
product
object (Priced Product) 
required
A product is a saleable item that holds general information such as name or description. It must include at least one Product Variant, where each product variant defines different options to purchase the product with (for example, different sizes or colors). The prices and inventory of the product are defined on the variant level.
id
string 
required
The product's ID
Example:
prod_01G1G5V2MBA328390B5AXJ610F
title
string 
required
A title that can be displayed for easy identification of the Product.
Example:
Medusa Coffee Mug
subtitle
string  | null 
required
An optional subtitle that can be used to further specify the Product.
description
string  | null 
required
A short description of the Product.
Example:
Every programmer's best friend.
handle
string  | null 
required
A unique identifier for the Product (e.g. for slug structure).
Example:
coffee-mug
is_giftcard
boolean 
required
Whether the Product represents a Gift Card. Products that represent Gift Cards will automatically generate a redeemable Gift Card code once they are purchased.
Default:
false
thumbnail
string <uri> | null 
required
A URL to an image file that can be used to identify the Product.
profile_id
string 
required
The ID of the shipping profile that the product belongs to. The shipping profile has a set of defined shipping options that can be used to fulfill the product.
Example:
sp_01G1G5V239ENSZ5MV4JAR737BM
weight
number  | null 
required
The weight of the Product Variant. May be used in shipping rate calculations.
Example:
null
length
number  | null 
required
The length of the Product Variant. May be used in shipping rate calculations.
Example:
null
height
number  | null 
required
The height of the Product Variant. May be used in shipping rate calculations.
Example:
null
width
number  | null 
required
The width of the Product Variant. May be used in shipping rate calculations.
Example:
null
hs_code
string  | null 
required
The Harmonized System code of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
Example:
null
origin_country
string  | null 
required
The country in which the Product Variant was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
Example:
null
mid_code
string  | null 
required
The Manufacturers Identification code that identifies the manufacturer of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
Example:
null
material
string  | null 
required
The material and composition that the Product Variant is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
Example:
null
collection_id
string  | null 
required
The ID of the product collection that the product belongs to.
Example:
pcol_01F0YESBFAZ0DV6V831JXWH0BG
type_id
string  | null 
required
The ID of the product type that the product belongs to.
Example:
ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A
discountable
boolean 
required
Whether the Product can be discounted. Discounts will not apply to Line Items of this Product when this flag is set to false.
Default:
true
external_id
string  | null 
required
The external ID of the product
Example:
null
created_at
string <date-time>
required
The date with timezone at which the resource was created.
updated_at
string <date-time>
required
The date with timezone at which the resource was updated.
deleted_at
string <date-time> | null 
required
The date with timezone at which the resource was deleted.
status
enum<string> 
required
The status of the product
Allowed values:
draftproposedpublishedrejected
Default:
draft
metadata
object  | null 
required
An optional key-value map with additional details
Example:
{"car":"white"}
images
array[object (Image) {6}] 
optional
The details of the product's images.
categories
array[object (Product Category) {13}] 
optional
The details of the product categories that this product belongs to.
collection
object 
Product Collection
optional
A Product Collection allows grouping together products for promotional purposes. For example, an admin can create a Summer collection, add products to it, and showcase it on the storefront.
tags
array[object (Product Tag) {6}] 
optional
The details of the product tags used in this product.
profile
object 
Shipping Profile
optional
A Shipping Profile has a set of defined Shipping Options that can be used to fulfill a given set of Products. For example, gift cards are shipped differently than physical products, so a shipping profile with the type gift_card groups together the shipping options that can only be used for gift cards.
profiles
array[object (Shipping Profile) {9}]  | null 
optional
Available if the relation profiles is expanded.
type
object 
Product Type
optional
A Product Type can be added to Products for filtering and reporting purposes.
sales_channels
array[object (Sales Channel) {9}] 
optional
The details of the sales channels this product is available in.
options
array[object (Product Option) {9}] 
optional
The details of the Product Options that are defined for the Product. The product's variants will have a unique combination of values of the product's options.
variants
array[object (Priced Product Variant) {35}] 
optional
The details of the Product Variants that belong to the Product. Each will have a unique combination of values of the product's options.
🟠400Client Error or Multiple Errors
🟠401User is not authorized. Must log in first
🟠404Not Found Error
🟠409Invalid State Error
🟠422Invalid Request Error
🔴500Server Error
Modified at 2023-10-10 11:56:36
Previous
Delete a Product Variant
Next
Set Metadata
Built with