openapi: 3.0.0 info: version: 2.0.0 title: Medusa Admin API license: name: MIT url: https://github.com/medusajs/medusa/blob/develop/LICENSE servers: - url: http://localhost:9000 - url: https://api.medusajs.com tags: - name: Api Keys description: | API keys can be used for authentication or resource-scoping. A secret API key can be used to authenticate admin users. A publishable API key can be used to scope client requests to one or more sales channels. These API routes allow admin users to manage both publishable and secret API keys. externalDocs: description: Learn more about the API Key Module url: https://docs.medusajs.com/resources/commerce-modules/api-key x-associatedSchema: $ref: '#/components/schemas/AdminApiKey' - name: Auth description: | Auth API routes allow you to manage an admin user's authentication. - name: Campaigns description: | A campaign is a group of promotions that have the same conditions, such as start and end dates. These API routes allow admin users to manage campaigns, their conditions, and promotions that belong to them. externalDocs: description: Learn more about campaigns. url: https://docs.medusajs.com/resources/commerce-modules/promotion/campaign x-associatedSchema: $ref: '#/components/schemas/AdminCampaign' - name: Claims description: | An admin creates a claim for an order when a customer reports that an item is defective or incorrect. Using these API routes, admin users manage order claims, their items, and more. x-associatedSchema: $ref: '#/components/schemas/AdminClaim' externalDocs: description: Learn more about order claims. url: https://docs.medusajs.com/resources/commerce-modules/order/claim - name: Collections description: | A product collection organizes products into a collection for marketing purposes. For example, a summer collection. These API routes allow admin users to manage collections and the products in them. x-associatedSchema: $ref: '#/components/schemas/AdminCollection' - name: Currencies description: | A store can use unlimited currencies, and each region must be associated with at least one currency. Currencies are defined by the Currency Module. Currency API Routes allow admins to list and update currencies. externalDocs: description: Learn more about the Currency Module url: https://docs.medusajs.com/resources/commerce-modules/currency x-associatedSchema: $ref: '#/components/schemas/AdminCurrency' - name: Customer Groups description: | Customers can be organized into groups. These groups are useful for segregation and marketing purposes. For example, you can provide different prices for specific customers by creating a price list conditioned to their group. These API routes allow admin users to manage groups and the customers in them. externalDocs: description: Learn more about the Customer Module url: https://docs.medusajs.com/resources/commerce-modules/customer x-associatedSchema: $ref: '#/components/schemas/AdminCustomerGroup' - name: Customers description: | Customers can either be created when they register through the Store APIs, or created by the admin using the Admin APIs. These API routes allow admin users to manage customers in their store. externalDocs: description: Learn more about the Customer Module url: https://docs.medusajs.com/resources/commerce-modules/customer x-associatedSchema: $ref: '#/components/schemas/AdminCustomer' - name: Draft Orders description: | A draft order is an order created by the admin user. This is useful for orders created offline or from clients other than a storefront, such as a third-party integration. These API routes allow admin users to create and manage draft orders. externalDocs: description: Learn more about the Order Module url: https://docs.medusajs.com/resources/commerce-modules/order x-associatedSchema: $ref: '#/components/schemas/AdminDraftOrder' - name: Exchanges description: | An exchange is the replacement of an item that the customer ordered with another. These API routes allow admin users t create and manage exchanges. externalDocs: description: Learn more about the order exchanges. url: https://docs.medusajs.com/resources/commerce-modules/order/exchange x-associatedSchema: $ref: '#/components/schemas/AdminExchange' - name: Fulfillment Providers description: | A fulfillment provider is a third-party integration or custom logic used to fulfill an order's items. Fulfillment providers are installed as module providers. externalDocs: description: Learn more about the fulfillment providers and how to create them. url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/fulfillment-provider x-associatedSchema: $ref: '#/components/schemas/AdminFulfillmentProvider' - name: Fulfillment Sets description: | A fulfillment set is a general form or way of fulfillment, such as "shipping" or "pick up". All fulfillment-related configurations in a store are related to a fulfillment set. These API routes allow admin users to manage fulfillment sets. externalDocs: description: Learn more about fulfillment sets. url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/concepts x-associatedSchema: $ref: '#/components/schemas/AdminFulfillmentSet' - name: Fulfillments description: | A fulfillment is created for items in an order, return, exchanges, or claims to deliver items to/from the customer. These API routes allow admin users to manage fulfillments. externalDocs: description: Learn more about fulfillments. url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/item-fulfillment x-associatedSchema: $ref: '#/components/schemas/AdminFulfillment' - name: Gift Cards description: | A gift card is a prepaid card that can be used to pay for items during checkout. Gift cards can be purchased by customers, or created by admin users. When a gift card is redeemed, its amount is added to the customer's store credit account, which can then be used to pay for items during checkout. These API routes allow admin users to manage gift cards, transfer gift cards between customers, and more. Gift Card routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin). x-associatedSchema: $ref: '#/components/schemas/AdminGiftCard' - name: Inventory Items description: | An inventory item is a stock-kept product whose inventory is managed. These API routes allow admin users to manage inventory items. externalDocs: description: Learn more about inventory items. url: https://docs.medusajs.com/resources/commerce-modules/inventory/concepts x-associatedSchema: $ref: '#/components/schemas/AdminInventoryItem' - name: Invites description: | An admin can invite new users to manage their team. This allows new users to authenticate as admins and perform admin functionalities. These API routes allow admin users to manage invites. externalDocs: description: Learn more about the User Module url: https://docs.medusajs.com/resources/commerce-modules/user x-associatedSchema: $ref: '#/components/schemas/AdminInvite' - name: Notifications description: | A notification informs an admin user of store changes or status changes of background tasks. These API routes allow admin users to view and manage notifications. x-associatedSchema: $ref: '#/components/schemas/AdminNotification' - name: Order Edits description: | An order edit is a change to an order's details, such as items, shipping methods, and more. Changes made by an order edit are only applied on the order once they're confirmed. The order's previous version is retained due to versioning. These API routes allow admin users to make edits to an order and manage those edits. externalDocs: description: Learn more about the Order Module url: https://docs.medusajs.com/resources/commerce-modules/order - name: Orders description: | An order is a purchase made by a customer through a storefront. Orders can also originally be created as draft orders. These API routes allow admin users to view and manage orders. externalDocs: description: Learn more about the orders url: https://docs.medusajs.com/resources/commerce-modules/order/concepts x-associatedSchema: $ref: '#/components/schemas/AdminOrder' - name: Payment Collections description: | A payment collection is one or more payments of an order. They're also used for outstanding payments due to order exchanges or claims. Every purchase or request for payment starts with a payment collection. A payment collection holds the payment sessions used to authorize the payment amount, and the payments to be captured / refunded. These API routes allow admin users to manage payment collections. externalDocs: description: Learn more about payment collections. url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-collection x-associatedSchema: $ref: '#/components/schemas/AdminPaymentCollection' - name: Payments description: | A payment is created when a payment amount is authorized. The payment can then be captured or refunded. A payment is created from the payment session that was authorized, and it belongs to the payment session's collection. These API routes allow admin users to manage payments. externalDocs: description: Learn more about payments. url: https://docs.medusajs.com/resources/commerce-modules/payment/payment x-associatedSchema: $ref: '#/components/schemas/AdminPayment' - name: Plugins description: | A plugin is a package of reusable Medusa customizations that you can install in any Medusa application. Plugins can be used to add new functionality, such as wishlists, or integrate third-party services, such as payment providers. These API routes allow admin users to retrieve plugins installed in their Medusa application. externalDocs: description: Learn more about plugins. url: https://docs.medusajs.com/learn/fundamentals/plugins x-associatedSchema: $ref: '#/components/schemas/AdminPlugin' - name: Price Lists description: | A price list is a group of prices applied if the specified conditions and rules are satisfied. Price lists are useful for sales or special prices for special conditions, such as applying prices for a set of customers. These API routes allow admin users to manage price lists. externalDocs: description: Learn more about price lists. url: https://docs.medusajs.com/resources/commerce-modules/pricing/concepts#price-list x-associatedSchema: $ref: '#/components/schemas/AdminPriceList' - name: Price Preferences description: | A price preference is used to specify whether tax-inclusiveness is enabled for a context, such as a region or currency code. These API routes allow admin users to manage whether a region or currency is tax inclusive. externalDocs: description: Learn more about tax-inclusiveness and the role of a price preference. url: https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing x-associatedSchema: $ref: '#/components/schemas/AdminPricePreference' - name: Product Categories description: | Products can be categorized into categories. Categories are nested and their heirarchy can be managed, giving admin users flexibility in how they categorize their products. These API routes allow admin users to manage categories and the products in them. externalDocs: description: Learn more about the Product Module url: https://docs.medusajs.com/resources/commerce-modules/product x-associatedSchema: $ref: '#/components/schemas/AdminProductCategory' - name: Product Tags description: | A tag is another way of organizing a product. Each tag has a name and a value. Products are organized into the same tag if they have the same value. These API routes allow admin users to manage product tags. externalDocs: description: Learn more about the Product Module url: https://docs.medusajs.com/resources/commerce-modules/product x-associatedSchema: $ref: '#/components/schemas/AdminProductTag' - name: Product Types description: | Products can be organized into types. Each type has a name and a value. Products are organized into the same type if they have the same value. These API routes allow admin users to manage product types. externalDocs: description: Learn more about the Product Module url: https://docs.medusajs.com/resources/commerce-modules/product x-associatedSchema: $ref: '#/components/schemas/AdminProductType' - name: Product Variants description: | A product variant is a saleable form of the product. Each variant has different option values. For example, a "Shirt" product may have a "Blue" variant and a "Green" variant. Customers choose from these variants when they buy the product. These API routes allow admin users to manage product variants. externalDocs: description: Learn more about the Product Module url: https://docs.medusajs.com/resources/commerce-modules/product x-associatedSchema: $ref: '#/components/schemas/AdminProductVariant' - name: Products description: | A product is a set of variants that the customer chooses from when making a purchase. A product can be organized into categories or collections. A product can have many options, and variants for each of these options' values. These API routes allow admin users to manage products. externalDocs: description: Learn more about the Product Module url: https://docs.medusajs.com/resources/commerce-modules/product x-associatedSchema: $ref: '#/components/schemas/AdminProduct' - name: Promotions description: | A promotion discounts an amount or percentage off a cart's items, shipping methods, or the entire order. Promotions have different types, such as a `standard` promotion that just discounts an amount, or a `buyget` promotion to enforce a "buy X get Y" promotion. A promotion has rules to restrict how and when they're applied. Promotions belong to a campaign, which sets conditions on the promotion such as when it starts and ends. These API routes allow admin users to manage promotions. externalDocs: description: Learn more about promotions. url: https://docs.medusajs.com/resources/commerce-modules/promotion/concepts x-associatedSchema: $ref: '#/components/schemas/AdminPromotion' - name: Refund Reasons description: | A refund reason is a possible reason used when issuing a refund to the customer, such as when returning an item and refunding the customer. These API routes allow admin users to manage refund reasons. x-associatedSchema: $ref: '#/components/schemas/AdminRefundReason' - name: Regions description: | Regions are different countries or geographical regions that the commerce store serves customers in. These API routes allow admin users to manage regions, their providers, and more. externalDocs: description: Learn more about the Region Module. url: https://docs.medusajs.com/resources/commerce-modules/region x-associatedSchema: $ref: '#/components/schemas/AdminRegion' - name: Reservations description: | A reservation is unavailable quantity of an inventory item in a location. A reservation is created automatically for variants in an order whose `manage_inventory` is enabled. Admin users can also create reservations manually. These API routes allow admin users to manage reservations. externalDocs: description: Learn more about reservations and other inventory concepts. url: https://docs.medusajs.com/resources/commerce-modules/inventory/concepts x-associatedSchema: $ref: '#/components/schemas/AdminReservation' - name: Return Reasons description: | A return reason is a possible reason that an item is returned from the customer, such as when returning an item. These API routes allow admin users to manage return reasons. x-associatedSchema: $ref: '#/components/schemas/AdminReturnReason' - name: Returns description: | Admin users create a return when a customer returns an item to them. Returns can also be created by customers through the storefront, and admins will be able to manage them and make refunds, if necessary. Refunds are made through the [Payment API Routes](#payment) These API routes allow admin users to manage returns. externalDocs: description: Learn more about order returns. url: https://docs.medusajs.com/resources/commerce-modules/order/return x-associatedSchema: $ref: '#/components/schemas/AdminReturn' - name: Sales Channels description: | A sales channel indicates a channel where products can be sold in. For example, a webshop or a mobile app. These API routes allow admins to manage sales channels and the products available in them. externalDocs: description: Learn more about the Sales Channel Module. url: https://docs.medusajs.com/resources/commerce-modules/sales-channel x-associatedSchema: $ref: '#/components/schemas/AdminSalesChannel' - name: Shipping Options description: | A shipping option is a way of shipping an item to or from the customer. Shipping options are associated with the fulfillment provider used to handle their fulfillment. Shipping options can be restricted geographically by service zones, and by custom rules, such as an item's weight or the customer's group. These API routes allow admins to manage shipping options. externalDocs: description: Learn more about shipping options. url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option x-associatedSchema: $ref: '#/components/schemas/AdminShippingOption' - name: Shipping Profiles description: | A shipping profile defines a type of items that are shipping in a similar manner. For example, digital products may have a `digital` shipping profile. These API routes allow admin users to manage shipping profiles. externalDocs: description: Learn more about shipping profiles and other fulfillment concepts. url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/concepts#shipping-profile x-associatedSchema: $ref: '#/components/schemas/AdminShippingProfile' - name: Stock Locations description: | A stock location is where stock-kept items (products) are kept. Stock locations are linked to fulfillment providers used to fulfill items from this location. A stock location is also link to a fulfillment set, indicating where an item is fulfilled from when an order is placed. These API routes allow admin users to manage stock locations and their linked data. externalDocs: description: Learn more about stock locations. url: https://docs.medusajs.com/resources/commerce-modules/stock-location/concepts x-associatedSchema: $ref: '#/components/schemas/AdminStockLocation' - name: Store Credit Accounts description: | A store credit account is a ledger of store credit transactions for a customer. They hold the customer's store credit balance, including their credit and debit amounts. Store credit accounts allow you to build features that let customers pay for items using their store credit balance, such as gift cards or loyalty points. These API routes allow admin users to manage store credit accounts, their transactions, and more. Store Credit Account routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin). x-associatedSchema: $ref: '#/components/schemas/AdminStoreCreditAccount' - name: Stores description: | A store holds the main configuration and information of your commerce store, such as supported currencies or default sales channel. By default, the Medusa application has one default store. There are no API routes to create more stores. Instead, you'd have to handle that customization manually. These API routes allow admin users to manage their store. externalDocs: description: Learn more about the Store Module. url: https://docs.medusajs.com/resources/commerce-modules/store x-associatedSchema: $ref: '#/components/schemas/AdminStore' - name: Tax Providers description: | A tax provider is a third-party integration or custom logic used to calculate taxes for a cart or an order. These API routes allow admin users to manage tax providers installed in their Medusa application. externalDocs: description: Learn more about the Tax Module Providers url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-provider x-associatedSchema: $ref: '#/components/schemas/AdminTaxProvider' - name: Tax Rates description: | A tax rate is a percentage amount used to calculate the tax amount of each taxable item's price, such as line items or shipping methods. Each tax region has a default tax rate. You can create tax rates that override the default using tax rules. These API routes allow admin users to manage tax rates and their rules. externalDocs: description: Learn more about tax rates and rules. url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules x-associatedSchema: $ref: '#/components/schemas/AdminTaxRate' - name: Tax Regions description: | A tax region is a region's tax settings. It has tax rates and rules. So, after you create a region, you must create a tax region for it. A tax region can extend settings from a parent tax region. These API routes allow admin users to manage tax regions. externalDocs: description: Learn more about tax regions. url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-region x-associatedSchema: $ref: '#/components/schemas/AdminTaxRegion' - name: Transaction Groups description: | A transaction group is a group of transactions that belong to a store credit account. It allows you to group transactions together, such as all transactions related to a specific gift card. These API routes allow admin users to list transaction groups. Transaction Group routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin). x-associatedSchema: $ref: '#/components/schemas/AdminTransactionGroup' - name: Uploads description: | Use these API routes to upload files to your Medusa application using the installed file module provider. You can upload public files, such as product images, or private files, such as CSV files used to import products. externalDocs: description: Check out available file module providers. url: https://docs.medusajs.com/resources/infrastructure-modules/file - name: Users description: | A user is an admin user that can authenticate and perform functionalities as an admin user. An admin user can invite other users to join their team. Once they accept the invite, they'll become admin users as well. These API routes allow admin users to manage their team. externalDocs: description: Learn more about the User Module. url: https://docs.medusajs.com/resources/commerce-modules/user x-associatedSchema: $ref: '#/components/schemas/AdminUser' - name: Workflows Executions description: | These API routes allow you to track workflow executions in your Medusa application. Depending on the workflow engine you use, executions may only be retained for a short while, or only until the Medusa application is restarted. externalDocs: description: Check out available Workflow Engine Modules url: https://docs.medusajs.com/resources/infrastructure-modules/workflow-engine paths: /admin/api-keys: get: operationId: GetApiKeys summary: List API Keys description: Retrieve a list of API keys. The API keys can be filtered by fields such as `id`. The API keys can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' - name: q in: query description: A search term to search the API keys' searchable properties. required: false schema: type: string title: q description: The search term. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by an API key's ID. - type: array description: Filter by API key IDs. items: type: string title: id description: The API key ID. - name: title in: query required: false schema: oneOf: - type: string title: title description: Filter by an API key's title. - type: array description: Filter by API key titles. items: type: string title: title description: The API key title. - name: token in: query required: false schema: oneOf: - type: string title: token description: Filter by an API key's token. - type: array description: Filter by API key tokens. items: type: string title: token description: The API key token. - name: type in: query description: Filter by the API key's type. required: false schema: type: string enum: - secret - publishable - name: created_at in: query description: Filter by the API key's creation date. required: false schema: type: object description: Filter by the API key's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the API key's update date. required: false schema: type: object description: Filter by the API key's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the API key's deletion date. required: false schema: type: object description: Filter by the API key's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: revoked_at in: query description: Filter by the API key's revoke date. required: false schema: type: object description: Filter by the API key's revoke date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.list() .then(({ api_keys, count, limit, offset }) => { console.log(api_keys) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/api-keys' \ -H 'Authorization: Bearer {access_token}' tags: - Api Keys responses: '200': description: OK content: application/json: schema: allOf: - type: object required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned in the list. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items. - type: object required: - api_keys properties: api_keys: type: array description: The list of API keys. items: $ref: '#/components/schemas/ApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostApiKeys summary: Create Api Key description: | Create a secret or publishable API key. A secret API key is used for admin authentication. A publishable API key is used by client applications to set the scope of the request. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateApiKey' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.create({ title: "Development", type: "publishable" }) .then(({ api_key }) => { console.log(api_key) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/api-keys' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "type": "{value}" }' tags: - Api Keys responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createApiKeysWorkflow x-events: [] /admin/api-keys/{id}: get: operationId: GetApiKeysId summary: Get API Key description: Retrieve an API key by its ID. You can expand the API key's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: id in: path description: The API key's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.retrieve("apk_123") .then(({ api_key }) => { console.log(api_key) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/api-keys/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Api Keys responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostApiKeysId summary: Update an API Key description: Update an API key's details. x-authenticated: true parameters: - name: id in: path description: The API key's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateApiKey' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.update("apk_123", { title: "Development" }) .then(({ api_key }) => { console.log(api_key) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/api-keys/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}" }' tags: - Api Keys responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateApiKeysWorkflow x-events: [] delete: operationId: DeleteApiKeysId summary: Delete an Api Key description: | Delete a publishable or secret API key. x-authenticated: true parameters: - name: id in: path description: The API key's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.delete("apk_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/api-keys/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Api Keys responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The API key's ID. object: type: string title: object description: The name of the object that was deleted. default: api_key deleted: type: boolean title: deleted description: Whether the API key was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteApiKeysWorkflow x-events: [] /admin/api-keys/{id}/revoke: post: operationId: PostApiKeysIdRevoke summary: Revoke API Key description: | Revokes an API key. If the API key is a secret, it can't be used for authentication anymore. If it's publishable, it can't be used by client applications. x-authenticated: true parameters: - name: id in: path description: The API key's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminRevokeApiKey' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.revoke("apk_123") .then(({ api_key }) => { console.log(api_key) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/api-keys/{id}/revoke' \ -H 'Authorization: Bearer {access_token}' tags: - Api Keys responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: revokeApiKeysWorkflow x-events: [] /admin/api-keys/{id}/sales-channels: post: operationId: PostApiKeysIdSalesChannels summary: Manage Sales Channels of a Publishable API Key x-sidebar-summary: Manage Sales Channels description: Manage the sales channels of a publishable API key, either to associate them or remove them from the API key. x-authenticated: true parameters: - name: id in: path description: The API key's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The sales channels to add or remove from the publishable API key. properties: add: type: array description: The sales channels to add to the publishable API key. items: type: string title: add description: A sales channel's ID. remove: type: array description: The sales channels to remove from the publishable API key. items: type: string title: remove description: A sales channel's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.apiKey.batchSalesChannels("apk_123", { add: ["sc_123"], remove: ["sc_321"] }) .then(({ api_key }) => { console.log(api_key) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/api-keys/{id}/sales-channels' \ -H 'Authorization: Bearer {access_token}' tags: - Api Keys responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminApiKeyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: linkSalesChannelsToApiKeyWorkflow x-events: [] /admin/campaigns: get: operationId: GetCampaigns summary: List Campaigns description: Retrieve a list of campaigns. The campaigns can be filtered by fields such as `id`. The campaigns can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.list() .then(({ campaigns, count, limit, offset }) => { console.log(campaigns) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/campaigns' \ -H 'Authorization: Bearer {access_token}' tags: - Campaigns responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of campaigns. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items retrieved. offset: type: number title: offset description: The number of its skipped before the returned items. count: type: number title: count description: The total number of items. - type: object description: The list of campaigns required: - campaigns properties: campaigns: type: array description: The list of campaigns. items: $ref: '#/components/schemas/CampaignResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCampaigns summary: Create Campaign description: Create a campaign. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The campaign's details. required: - name - campaign_identifier - description - budget - starts_at - ends_at properties: name: type: string title: name description: The campaign's name. campaign_identifier: type: string title: campaign_identifier description: The campaign's identifier. description: type: string title: description description: The campaign's description. budget: type: object description: The campaign's budget which, when crossed, ends the campaign. required: - type - limit - currency_code properties: type: type: string title: type description: | The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used. enum: - spend - usage limit: type: number title: limit description: The campaign budget's limit. currency_code: type: string title: currency_code description: The campaign budget's currency code. This can't be edited later. starts_at: type: string title: starts_at description: The campaign's start date. format: date-time ends_at: type: string title: ends_at description: The campaign's end date. format: date-time promotions: type: array description: The campaign's promotions. items: type: object description: The promotions to add to the campaign. required: - id properties: id: type: string title: id description: A promotion's ID. - type: object description: The campaign's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The campaign's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.create({ name: "Summer Campaign" }) .then(({ campaign }) => { console.log(campaign) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/campaigns' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Gunner", "campaign_identifier": "{value}", "description": "{value}", "starts_at": "2024-08-24T00:19:14.144Z", "ends_at": "2024-10-01T06:47:50.133Z" }' tags: - Campaigns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCampaignResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createCampaignsWorkflow x-events: [] /admin/campaigns/{id}: get: operationId: GetCampaignsId summary: Get a Campaign description: Retrieve a campaign by its ID. You can expand the campaign's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: id in: path description: The campaign's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.retrieve("procamp_123") .then(({ campaign }) => { console.log(campaign) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/campaigns/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Campaigns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCampaignResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCampaignsId summary: Update a Campaign description: Update a campaign's details. x-authenticated: true parameters: - name: id in: path description: The campaign's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The campaign's details. required: - description - starts_at - ends_at properties: name: type: string title: name description: The campaign's name. campaign_identifier: type: string title: campaign_identifier description: The campaign's identifier. description: type: string title: description description: The campaign's description. budget: type: object description: The campaign's budget. required: - limit properties: limit: type: number title: limit description: The campaign budget's limit. starts_at: type: string title: starts_at description: The campaign's start date. format: date-time ends_at: type: string title: ends_at description: The campaign's end date. format: date-time promotions: type: array description: The campaign's promotions. items: type: object description: The promotions to add to the campaign. required: - id properties: id: type: string title: id description: A promotion's ID. - type: object description: The campaign's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The campaign's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.update("procamp_123", { name: "Summer Campaign" }) .then(({ campaign }) => { console.log(campaign) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/campaigns/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "{value}", "starts_at": "2024-08-10T14:44:10.530Z", "ends_at": "2024-07-13T17:45:37.462Z" }' tags: - Campaigns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCampaignResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateCampaignsWorkflow x-events: [] delete: operationId: DeleteCampaignsId summary: Delete a Campaign description: | Delete a campaign by its ID. This doesn't delete promotions that belong to this campaign. x-authenticated: true parameters: - name: id in: path description: The campaign's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.delete("procamp_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/campaigns/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Campaigns responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The campaign's ID. object: type: string title: object description: The name of the object that was deleted. default: campaign deleted: type: boolean title: deleted description: Whether the campaign was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteCampaignsWorkflow x-events: [] /admin/campaigns/{id}/promotions: post: operationId: PostCampaignsIdPromotions summary: Manage the Promotions of a Campaign x-sidebar-summary: Manage Promotions description: Manage the promotions of a campaign, either by adding them or removing them from the campaign. x-authenticated: true parameters: - name: id in: path description: The campaign's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The promotions to add or remove from the campaign. properties: add: type: array description: The promotions to add to the campaign. items: type: string title: add description: A promotion's ID. remove: type: array description: The promotions to remove from the campaign. items: type: string title: remove description: A promotion's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.campaign.batchPromotions("procamp_123", { add: ["prom_123", "prom_456"], remove: ["prom_789"] }) .then(({ campaign }) => { console.log(campaign) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/campaigns/{id}/promotions' \ -H 'Authorization: Bearer {access_token}' tags: - Campaigns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCampaignResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: addOrRemoveCampaignPromotionsWorkflow x-events: [] /admin/claims: get: operationId: GetClaims summary: List Claims description: Retrieve a list of claims. The claims can be filtered by fields such as `id`. The claims can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: deleted_at in: query description: The claim's deleted at. required: false schema: type: object description: The claim's deleted at. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: q in: query description: The claim's q. required: false schema: type: string title: q description: The claim's q. - name: id in: query required: false schema: oneOf: - type: string title: id description: The claim's ID. - type: array description: The claim's ID. items: type: string title: id description: The id's ID. - name: order_id in: query required: false schema: oneOf: - type: string title: order_id description: The claim's order id. - type: array description: The claim's order id. items: type: string title: order_id description: The order id's details. - name: status in: query required: false schema: oneOf: - type: string title: status description: The claim's status. - type: array description: The claim's status. items: type: string title: status description: The status's details. - name: created_at in: query description: The claim's created at. required: false schema: type: object description: The claim's created at. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: The claim's updated at. required: false schema: type: object description: The claim's updated at. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.list() .then(({ claims, count, limit, offset }) => { console.log(claims) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/claims' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostClaims summary: Create a Claim description: Create a claim. The claim is still in the request state, and the changes are only applied on the order once the claim is confirmed. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderClaimsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.create({ type: "refund", order_id: "order_123", }) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "type": "{value}", "order_id": "{value}", "metadata": {} }' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginClaimOrderWorkflow x-events: [] /admin/claims/{id}: get: operationId: GetClaimsId summary: Get a Claim description: Retrieve a claim by its ID. You can expand the claim's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.retrieve("claim_123") .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/claims/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/claims/{id}/cancel: post: operationId: PostClaimsIdCancel summary: Cancel a Claim description: Cancel a claim and its associated return. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostCancelClaimReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.cancel("claim_123") .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelOrderClaimWorkflow x-events: [] /admin/claims/{id}/claim-items: post: operationId: PostClaimsIdClaimItems summary: Add Claim Items to a Claim x-sidebar-summary: Add Claim Items description: Add order items to a claim as claim items. These claim items will have the action `WRITE_OFF_ITEM`. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.addItems("claim_123", { items: [ { id: "orli_123", quantity: 1 } ] }) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/claim-items' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderClaimItemWorkflow x-events: [] /admin/claims/{id}/claim-items/{action_id}: post: operationId: PostClaimsIdClaimItemsAction_id summary: Update a Claim Item description: | Update an order item in a claim by the ID of the item's `WRITE_OFF_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the order item's `WRITE_OFF_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.updateItem( "claim_123", "ordchact_123", { quantity: 1 } ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateClaimItemWorkflow x-events: [] delete: operationId: DeleteClaimsIdClaimItemsAction_id summary: Remove a Claim Item from a Claim x-sidebar-summary: Remove Claim Item description: | Remove an order item from a claim by the ID of the item's `WRITE_OFF_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the order item's `WRITE_OFF_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.removeItem( "claim_123", "ordchact_123", ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemClaimActionWorkflow x-events: [] /admin/claims/{id}/inbound/items: post: operationId: PostClaimsIdInboundItems summary: Add Inbound Items to a Claim x-sidebar-summary: Add Inbound Items description: | Add inbound (or return) items to a claim. These inbound items will have a `RETURN_ITEM` action. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsRequestItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.addInboundItems( "claim_123", { items: [ { id: "orli_123", quantity: 1 } ] }, ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/inbound/items' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderClaimRequestItemReturnWorkflow x-events: [] /admin/claims/{id}/inbound/items/{action_id}: post: operationId: PostClaimsIdInboundItemsAction_id summary: Update Inbound Items of a Claim x-sidebar-summary: Update Inbound Items description: | Update an inbound (or return) item of a claim using the `ID` of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the return item's `RETURN_ITEM` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsRequestItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.updateInboundItem( "claim_123", "ordchact_123", { quantity: 1 }, ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/inbound/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateRequestItemReturnWorkflow x-events: [] delete: operationId: DeleteClaimsIdInboundItemsAction_id summary: Remove an Inbound Item from Claim x-sidebar-summary: Remove Inbound Item description: | Remove an inbound (or return) item from a claim using the `ID` of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the return item's `RETURN_ITEM` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.removeInboundItem( "claim_123", "ordchact_123", ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/claims/{id}/inbound/items/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemReturnActionWorkflow x-events: [] /admin/claims/{id}/inbound/shipping-method: post: operationId: PostClaimsIdInboundShippingMethod summary: Add an Inbound Shipping Method to a Claim x-sidebar-summary: Add Inbound Shipping description: | Add an inbound (or return) shipping method to a claim. The inbound shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsShippingReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.addInboundShipping( "claim_123", { shipping_option_id: "so_123", custom_amount: 10 }, ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createClaimShippingMethodWorkflow x-events: [] /admin/claims/{id}/inbound/shipping-method/{action_id}: post: operationId: PostClaimsIdInboundShippingMethodAction_id summary: Update Inbound Shipping Method of a Claim x-sidebar-summary: Update Inbound Shipping description: | Update the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsShippingActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.updateInboundShipping( "claim_123", "ordchact_123", { custom_amount: 10 }, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReturnShippingMethodWorkflow x-events: [] delete: operationId: DeleteClaimsIdInboundShippingMethodAction_id summary: Remove Inbound Shipping Method from Claim x-sidebar-summary: Remove Inbound Shipping Method description: | Remove the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.deleteInboundShipping( "claim_123", "ordchact_123", ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeClaimShippingMethodWorkflow x-events: [] /admin/claims/{id}/outbound/items: post: operationId: PostClaimsIdOutboundItems summary: Add Outbound Items to a Claim x-sidebar-summary: Add Outbound Items description: | Add outbound (or new) items to a claim. These outbound items will have an `ITEM_ADD` action. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsAddItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.addOutboundItems( "claim_123", { items: [{ id: "orli_123", quantity: 1 }] }, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/outbound/items' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderClaimAddNewItemWorkflow x-events: [] /admin/claims/{id}/outbound/items/{action_id}: post: operationId: PostClaimsIdOutboundItemsAction_id summary: Update Outbound Item of a Claim x-sidebar-summary: Update Outbound Item description: | Update an outbound (or new) item of a claim using the `ID` of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new claim item's `ITEM_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.updateOutboundItem( "claim_123", "ordchact_123", { quantity: 1 }, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/outbound/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateClaimAddItemWorkflow x-events: [] delete: operationId: DeleteClaimsIdOutboundItemsAction_id summary: Remove an Outbound Item from Claim x-sidebar-summary: Remove Outbound Item description: | Remove an outbound (or new) item from a claim using the `ID` of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new claim item's `ITEM_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.removeOutboundItem( "claim_123", "ordchact_123", ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/claims/{id}/outbound/items/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeAddItemClaimActionWorkflow x-events: [] /admin/claims/{id}/outbound/shipping-method: post: operationId: PostClaimsIdOutboundShippingMethod summary: Add Outbound Shipping Methods to a Claim x-sidebar-summary: Add Outbound Shipping description: | Add an outbound shipping method to a claim. The outbound shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsShippingReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.addOutboundShipping( "claim_123", { shipping_option_id: "so_123", custom_amount: 10 }, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createClaimShippingMethodWorkflow x-events: [] /admin/claims/{id}/outbound/shipping-method/{action_id}: post: operationId: PostClaimsIdOutboundShippingMethodAction_id summary: Update Outbound Shipping Method of a Claim x-sidebar-summary: Update Outbound Shipping description: | Update the shipping method for delivering outbound items in a claim using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostClaimsShippingActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.updateOutboundShipping( "claim_123", "ordchact_123", { custom_amount: 10 }, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateClaimShippingMethodWorkflow x-events: [] delete: operationId: DeleteClaimsIdOutboundShippingMethodAction_id summary: Remove Outbound Shipping Method from Claim x-sidebar-summary: Remove Outbound Shipping Method description: | Remove the shipping method for delivering outbound items in the claim using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.deleteOutboundShipping( "claim_123", "ordchact_123", ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeClaimShippingMethodWorkflow x-events: [] /admin/claims/{id}/request: post: operationId: PostClaimsIdRequest summary: Confirm a Claim Request x-sidebar-summary: Confirm Claim description: Confirm a claim request, applying its changes on the associated order. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.request( "claim_123", {}, ) .then(({ claim }) => { console.log(claim) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/claims/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimRequestResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmClaimRequestWorkflow x-events: - name: order.claim_created payload: |- ```ts { order_id, // The ID of the order claim_id, // The ID of the claim } ``` description: Emitted when a claim is created for an order. deprecated: false delete: operationId: DeleteClaimsIdRequest summary: Cancel Claim Request description: Cancel a requested claim. x-authenticated: true parameters: - name: id in: path description: The claim's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.claim.cancelRequest( "claim_123", ) .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/claims/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Claims responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminClaimDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelBeginOrderClaimWorkflow x-events: [] /admin/collections: get: operationId: GetCollections summary: List Collections description: Retrieve a list of collections. The collections can be filtered by fields such as `id`. The collections can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: deleted_at in: query description: Filter by the collection's deletion date. required: false schema: type: object description: Filter by the collection's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: q in: query description: Search term to filter the collection's searchable properties by. required: false schema: type: string title: q description: Search term to filter the collection's searchable properties by. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a collection's ID. - type: array description: Filter by collection IDs. items: type: string title: id description: The collection's ID. - name: handle in: query required: false schema: oneOf: - type: string title: handle description: Filter by a collection's handle. - type: array description: Filter by collection handles. items: type: string title: handle description: The collection's handle. - name: title in: query required: false schema: oneOf: - type: string title: title description: Filter by a collection's title. - type: array description: Filter by collection titles. items: type: string title: title description: The collection's title. - name: created_at in: query description: Filter by the collection's creation date. required: false schema: type: object description: Filter by the collection's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the collection's update date. required: false schema: type: object description: Filter by the collection's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.list() .then(({ collections, count, limit, offset }) => { console.log(collections) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/collections' \ -H 'Authorization: Bearer {access_token}' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCollections summary: Create Collection description: Create a collection. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The collection's details. required: - title properties: title: type: string title: title description: The collection's title. handle: type: string title: handle description: The collection's handle. metadata: type: object description: The collection's metadata. Can hold custom key-value pairs. - type: object description: The collection's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: the product collection's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.create({ title: "Summer Collection" }) .then(({ collection }) => { console.log(collection) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/collections' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "metadata": {} }' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createCollectionsWorkflow x-events: - name: product-collection.created payload: |- ```ts [{ id, // The ID of the product collection }] ``` description: Emitted when product collections are created. deprecated: false /admin/collections/{id}: get: operationId: GetCollectionsId summary: Get a Collection description: Retrieve a collection by its ID. You can expand the collection's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: id in: path description: The collection's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.retrieve("pcol_123") .then(({ collection }) => { console.log(collection) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/collections/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCollectionsId summary: Update a Collection description: Update a collection's details. x-authenticated: true parameters: - name: id in: path description: The collection's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The details to update in a collection. properties: title: type: string title: title description: The collection's title. handle: type: string title: handle description: The collection's handle. metadata: type: object description: The collection's metadata. - type: object description: The details to update in a collection. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The details to update in a collection. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.update("pcol_123", { title: "Summer Collection" }) .then(({ collection }) => { console.log(collection) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/collections/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateCollectionsWorkflow x-events: - name: product-collection.updated payload: |- ```ts [{ id, // The ID of the product collection }] ``` description: Emitted when product collections are updated. deprecated: false delete: operationId: DeleteCollectionsId summary: Delete a Collection description: Delete a product collection. x-authenticated: true parameters: - name: id in: path description: The collection's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.delete("pcol_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/collections/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteCollectionsWorkflow x-events: - name: product-collection.deleted payload: |- ```ts [{ id, // The ID of the product collection }] ``` description: Emitted when product collections are deleted. deprecated: false /admin/collections/{id}/products: post: operationId: PostCollectionsIdProducts summary: Manage Products of a Collection x-sidebar-summary: Manage Products description: Manage the products of a collection by adding or removing them from the collection. x-authenticated: true parameters: - name: id in: path description: The collection's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The products to add or remove. properties: add: type: array description: The products to add to the collection. items: type: string title: add description: A product's ID. remove: type: array description: The products to remove from the collection. items: type: string title: remove description: A product's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCollection.updateProducts("pcol_123", { add: ["prod_123"], remove: ["prod_321"] }) .then(({ collection }) => { console.log(collection) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/collections/{id}/products' \ -H 'Authorization: Bearer {access_token}' tags: - Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchLinkProductsToCollectionWorkflow x-events: [] /admin/currencies: get: operationId: GetCurrencies summary: List Currencies description: Retrieve a list of currencies. The currencies can be filtered by fields such as `id`. The currencies can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: The search term to filter the currency's searchable properties by. required: false schema: type: string title: q description: The search term to filter the currency's searchable properties by. - name: code in: query required: false schema: oneOf: - type: string title: code description: Filter by a currency code. - type: array description: Filter by currency codes. items: type: string title: code description: A currency code. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.currency.list() .then(({ currencies, count, limit, offset }) => { console.log(currencies) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/currencies' \ -H 'Authorization: Bearer {access_token}' tags: - Currencies responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCurrencyListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/currencies/{code}: get: operationId: GetCurrenciesCode summary: Get a Currency description: Retrieve a currency by its code. You can expand the currency's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: code in: path description: The currency's code. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.currency.retrieve("usd") .then(({ currency }) => { console.log(currency) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/currencies/{code}' \ -H 'Authorization: Bearer {access_token}' tags: - Currencies responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCurrencyResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/customer-groups: get: operationId: GetCustomerGroups summary: List Customer Groups description: Retrieve a list of customer groups. The customer groups can be filtered by fields such as `id`. The customer groups can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the customer group's searchable properties. required: false schema: type: string title: q description: Search term to filter the customer group's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a customer group's IDs. - type: array description: Filter by customer group IDs. items: type: string title: id description: A customer group's ID. - name: name in: query required: false schema: oneOf: - type: string title: name description: Filter by a customer group's name. - type: array description: Filter by customer group names. items: type: string title: name description: A customer group's name. - name: customers in: query required: false schema: oneOf: - type: string title: customers description: Filter by the ID of a customer to retrieve its groups. - type: array description: Filter by customer IDs to retrieve their groups. items: type: string title: customers description: A customer's ID. - $ref: '#/components/schemas/AdminCustomerInGroupFilters' - name: created_by in: query required: false schema: oneOf: - type: string title: created_by description: Filter by an ID of a user to retrieve the customer groups they created. - type: array description: Filter by the IDs of users to retrieve the customer groups they created. items: type: string title: created_by description: The user's ID. - name: created_at in: query description: Filter the customer group by its creation date. required: false schema: type: object description: Filter the customer group by its creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter the customer groups by their update date. required: false schema: type: object description: Filter the customer groups by their update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter the customer groups by their deletion date. required: false schema: type: object description: Filter the customer groups by their deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.list() .then(({ customer_groups, count, limit, offset }) => { console.log(customer_groups) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customer-groups' \ -H 'Authorization: Bearer {access_token}' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of customer groups. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items retrieved. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items - type: object description: The paginated list of customer groups. required: - customer_groups properties: customer_groups: type: array description: The list of customer groups. items: $ref: '#/components/schemas/AdminCustomerGroup' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomerGroups summary: Create Customer Group description: Create a customer group. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateCustomerGroup' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.create({ name: "VIP" }) .then(({ customer_group }) => { console.log(customer_group) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customer-groups' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Solon", "metadata": {} }' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerGroupResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createCustomerGroupsWorkflow x-events: [] /admin/customer-groups/{id}: get: operationId: GetCustomerGroupsId summary: Get a Customer Group description: Retrieve a customer group by its ID. You can expand the customer group's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The customer group's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.retrieve("cusgroup_123") .then(({ customer_group }) => { console.log(customer_group) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customer-groups/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerGroupResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomerGroupsId summary: Update a Customer Group description: Update a customer group's details. x-authenticated: true parameters: - name: id in: path description: The customer group's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateCustomerGroup' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.update("cusgroup_123", { name: "VIP" }) .then(({ customer_group }) => { console.log(customer_group) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customer-groups/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Corbin", "metadata": {} }' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerGroupResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateCustomerGroupsWorkflow x-events: [] delete: operationId: DeleteCustomerGroupsId summary: Delete a Customer Group description: | Delete a customer group. Customers in the group aren't deleted. x-authenticated: true parameters: - name: id in: path description: The customer group's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.delete("cusgroup_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/customer-groups/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The customer group's ID. object: type: string title: object description: The customer group's object. deleted: type: boolean title: deleted description: The customer group's deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteCustomerGroupsWorkflow x-events: [] /admin/customer-groups/{id}/customers: post: operationId: PostCustomerGroupsIdCustomers summary: Manage Customers of a Customer Group x-sidebar-summary: Manage Customers description: Manage the customers of a group to add or remove them from the group. x-authenticated: true parameters: - name: id in: path description: The customer group's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The customers to add or remove from the group. properties: add: type: array description: The customers to add to the group. items: type: string title: add description: A customer's ID. remove: type: array description: The customers to remove from the group. items: type: string title: remove description: A customer's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customerGroup.batchCustomers("cusgroup_123", { add: ["cus_123"], remove: ["cus_321"] }) .then(({ customer_group }) => { console.log(customer_group) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customer-groups/{id}/customers' \ -H 'Authorization: Bearer {access_token}' tags: - Customer Groups responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerGroupResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: linkCustomersToCustomerGroupWorkflow x-events: [] /admin/customers: get: operationId: GetCustomers summary: List Customers description: Retrieve a list of customers. The customers can be filtered by fields such as `id`. The customers can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: groups in: query required: false schema: oneOf: - type: string title: groups description: Filter by a customer group's ID to retrieve customers that belong to it. - $ref: '#/components/schemas/CustomerGroupInCustomerFilters' - type: array description: Filter by customer group IDs to retrieve customers that belong to them. items: type: string title: groups description: The customer group's ID. - name: q in: query description: Search term to filter the customer's searchable properties by. required: false schema: type: string title: q description: Search term to filter the customer's searchable properties by. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a customer's ID. - type: array description: Filter by customer IDs. items: type: string title: id description: A customer's ID. - type: object description: Filters to apply on the customer ID. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: email in: query required: false schema: oneOf: - type: string title: email description: Filter by a customer email. format: email - type: array description: Filter by customer emails. items: type: string title: email description: A customer's email. format: email - type: object description: Filter by conditions on the customer email. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: company_name in: query required: false schema: oneOf: - type: string title: company_name description: Filter by a customer's company name. - type: array description: Filter by customer company names. items: type: string title: company_name description: The customer's company name. - type: object description: Filter by conditions on the customer's company name. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: first_name in: query required: false schema: oneOf: - type: string title: first_name description: Filter by a customer's first name. - type: array description: Filter by customer first names. items: type: string title: first_name description: A customer's first name. - type: object description: Filter by conditions on the first name. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: last_name in: query required: false schema: oneOf: - type: string title: last_name description: Filter by a customer's last name. - type: array description: Filter by customer last names. items: type: string title: last_name description: A customer's last name. - type: object description: Filter by conditions on a customer's last name. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: created_by in: query required: false schema: oneOf: - type: string title: created_by description: Filter by a user ID to retrieve the customers they created. - type: array description: Filter by user IDs to retrieve customers they created. items: type: string title: created_by description: A user's ID. - type: object description: Filter by conditions on the user ID that created the customer. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: created_at in: query description: Filter by the customer's creation date. required: false schema: type: object description: Filter by the customer's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a customer's update date. required: false schema: type: object description: Filter by a customer's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter a customer by their deletion date. required: false schema: type: object description: Filter a customer by their deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: has_account in: query description: Filter by whether the customer is registered. required: false schema: type: boolean title: has_account description: Filter by whether the customer is registered. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.list() .then(({ customers, count, limit, offset }) => { console.log(customers) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customers' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of customers. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned in the list. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of customers. required: - customers properties: customers: $ref: '#/components/schemas/AdminCustomer' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomers summary: Create Customer description: Create a customer. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The customer's details. required: - email - company_name - first_name - last_name - phone - metadata properties: email: type: string title: email description: The customer's email. format: email company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata. - type: object description: The customer's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The customer's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.create({ email: "customer@gmail.com" }) .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customers' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "email": "Tomas.Toy16@yahoo.com", "company_name": "{value}", "first_name": "{value}", "last_name": "{value}", "phone": "{value}", "metadata": {} }' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createCustomersWorkflow x-events: - name: customer.created payload: |- ```ts [{ id, // The ID of the customer }] ``` description: Emitted when a customer is created. deprecated: false /admin/customers/{id}: get: operationId: GetCustomersId summary: Get a Customer description: Retrieve a customer by its ID. You can expand the customer's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.retrieve("cus_123") .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customers/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomersId summary: Update a Customer description: Update a customer's details. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The customer's details. required: - email - company_name - first_name - last_name - phone - metadata properties: email: type: string title: email description: The customer's email. format: email company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata. - type: object description: The customer's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The customer's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.update("cus_123", { first_name: "John" }) .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customers/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "email": "Daren_Rodriguez-Rutherford93@gmail.com", "company_name": "{value}", "first_name": "{value}", "last_name": "{value}", "phone": "{value}", "metadata": {} }' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateCustomersWorkflow x-events: - name: customer.updated payload: |- ```ts [{ id, // The ID of the customer }] ``` description: Emitted when a customer is updated. deprecated: false delete: operationId: DeleteCustomersId summary: Delete a Customer description: Delete a customer. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.delete("cus_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/customers/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The customer's ID. object: type: string title: object description: The customer's object. deleted: type: boolean title: deleted description: The customer's deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeCustomerAccountWorkflow x-events: - name: customer.deleted payload: |- ```ts [{ id, // The ID of the customer }] ``` description: Emitted when a customer is deleted. deprecated: false /admin/customers/{id}/addresses: get: operationId: GetCustomersIdAddresses summary: List Addresses description: Retrieve a list of addresses in a customer. The addresses can be filtered by fields like `query`. The addresses can also be paginated. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to apply on the address's searchable properties. required: false schema: type: string title: q description: Search term to apply on the address's searchable properties. - name: company in: query required: false schema: oneOf: - type: string title: company description: Filter by a company. - type: array description: Filter by companies. items: type: string title: company description: A company's name. - name: city in: query required: false schema: oneOf: - type: string title: city description: Filter by a city. - type: array description: Filter by cities. items: type: string title: city description: A city's name. - name: country_code in: query required: false schema: oneOf: - type: string title: country_code description: Filter by a currency code. - type: array description: Filter by currency codes. items: type: string title: country_code description: A currency code. - name: province in: query required: false schema: oneOf: - type: string title: province description: Filter by an ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 - type: array description: Filter by ISO 3166-2 provinces. items: type: string title: province description: A ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 - name: postal_code in: query required: false schema: oneOf: - type: string title: postal_code description: Filter by a postal code. - type: array description: Filter by postal codes. items: type: string title: postal_code description: A postal code. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.listAddresses("cus_123") .then(({ addresses }) => { console.log(addresses) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customers/{id}/addresses' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of customer addresses. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of customer addresses required: - addresses properties: addresses: type: array description: The customer addresses. items: $ref: '#/components/schemas/AdminCustomerAddress' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomersIdAddresses summary: Add a Customer Address x-sidebar-summary: Add Address description: Add an address to a customer. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The address's details. required: - address_name - company - first_name - last_name - address_1 - address_2 - city - country_code - province - postal_code - phone - metadata properties: address_name: type: string title: address_name description: The name of the address. is_default_shipping: type: boolean title: is_default_shipping description: Whether this address is used by default for shipping when placing an order. is_default_billing: type: boolean title: is_default_billing description: Whether this address is used by default for billing when placing an order. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata. - type: object description: The address's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The address's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.createAddress("cus_123", { address_1: "123 Main St", city: "Anytown", country_code: "US", postal_code: "12345" }) .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customers/{id}/addresses' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "address_name": "{value}", "company": "{value}", "first_name": "{value}", "last_name": "{value}", "address_1": "{value}", "address_2": "{value}", "city": "{value}", "country_code": "{value}", "province": "us-ca", "postal_code": "{value}", "phone": "{value}", "metadata": {} }' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createCustomerAddressesWorkflow x-events: [] /admin/customers/{id}/addresses/{address_id}: get: operationId: GetCustomersIdAddressesAddress_id summary: List Addresses description: Retrieve a list of a customer's addresses. The addresses can be filtered by fields like `company`. The addresses can also be paginated. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: address_id in: path description: The customer's address id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.retrieveAddress("cus_123", "cus_addr_123") .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/customers/{id}/addresses/{address_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerAddressResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostCustomersIdAddressesAddress_id summary: Update a Customer's Address x-sidebar-summary: Update Address description: Update a customer address's details. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: address_id in: path description: The customer's address id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The address's details. required: - address_name - company - first_name - last_name - address_1 - address_2 - city - country_code - province - postal_code - phone - metadata properties: address_name: type: string title: address_name description: The name of the address. is_default_shipping: type: boolean title: is_default_shipping description: Whether this address is used by default for shipping when placing an order. is_default_billing: type: boolean title: is_default_billing description: Whether this address is used by default for billing when placing an order. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line address_2: type: string title: address_2 description: The address's second line city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata. - type: object description: The address's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The address's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.updateAddress("cus_123", "cus_addr_123", { address_1: "123 Main St", city: "Anytown", country_code: "US", postal_code: "12345" }) .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customers/{id}/addresses/{address_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "address_name": "{value}", "company": "{value}", "first_name": "{value}", "last_name": "{value}", "address_1": "{value}", "address_2": "{value}", "city": "{value}", "country_code": "{value}", "province": "{value}", "postal_code": "{value}", "phone": "{value}", "metadata": {} }' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateCustomerAddressesWorkflow x-events: [] delete: operationId: DeleteCustomersIdAddressesAddress_id summary: Remove an Address from Customer description: Remove a customer's address. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: address_id in: path description: The customer address's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.deleteAddress("cus_123", "cus_addr_123") .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/customers/{id}/addresses/{address_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Customers responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The customer's ID. object: type: string title: object description: The name of the deleted object. deleted: type: boolean title: deleted description: Whether the Customer was deleted. - type: object description: The deletion's details. properties: parent: $ref: '#/components/schemas/AdminCustomer' description: The deletion's details. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteCustomerAddressesWorkflow x-events: [] /admin/customers/{id}/customer-groups: post: operationId: PostCustomersIdCustomerGroups x-sidebar-summary: Manage Customer Groups summary: Manage Customer Groups of Customer description: Manage the customer groups of a customer, adding or removing the customer from those groups. x-authenticated: true parameters: - name: id in: path description: The customer's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: SUMMARY properties: add: type: array description: The customer groups to add the customer to. items: type: string title: add description: The ID of the group to add the customer to. remove: type: array description: The customer groups to remove the customer from. items: type: string title: remove description: The ID of the group to remove the customer from. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.customer.batchCustomerGroups("cus_123", { add: ["cusgroup_123"], remove: ["cusgroup_321"] }) .then(({ customer }) => { console.log(customer) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/customers/{id}/customer-groups' \ -H 'Authorization: Bearer {access_token}' tags: - Customers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminCustomerResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: linkCustomerGroupsToCustomerWorkflow x-events: [] /admin/draft-orders: get: operationId: GetDraftOrders summary: List Draft Orders description: Retrieve a list of draft orders. The draft orders can be filtered by fields such as `id`. The draft orders can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a draft order's ID. - type: array description: Filter by draft order IDs. items: type: string title: id description: A draft order's ID. - type: object description: Filter by conditions on the draft order's ID. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: status in: query required: false schema: oneOf: - type: string title: status description: Filter by a draft order's status. - type: array description: Filter by draft order statuses. items: type: string title: status description: The draft order status. - type: object description: Filter by conditions on the status. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: oneOf: - type: string title: $ne description: Filter by values not equal to this parameter. - type: array description: Filter by values not in this array. items: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: oneOf: - type: string title: $in description: Filter by matching value. - type: array description: Filter by values in this array. items: type: string title: $in description: Filter matching values. $nin: type: array description: Filter by values not in this array. items: oneOf: - type: string title: $nin description: Filter by values not matching this parameter. - type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by exact matches. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not matching this parameter. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not in this array. items: type: string title: $not description: Filter by values not matching this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). $gt: oneOf: - type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than items in this array. Useful for numbers and dates only. items: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: oneOf: - type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values greater than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: oneOf: - type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than items in this array. Useful for numbers and dates only. items: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: oneOf: - type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - type: array description: Filter by values less than or equal to items in this array. Useful for numbers and dates only. items: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: sales_channel_id in: query description: Filter by the associated sales channels to retrieve its draft orders. required: false schema: type: array description: Filter by the associated sales channels to retrieve its draft orders. items: type: string title: sales_channel_id description: A sales channel's ID. - name: region_id in: query description: Filter by region IDs to retrieve their associated draft orders. required: false schema: oneOf: - type: string title: region_id description: The draft order's region id. - type: array description: The draft order's region id. items: type: string title: region_id description: The region id's details. - name: q in: query description: Search term to filter the order's searchable properties. required: false schema: type: string title: q description: Search term to filter the order's searchable properties. - name: created_at in: query description: Filter by the draft order's creation date. required: false schema: type: object description: Filter by the draft order's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the draft order's update date. required: false schema: type: object description: Filter by the draft order's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: customer_id in: query required: false schema: oneOf: - type: string title: customer_id description: The draft order's customer id. - type: array description: The draft order's customer id. items: type: string title: customer_id description: The customer id's details. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.list() .then(({ draft_orders, count, limit, offset }) => { console.log(draft_orders) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/draft-orders' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: getOrdersListWorkflow x-events: [] post: operationId: PostDraftOrders summary: Create Draft Order description: Create a draft order. This creates an order with the `is_draft_order` property enabled. You can later convert the draft order to an order. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The draft order's details. required: - sales_channel_id - email - customer_id - region_id - currency_code - shipping_methods - metadata properties: status: type: string title: status description: The draft order's status. enum: - completed sales_channel_id: type: string title: sales_channel_id description: The ID of the associated sales channel. email: type: string title: email description: The email of the draft order's customer. format: email customer_id: type: string title: customer_id description: The ID of the draft order's customer. billing_address: type: object description: The billing address's details. required: - first_name - last_name - phone - company - address_1 - address_2 - city - country_code - province - postal_code - metadata properties: first_name: type: string title: first_name description: The billing address's first name. last_name: type: string title: last_name description: The billing address's last name. phone: type: string title: phone description: The billing address's phone. company: type: string title: company description: The billing address's company. address_1: type: string title: address_1 description: The billing address's first line. address_2: type: string title: address_2 description: The billing address's second line. city: type: string title: city description: The billing address's city. country_code: type: string title: country_code description: The billing address's country code. province: type: string title: province description: The billing address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The billing address's postal code. metadata: type: object description: The billing address's metadata. shipping_address: type: object description: The draft order's shipping address. required: - first_name - last_name - phone - company - address_1 - address_2 - city - country_code - province - postal_code - metadata properties: first_name: type: string title: first_name description: The shipping address's first name. last_name: type: string title: last_name description: The shipping address's last name. phone: type: string title: phone description: The shipping address's phone. company: type: string title: company description: The shipping address's company. address_1: type: string title: address_1 description: The shipping address's first line. address_2: type: string title: address_2 description: The shipping address's second line. city: type: string title: city description: The shipping address's city. country_code: type: string title: country_code description: The shipping address's country code. province: type: string title: province description: The shipping address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The shipping address's postal code. metadata: type: object description: The shipping address's metadata. items: type: array description: The draft order's items. items: type: object description: The item's details. required: - title - sku - barcode - variant_id - unit_price - quantity - metadata properties: title: type: string title: title description: The item's title. sku: type: string title: sku description: The item's SKU. barcode: type: string title: barcode description: The item's barcode. variant_id: type: string title: variant_id description: The ID of the associated product variant. unit_price: oneOf: - type: string title: unit_price description: The item's unit price. - type: number title: unit_price description: The item's unit price. - type: object description: The item's unit price. required: - value - precision properties: value: type: string title: value description: The unit price's value. precision: type: number title: precision description: The unit price's rounding precision. quantity: type: number title: quantity description: The item's ordered quantity. metadata: type: object description: The item's metadata. region_id: type: string title: region_id description: The ID of the associated region. promo_codes: type: array description: The promotion codes applied on the draft order. items: type: string title: promo_codes description: A promotion code. currency_code: type: string title: currency_code description: The draft order's currency code. no_notification_order: type: boolean title: no_notification_order description: Whether to send the customer notifications on order changes. shipping_methods: type: array description: The draft order's shipping methods. items: type: object description: The shipping method's details. required: - name - option_id - amount properties: shipping_method_id: type: string title: shipping_method_id description: The ID of an existing shipping method. name: type: string title: name description: The shipping method's name. option_id: type: string title: option_id description: The ID of the shipping option this method is created from. data: type: object description: The shipping method's data, useful for fulfillment providers. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property amount: oneOf: - type: string title: amount description: The shipping method's amount. - type: number title: amount description: The shipping method's amount. - type: object description: The shipping method's amount. required: - value - precision properties: value: type: string title: value description: The amount's value. precision: type: number title: precision description: The amount's rounding precision. metadata: type: object description: The draft order's metadata. - type: object description: The draft order's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The draft order's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.create({ email: "test@test.com", items: [ { variant_id: "variant_123", quantity: 1, }, ], region_id: "region_123", sales_channel_id: "sc_123", }) .then(({ draft_order }) => { console.log(draft_order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "sales_channel_id": "{value}", "email": "Bartholome.Goodwin90@yahoo.com", "customer_id": "{value}", "region_id": "{value}", "currency_code": "{value}", "shipping_methods": [ { "shipping_method_id": "{value}", "order_id": "{value}", "name": "Cheyanne", "option_id": "{value}" } ], "metadata": {} }' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderWorkflow x-events: [] /admin/draft-orders/{id}: get: operationId: GetDraftOrdersId summary: Get a Draft Order description: Retrieve a draft order by its ID. You can expand the draft order's relations or select the fields that should be returned using the query parameters. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.retrieve("order_123") .then(({ draft_order }) => { console.log(draft_order) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/draft-orders/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: getOrderDetailWorkflow x-events: [] post: operationId: PostDraftOrdersId summary: Update a Draft Order description: Update a draft order's details. This doesn't include updating the draft order's items, shipping methods, or promotions. To update those, you need to create an edit that you can later request or confirm. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateDraftOrder' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.update("order_123", { email: "test@test.com", }) .then(({ draft_order }) => { console.log(draft_order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateDraftOrderWorkflow x-events: - name: order.updated payload: |- ```ts { id, // The ID of the order } ``` description: |- Emitted when the details of an order or draft order is updated. This doesn't include updates made by an edit. deprecated: false delete: operationId: DeleteDraftOrdersId summary: Delete a Draft Order description: Delete a draft order. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.delete("order_123") .then(({ id, object, deleted }) => { console.log(id, object, deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteDraftOrdersWorkflow x-events: [] x-version: 2.8.4 /admin/draft-orders/{id}/convert-to-order: post: operationId: PostDraftOrdersIdConvertToOrder summary: Convert a Draft Order to an Order x-sidebar-summary: Convert to Order description: Convert a draft order to an order. This will finalize the draft order and create a new order with the same details. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.convertToOrder("order_123") .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/convert-to-order' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: convertDraftOrderWorkflow x-events: - name: order.placed payload: |- ```ts { id, // The ID of the order } ``` description: |- Emitted when an order is placed, or when a draft order is converted to an order. deprecated: false /admin/draft-orders/{id}/edit: post: operationId: PostDraftOrdersIdEdit summary: Create a Draft Order Edit x-sidebar-summary: Create Edit description: Create an edit on a draft order. This will allow you to make changes to the draft order's items, shipping methods, or promotions. Once you've made the necessar changes, you can later either request the edit (which requires a confirmation from the customer), or force-confirm the edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.beginEdit("order_123") .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginDraftOrderEditWorkflow x-events: [] delete: operationId: DeleteDraftOrdersIdEdit summary: Cancel Edit on Draft Order x-sidebar-summary: Cancel Edit description: Cancel an unconfirmed edit on a draft order. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.cancelEdit("order_123") .then(({ id, object, deleted }) => { console.log(id, object, deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelDraftOrderEditWorkflow x-events: [] /admin/draft-orders/{id}/edit/confirm: post: operationId: PostDraftOrdersIdEditConfirm summary: Confirm an Edit on a Draft Order x-sidebar-summary: Confirm Edit description: Confirm an edit on a draft order. This will apply the changes made to the draft order. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.confirmEdit("order_123") .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/confirm' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmDraftOrderEditWorkflow x-events: [] /admin/draft-orders/{id}/edit/items: post: operationId: PostDraftOrdersIdEditItems summary: Add Item to Draft Order Edit x-sidebar-summary: Add Item description: Add an item to a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddDraftOrderItems' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.addItems("order_123", { items: [ { variant_id: "variant_123", quantity: 1, }, ], }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: addDraftOrderItemsWorkflow x-events: [] /admin/draft-orders/{id}/edit/items/item/{item_id}: post: operationId: PostDraftOrdersIdEditItemsItemItem_id summary: Update Existing Item in Draft Order Edit x-sidebar-summary: Update Item description: Update an existing item in a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: item_id in: path description: The item's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateDraftOrderItem' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.updateItem("order_123", "item_123", { quantity: 2, }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items/item/{item_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "quantity": 0 }' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateDraftOrderItemWorkflow x-events: [] /admin/draft-orders/{id}/edit/items/{action_id}: post: operationId: PostDraftOrdersIdEditItemsAction_id summary: Update New Item in Draft Order Edit x-sidebar-summary: Update New Item description: | Update a new item that was added to a draft order edit by the ID of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: action_id in: path description: The ID of the item's `ITEM_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateDraftOrderItem' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.updateActionItem("order_123", "action_123", { quantity: 2, }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "quantity": 39 }' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateDraftOrderActionItemWorkflow x-events: [] delete: operationId: DeleteDraftOrdersIdEditItemsAction_id summary: Remove Item from Draft Order Edit x-sidebar-summary: Remove Item description: | Remove an order item from a draft order edit by the ID of the item's `ITEM_ADD` or `ITEM_UPDATE` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: action_id in: path description: The ID of the order item's `ITEM_ADD` or `ITEM_UPDATE` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.removeActionItem("order_123", "action_123") .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeDraftOrderActionItemWorkflow x-events: [] /admin/draft-orders/{id}/edit/promotions: post: operationId: PostDraftOrdersIdEditPromotions summary: Add Promotions to Draft Order Edit x-sidebar-summary: Add Promotions description: Add promotions to a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddDraftOrderPromotions' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.addPromotions("order_123", { promo_codes: ["PROMO_CODE_1", "PROMO_CODE_2"], }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/promotions' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "promo_codes": [ "{value}" ] }' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: addDraftOrderPromotionWorkflow x-events: [] delete: operationId: DeleteDraftOrdersIdEditPromotions summary: Remove Promotions from Draft Order Edit x-sidebar-summary: Remove Promotions description: Remove specified promotions from a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.removePromotions("order_123", { promo_codes: ["PROMO_CODE_1", "PROMO_CODE_2"], }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/promotions' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDraftOrderPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeDraftOrderPromotionsWorkflow requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminRemoveDraftOrderPromotions' x-events: [] /admin/draft-orders/{id}/edit/request: post: operationId: PostDraftOrdersIdEditRequest summary: Request Edit on Draft Order x-sidebar-summary: Request Edit description: Change the status of a draft order's edit to be requested. Later, the edit can be confirmed or canceled. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.requestEdit("order_123") .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/request' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: requestDraftOrderEditWorkflow x-events: [] /admin/draft-orders/{id}/edit/shipping-methods: post: operationId: PostDraftOrdersIdEditShippingMethods summary: Add Shipping Method to Draft Order Edit x-sidebar-summary: Add Shipping Method description: Add a shipping method to a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddDraftOrderShippingMethod' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.addShippingMethod("order_123", { shipping_option_id: "shipping_option_123", }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: addDraftOrderShippingMethodsWorkflow x-events: [] /admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}: post: operationId: PostDraftOrdersIdEditShippingMethodsMethodMethod_id summary: Update Existing Shipping Method in Draft Order Edit x-sidebar-summary: Update Shipping Method description: Update an existing shipping method in a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: method_id in: path description: The ID of the shipping method. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateDraftOrderShippingMethod' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.updateShippingMethod("order_123", "sm_123", { shipping_option_id: "so_123", }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateDraftOrderShippingMethodWorkflow x-events: [] delete: operationId: DeleteDraftOrdersIdEditShippingMethodsMethodMethod_id summary: Remove Shipping Method from Draft Order Edit x-sidebar-summary: Remove Shipping Method description: Remove an existing shipping method from a draft order edit. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: method_id in: path description: The shipping method's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.removeShippingMethod( "order_123", "shipping_method_123" ) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeDraftOrderShippingMethodWorkflow x-events: [] /admin/draft-orders/{id}/edit/shipping-methods/{action_id}: post: operationId: PostDraftOrdersIdEditShippingMethodsAction_id summary: Update New Shipping Method in Draft Order Edit x-sidebar-summary: Update New Shipping Method description: | Update a new shipping method that was added to a draft order edit using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateDraftOrderActionShippingMethod' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.updateShippingMethod("order_123", "action_123", { shipping_option_id: "shipping_option_123", }) .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/{action_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateDraftOrderActionShippingMethodWorkflow x-events: [] delete: operationId: DeleteDraftOrdersIdEditShippingMethodsAction_id summary: Remove New Shipping Method from Draft Order x-sidebar-summary: Remove New Shipping Method description: | Remove a shipping method that was added to a draft order edit using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The draft order's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.draftOrder.removeShippingMethod("order_123", "action_123") .then(({ draft_order_preview }) => { console.log(draft_order_preview) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Draft Orders responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeDraftOrderActionShippingMethodWorkflow x-events: [] /admin/exchanges: get: operationId: GetExchanges summary: List Exchanges description: Retrieve a list of exchanges. The exchanges can be filtered by fields such as `id`. The exchanges can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: deleted_at in: query description: Filter by an exchange's deletion date. required: false schema: type: object description: Filter by an exchange's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by an exchange ID. - type: array description: Filter by exchange IDs. items: type: string title: id description: An exchange ID. - name: order_id in: query required: false schema: oneOf: - type: string title: order_id description: Filter by an exchange's order ID. - type: array description: Filter by order IDs that the exchanges belong to. items: type: string title: order_id description: An order's ID. - name: status in: query required: false schema: oneOf: - type: string title: status description: Filter by an exchange's status. - type: array description: Filter by exchange statuses. items: type: string title: status description: An exchange status. - name: created_at in: query description: Filter by the exchange's creation date. required: false schema: type: object description: Filter by the exchange's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the exchange's update date. required: false schema: type: object description: Filter by the exchange's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.list() .then(({ exchanges, count, limit, offset }) => { console.log(exchanges) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/exchanges' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of exchanges. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of exchanges. required: - exchanges properties: exchanges: type: array description: The exchange's exchanges. items: $ref: '#/components/schemas/AdminExchange' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostExchanges summary: Create Exchange description: Create an exchange request. Its changes aren't applied on the order until the exchange is confirmed. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderExchangesReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.create({ order_id: "order_123" }) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}", "metadata": {} }' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginExchangeOrderWorkflow x-events: [] /admin/exchanges/{id}: get: operationId: GetExchangesId summary: Get an Exchange description: Retrieve an exchange by its ID. You can expand the exchange's relations or select the fields that should be returned using query parameters. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.retrieve("exchange_123") .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/exchanges/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/exchanges/{id}/cancel: post: operationId: PostExchangesIdCancel summary: Cancel an Exchange description: Cancel an exchange and its associated return. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostCancelExchangeReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.cancel("exchange_123") .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelOrderExchangeWorkflow x-events: [] /admin/exchanges/{id}/inbound/items: post: operationId: PostExchangesIdInboundItems summary: Add Inbound Items to an Exchange x-sidebary-summary: Add Inbound Items description: Add inbound (or return) items to an exchange. These inbound items will have the action `RETURN_ITEM`. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesReturnRequestItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.addInboundItems("exchange_123", { items: [{ id: "orli_123", quantity: 1 }] }) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderExchangeRequestItemReturnWorkflow x-events: [] /admin/exchanges/{id}/inbound/items/{action_id}: post: operationId: PostExchangesIdInboundItemsAction_id summary: Update an Inbount Item of an Exchange x-sidebar-summary: Update Inbound Item description: | Update an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the return item's `RETURN_ITEM` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesRequestItemsReturnActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.updateInboundItem( "exchange_123", "ordchact_123", { quantity: 1 } ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateRequestItemReturnWorkflow x-events: [] delete: operationId: DeleteExchangesIdInboundItemsAction_id summary: Remove Inbound Item from Exchange x-sidebar-summary: Remove Inbound Item description: | Remove an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the return item's `RETURN_ITEM` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.removeInboundItem( "exchange_123", "ordchact_123", ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemReturnActionWorkflow x-events: [] /admin/exchanges/{id}/inbound/shipping-method: post: operationId: PostExchangesIdInboundShippingMethod summary: Add an Inbound Shipping Method to an Exchange x-sidebar-summary: Add Inbound Shipping description: Add an inbound (or return) shipping method to an exchange. The inbound shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsShippingReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.addInboundShipping("exchange_123", { shipping_option_id: "so_123" }) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createExchangeShippingMethodWorkflow x-events: [] /admin/exchanges/{id}/inbound/shipping-method/{action_id}: post: operationId: PostExchangesIdInboundShippingMethodAction_id summary: Update Inbound Shipping Method of an Exchange x-sidebar-summary: Update Inbound Shipping description: | Update the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesShippingActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.updateInboundShipping( "exchange_123", "ordchact_123", { custom_amount: 10 } ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReturnShippingMethodWorkflow x-events: [] delete: operationId: DeleteExchangesIdInboundShippingMethodAction_id summary: Remove Inbound Shipping Method from Exchange x-sidebar-summary: Remove Inbound Shipping Method description: | Remove the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.deleteInboundShipping( "exchange_123", "ordchact_123", ) .then(({ return: returnData }) => { console.log(returnData) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeReturnShippingMethodWorkflow x-events: [] /admin/exchanges/{id}/outbound/items: post: operationId: PostExchangesIdOutboundItems summary: Add Outbound Items to Exchange description: Add outbound (or new) items to an exchange. These outbound items will have the action `ITEM_ADD`. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesAddItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.addOutboundItems("exchange_123", { items: [{ id: "variant_123", quantity: 1 }] }) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderExchangeAddNewItemWorkflow x-events: [] /admin/exchanges/{id}/outbound/items/{action_id}: post: operationId: PostExchangesIdOutboundItemsAction_id summary: Update Outbound Item of an Exchange x-sidebar-summary: Update Outbound Item description: | Update an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new exchange item's `ITEM_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.updateOutboundItem( "exchange_123", "ordchact_123", { quantity: 1 } ) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateExchangeAddItemWorkflow x-events: [] delete: operationId: DeleteExchangesIdOutboundItemsAction_id summary: Remove Outbound Item from Exchange x-sidebar-summary: Remove Outbound Item description: | Remove an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new exchange item's `ITEM_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.removeOutboundItem( "exchange_123", "ordchact_123", ) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemExchangeActionWorkflow x-events: [] /admin/exchanges/{id}/outbound/shipping-method: post: operationId: PostExchangesIdOutboundShippingMethod summary: Add Outbound Shipping Method to Exchange x-sidebar-summary: Add Outbound Shipping description: Add an outbound shipping method to an exchange. The outbound shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesShippingReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.addOutboundShipping("exchange_123", { shipping_option_id: "so_123" }) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createExchangeShippingMethodWorkflow x-events: [] /admin/exchanges/{id}/outbound/shipping-method/{action_id}: post: operationId: PostExchangesIdOutboundShippingMethodAction_id summary: Update Outbound Shipping Method of Exchange x-sidebar-summary: Update Outbound Shipping description: | Update the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostExchangesShippingActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.updateOutboundShipping( "exchange_123", "ordchact_123", { custom_amount: 10 } ) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateExchangeShippingMethodWorkflow x-events: [] delete: operationId: DeleteExchangesIdOutboundShippingMethodAction_id summary: Remove Outbound Shipping Method from Exchange x-sidebar-summary: Remove Outbound Shipping Method description: | Remove the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.deleteOutboundShipping( "exchange_123", "ordchact_123", ) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}''\ -H ''Authorization: Bearer {access_token}''' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangePreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeExchangeShippingMethodWorkflow x-events: [] /admin/exchanges/{id}/request: post: operationId: PostExchangesIdRequest summary: Confirm an Exchange description: Confirm an exchange request, applying its changes on the associated order. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.request("exchange_123", {}) .then(({ exchange }) => { console.log(exchange) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/exchanges/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeRequestResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmExchangeRequestWorkflow x-events: - name: order.exchange_created payload: |- ```ts { order_id, // The ID of the order exchange_id, // The ID of the exchange } ``` description: Emitted when an exchange is created for an order. deprecated: false delete: operationId: DeleteExchangesIdRequest summary: Cancel Exchange Request description: Cancel a requested exchange. x-authenticated: true parameters: - name: id in: path description: The exchange's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.exchange.cancel("exchange_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/exchanges/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Exchanges responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExchangeDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelBeginOrderExchangeWorkflow x-events: [] /admin/fulfillment-providers: get: operationId: GetFulfillmentProviders summary: List Fulfillment Providers description: Retrieve a list of fulfillment providers. The fulfillment providers can be filtered by fields such as `id`. The fulfillment providers can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a fulfillment provider's ID. - type: array description: Filter by fulfillment provider IDs. items: type: string title: id description: A fulfillment provider ID. - name: is_enabled in: query description: Filter by whether the fulfillment provider is enabled. required: false schema: type: boolean title: is_enabled description: Filter by whether the fulfillment provider is enabled. - name: q in: query description: Search term to filter a fulfillment provider's searchable properties. required: false schema: type: string title: q description: Search term to filter a fulfillment provider's searchable properties. - name: stock_location_id in: query required: false schema: oneOf: - type: string title: stock_location_id description: Filter by associated stock location's ID. - type: array description: Filter by associated stock location IDs. items: type: string title: stock_location_id description: A stock location's ID. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentProvider.list() .then(({ fulfillment_providers, count, limit, offset }) => { console.log(fulfillment_providers) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/fulfillment-providers' \ -H 'Authorization: Bearer {access_token}' tags: - Fulfillment Providers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentProviderListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/fulfillment-providers/{id}/options: get: operationId: GetFulfillmentProvidersIdOptions summary: List Fulfillment Options description: Retrieve the list of fulfillment options of a fulfillment provider. These options may be retrieved from an integrated third-party service. x-authenticated: true parameters: - name: id in: path description: The fulfillment provider's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentProvider.listFulfillmentOptions("fp_123") .then(({ fulfillment_options }) => { console.log(fulfillment_options) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/fulfillment-providers/{id}/options' \ -H 'Authorization: Bearer {access_token}' tags: - Fulfillment Providers responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentProviderOptionsListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/fulfillment-sets/{id}: delete: operationId: DeleteFulfillmentSetsId summary: Delete Fulfillment Set description: Delete a fulfillment set. x-authenticated: true parameters: - name: id in: path description: The fulfillment set's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentSet.delete("fset_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/fulfillment-sets/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Fulfillment Sets responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentSetDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteFulfillmentSetsWorkflow x-events: [] /admin/fulfillment-sets/{id}/service-zones: post: operationId: PostFulfillmentSetsIdServiceZones summary: Add a Service Zone to a Fulfillment Set x-sidebar-summary: Add Service Zone description: Add a service zone to a fulfillment set. x-authenticated: true parameters: - name: id in: path description: The fulfillment set's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The service zone's details. required: - name properties: name: type: string title: name description: The service zone's name. geo_zones: type: array description: The service zone's geo zones. items: oneOf: - type: object description: A country geo zone. required: - metadata - country_code - type properties: metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. type: type: string title: type description: The geo zone's type. default: country - type: object description: A province geo zone. required: - metadata - country_code - type - province_code properties: metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. type: type: string title: type description: The geo zone's type. default: province province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 - type: object description: A city geo zone required: - metadata - country_code - type - province_code - city properties: metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. type: type: string title: type description: The geo zone's type. default: city province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 city: type: string title: city description: The geo zone's city. - type: object description: A ZIP geo zone. required: - metadata - country_code - type - province_code - city - postal_expression properties: metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. type: type: string title: type description: The geo zone's type. default: zip province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 city: type: string title: city description: The geo zone's city. postal_expression: type: object description: The geo zone's postal expression or ZIP code. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentSet.createServiceZone("fset_123", { name: "Europe Service Zone", geo_zones: [{ type: "country", country_code: "us" }] }) .then(({ fulfillment_set }) => { console.log(fulfillment_set) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Layla" }' tags: - Fulfillment Sets responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentSetResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createServiceZonesWorkflow x-events: [] /admin/fulfillment-sets/{id}/service-zones/{zone_id}: get: operationId: GetFulfillmentSetsIdServiceZonesZone_id summary: Get a Service Zone in a Fulfillment Set x-sidebar-summary: Get a Service Zone description: Retrieve a service zone that belongs to a fulfillment set. be paginated. x-authenticated: true parameters: - name: id in: path description: The fulfillment set's ID. required: true schema: type: string - name: zone_id in: path description: The service zone's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentSet.retrieveServiceZone( "fset_123", "serzo_123" ) .then(({ service_zone }) => { console.log(service_zone) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Fulfillment Sets responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminServiceZoneResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostFulfillmentSetsIdServiceZonesZone_id summary: Update the Service Zone of a Fulfillment Set x-sidebar-summary: Update Service Zone description: Update the details of a service zone in a fulfillment set. x-authenticated: true parameters: - name: id in: path description: The fulfillment set's ID. required: true schema: type: string - name: zone_id in: path description: The service zone's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The service zone's details. properties: name: type: string title: name description: The service zone's name. geo_zones: type: array description: The service zone's associated geo zones. items: oneOf: - type: object description: A country geo zone. required: - type - metadata - country_code properties: type: type: string title: type description: The geo zone's type. default: country metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. id: type: string title: id description: The ID of an existing geo zone. - type: object description: A province geo zone. required: - type - metadata - country_code - province_code properties: type: type: string title: type description: The geo zone's type. default: province metadata: type: object description: The geo zone's metadata. country_code: type: string title: country_code description: The geo zone's country code. province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 id: type: string title: id description: The ID of an existing geo zone. - type: object description: A city geo zone required: - type - metadata - city - country_code - province_code properties: type: type: string title: type description: The geo zone's type. default: city metadata: type: object description: The geo zone's metadata. city: type: string title: city description: The geo zone's city. country_code: type: string title: country_code description: The geo zone's country code. province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 id: type: string title: id description: The ID of an existing geo zone. - type: object description: A ZIP geo zone. required: - type - metadata - city - country_code - province_code - postal_expression properties: type: type: string title: type description: The geo zone's type. default: zip metadata: type: object description: The geo zone's metadata. city: type: string title: city description: The geo zone's city. country_code: type: string title: country_code description: The geo zone's country code. province_code: type: string title: province_code description: The geo zone's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_expression: type: object description: The geo zone's postal expression or ZIP code. id: type: string title: id description: The ID of an existing geo zone. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentSet.updateServiceZone( "fset_123", "serzo_123", { name: "Europe Service Zone", } ) .then(({ fulfillment_set }) => { console.log(fulfillment_set) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Elvis" }' tags: - Fulfillment Sets responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentSetResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateServiceZonesWorkflow x-events: [] delete: operationId: DeleteFulfillmentSetsIdServiceZonesZone_id summary: Remove a Service Zone from Fulfillment Set x-sidebar-summary: Remove Service Zone description: Remove a service zone that belongs to a fulfillment set. x-authenticated: true parameters: - name: id in: path description: The fulfillment set's ID. required: true schema: type: string - name: zone_id in: path description: The service zone's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillmentSet.deleteServiceZone( "fset_123", "serzo_123", ) .then(({ deleted, parent: fulfillmentSet }) => { console.log(deleted, fulfillmentSet) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Fulfillment Sets responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminServiceZoneDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteServiceZonesWorkflow x-events: [] /admin/fulfillments: post: operationId: PostFulfillments summary: Create Fulfillment description: Create a fulfillment for an order, return, exchange, and more. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateFulfillment' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillment.create({ location_id: "sloc_123", provider_id: "my_fulfillment", delivery_address: { country_code: "us" }, items: [ { title: "Shirt", sku: "SHIRT", quantity: 1, barcode: "123" } ], labels: [], order: {}, order_id: "order_123" }) .then(({ fulfillment }) => { console.log(fulfillment) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/fulfillments' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "location_id": "{value}", "provider_id": "{value}", "delivery_address": { "first_name": "{value}", "last_name": "{value}", "phone": "{value}", "company": "{value}", "address_1": "{value}", "address_2": "{value}", "city": "{value}", "country_code": "{value}", "province": "us-ca", "postal_code": "{value}", "metadata": {} }, "items": [ { "title": "{value}", "sku": "{value}", "quantity": 1667318922870784, "barcode": "{value}", "line_item_id": "{value}", "inventory_item_id": "{value}" } ], "labels": [ { "tracking_number": "{value}", "tracking_url": "{value}", "label_url": "{value}" } ], "order": {}, "order_id": "{value}", "shipping_option_id": "{value}", "data": {}, "packed_at": "2024-11-12T18:37:37.122Z", "shipped_at": "2025-04-13T12:39:42.432Z", "delivered_at": "2025-01-29T19:05:57.056Z", "canceled_at": "2025-02-16T02:12:11.763Z", "metadata": {} }' tags: - Fulfillments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createFulfillmentWorkflow x-events: [] /admin/fulfillments/{id}/cancel: post: operationId: PostFulfillmentsIdCancel summary: Cancel a Fulfillment description: | Cancel a fulfillment. The fulfillment can't be shipped or delivered. To cancel the fulfillment, the `cancelFulfillment` method of the associated fulfillment provider is used. x-authenticated: true parameters: - name: id in: path description: The fulfillment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillment.cancel("ful_123") .then(({ fulfillment }) => { console.log(fulfillment) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/fulfillments/{id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Fulfillments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelFulfillmentWorkflow x-events: [] /admin/fulfillments/{id}/shipment: post: operationId: PostFulfillmentsIdShipment summary: Create a Shipment for a Fulfillment x-sidebar-summary: Create Shipment description: Create a shipment for a fulfillment. The fulfillment must not be shipped or canceled. x-authenticated: true parameters: - name: id in: path description: The fulfillment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateShipment' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.fulfillment.createShipment("ful_123", { labels: [ { tracking_number: "123", tracking_url: "example.com", label_url: "example.com" } ] }) .then(({ fulfillment }) => { console.log(fulfillment) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/fulfillments/{id}/shipment' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "labels": [ { "tracking_number": "{value}", "tracking_url": "{value}", "label_url": "{value}" } ] }' tags: - Fulfillments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFulfillmentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createShipmentWorkflow x-events: [] /admin/gift-cards: get: operationId: GetGiftCards summary: List Gift Cards description: Retrieve a list of gift cards. The gift cards can be filtered by fields such as `id`. The gift cards can also be sorted or paginated. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: query required: false schema: oneOf: - type: string title: id description: The gift card's ID. - type: array description: The gift card's ID. items: type: string title: id description: The id's ID. - name: customer_id in: query required: false schema: oneOf: - type: string title: customer_id description: Filter by a customer ID to retrieve their gift cards. - type: array description: Filter by customer IDs to retrieve their gift cards. items: type: string title: customer_id description: A customer ID. - name: created_at in: query description: Filter by a gift card's creation date. required: false schema: type: object description: Filter by a gift card's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a gift card's update date. required: false schema: type: object description: Filter by a gift card's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' - name: fields in: query description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/gift-cards' \ -H 'Authorization: Bearer {access_token}' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardsResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). post: operationId: PostGiftCards summary: Create Gift Card description: Create a gift card. x-authenticated: true x-ignoreCleanup: true parameters: - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateGiftCardParams' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/gift-cards' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "code": "{value}", "value": 19, "currency_code": "bwp", "expires_at": "2025-07-20T15:47:23.951Z", "reference_id": "{value}", "reference": "{value}", "line_item_id": "{value}", "customer_id": "{value}", "metadata": {} }' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/gift-cards/{id}: get: operationId: GetGiftCardsId summary: Get a Gift Card description: Retrieve a gift card by its ID. You can expand the gift card's relations or select the fields that should be returned. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The gift card's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/gift-cards/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). post: operationId: PostGiftCardsId summary: Update a Gift Card description: Update a gift card's details. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The gift card's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateGiftCardParams' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/gift-cards/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/gift-cards/{id}/redeem: post: operationId: PostGiftCardsIdRedeem summary: Redeem a Gift Card description: Redeem a gift card and add it to the customer's store credit account. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The gift card's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminRedeemGiftCard' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/gift-cards/{id}/redeem' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "customer_id": "{value}" }' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/gift-cards/{id}/transfer: post: operationId: PostGiftCardsIdTransfer summary: Transfer Gift Card description: Transfer a gift card to another customer. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The gift card's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminTransferGiftCard' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/gift-cards/{id}/transfer' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "customer_id": "{value}" }' tags: - Gift Cards responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGiftCardResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/inventory-items: get: operationId: GetInventoryItems summary: List Inventory Items description: Retrieve a list of inventory items. The inventory items can be filtered by fields such as `id`. The inventory items can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: The inventory item's q. required: false schema: type: string title: q description: The inventory item's q. - name: id in: query required: false schema: oneOf: - type: string title: id description: The inventory item's ID. - type: array description: The inventory item's ID. items: type: string title: id description: The id's ID. - name: sku in: query required: false schema: oneOf: - type: string title: sku description: The inventory item's sku. - type: array description: The inventory item's sku. items: type: string title: sku description: The sku's details. - name: origin_country in: query required: false schema: oneOf: - type: string title: origin_country description: The inventory item's origin country. - type: array description: The inventory item's origin country. items: type: string title: origin_country description: The origin country's details. - name: mid_code in: query required: false schema: oneOf: - type: string title: mid_code description: The inventory item's mid code. - type: array description: The inventory item's mid code. items: type: string title: mid_code description: The mid code's details. - name: hs_code in: query required: false schema: oneOf: - type: string title: hs_code description: The inventory item's hs code. - type: array description: The inventory item's hs code. items: type: string title: hs_code description: The hs code's details. - name: material in: query required: false schema: oneOf: - type: string title: material description: The inventory item's material. - type: array description: The inventory item's material. items: type: string title: material description: The material's details. - name: requires_shipping in: query description: The inventory item's requires shipping. required: false schema: type: boolean title: requires_shipping description: The inventory item's requires shipping. - name: weight in: query description: Filter the inventory item's weight. required: false schema: description: Filter the inventory item's weight. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: length in: query description: Filter the inventory item's length. required: false schema: description: Filter the inventory item's length. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: height in: query description: Filter by the inventory item's height. required: false schema: description: Filter by the inventory item's height. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: width in: query description: Filter by the inventory item's width. required: false schema: description: Filter by the inventory item's width. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: location_levels in: query description: Filter by the inventory item's associated location IDs. required: false schema: type: object description: Filter by the inventory item's associated location IDs. properties: location_id: oneOf: - type: string title: location_id description: The associated location's ID. - type: array description: The location IDs to retrieve inventory items associated with them. items: type: string title: location_id description: A location's ID. required: - location_id - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.list() .then(({ inventory_items, count, limit, offset }) => { console.log(inventory_items) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/inventory-items' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of inventory items. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of inventory items. required: - inventory_items properties: inventory_items: type: array description: The inventory item's inventory items. items: $ref: '#/components/schemas/AdminInventoryItem' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostInventoryItems summary: Create Inventory Item description: Create an inventory item. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateInventoryItem' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.create({ sku: "SHIRT" }) .then(({ inventory_item }) => { console.log(inventory_item) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "sku": "{value}", "hs_code": "{value}", "weight": 2857134683324416, "length": 2322256963305472, "height": 8391220613087232, "width": 1297863250280448, "origin_country": "{value}", "mid_code": "{value}", "material": "{value}", "title": "{value}", "description": "{value}", "thumbnail": "{value}", "metadata": {} }' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInventoryItemResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createInventoryItemsWorkflow x-events: [] /admin/inventory-items/location-levels/batch: post: operationId: PostInventoryItemsLocationLevelsBatch summary: Manage Inventory Levels description: Manage inventory levels to create, update, or delete them. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminBatchInventoryItemsLocationLevels' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.batchInventoryItemsLocationLevels({ create: [{ inventory_item_id: "iitem_123", location_id: "sloc_123", stocked_quantity: 10 }], delete: ["ilvl_123"] }) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items/location-levels/batch' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "create": [ { "location_id": "sloc_123", "inventory_item_id": "iitem_123", "stocked_quantity": 100, "incoming_quantity": 50 } ], "update": [ { "location_id": "sloc_456", "inventory_item_id": "iitem_456", "stocked_quantity": 200, "incoming_quantity": 75 } ], "delete": [ "iilev_123" ] }' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminBatchInventoryItemsLocationLevelsResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchInventoryItemLevelsWorkflow x-events: [] /admin/inventory-items/{id}: get: operationId: GetInventoryItemsId summary: Get a Inventory Item description: Retrieve a inventory item by its ID. You can expand the inventory item's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.retrieve("iitem_123") .then(({ inventory_item }) => { console.log(inventory_item) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/inventory-items/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInventoryItemResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostInventoryItemsId summary: Update an Inventory Item description: Update an inventory item's details. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the inventory item. properties: sku: type: string title: sku description: The inventory item's SKU. hs_code: type: string title: hs_code description: The inventory item's HS code. weight: type: number title: weight description: The inventory item's weight. length: type: number title: length description: The inventory item's length. height: type: number title: height description: The inventory item's height. width: type: number title: width description: The inventory item's width. origin_country: type: string title: origin_country description: The inventory item's origin country. mid_code: type: string title: mid_code description: The inventory item's MID code. material: type: string title: material description: The inventory item's material. title: type: string title: title description: The inventory item's title. description: type: string title: description description: The inventory item's description. requires_shipping: type: boolean title: requires_shipping description: Whether the inventory item requires shipping. thumbnail: type: string title: thumbnail description: The URL of an image to be used as the inventory item's thumbnail. You can use the Upload API routes to upload an image and get its URL. metadata: type: object description: The inventory item's metadata. Can be custom data in key-value pairs. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.update("iitem_123", { sku: "SHIRT" }) .then(({ inventory_item }) => { console.log(inventory_item) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "sku": "{value}", "hs_code": "{value}", "weight": 8979922215239680, "length": 667491233693696, "height": 6328111551479808, "width": 7175104570064896, "origin_country": "{value}", "mid_code": "{value}", "material": "{value}", "title": "{value}", "description": "{value}", "thumbnail": "{value}", "metadata": {} }' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInventoryItemResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateInventoryItemsWorkflow x-events: [] delete: operationId: DeleteInventoryItemsId summary: Delete Inventory Item description: Delete an inventory item. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.delete("iitem_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/inventory-items/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The inventory item's ID. object: type: string title: object description: The name of the deleted object. default: inventory_item deleted: type: boolean title: deleted description: Whether the inventory item was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteInventoryItemWorkflow x-events: [] /admin/inventory-items/{id}/location-levels: get: operationId: GetInventoryItemsIdLocationLevels summary: List Inventory Levels description: Retrieve a list of inventory levels associated with an inventory item. The inventory levels can be filtered by fields like `location_id`. The inventory levels can also be paginated. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.listLevels("iitem_123") .then(({ inventory_levels, count, limit, offset }) => { console.log(inventory_levels) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/inventory-items/{id}/location-levels' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of inventory levels. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of inventory levels. required: - inventory_levels properties: inventory_levels: type: array description: The inventory item's inventory levels. items: $ref: '#/components/schemas/InventoryLevel' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostInventoryItemsIdLocationLevels summary: Create Inventory Level for Inventory Item x-sidebar-summary: Create Inventory Level description: Create an inventory level for an inventory item. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The inventory level's details. required: - location_id properties: location_id: type: string title: location_id description: The ID of the associated location. stocked_quantity: type: number title: stocked_quantity description: The inventory level's stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The inventory level's incoming quantity. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "location_id": "{value}" }' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInventoryItemResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createInventoryLevelsWorkflow x-events: [] /admin/inventory-items/{id}/location-levels/batch: post: operationId: PostInventoryItemsIdLocationLevelsBatch summary: Manage Inventory Levels of Inventory Item x-sidebar-summary: Manage Inventory Levels description: Manage the inventory levels of an inventory item to create or delete them. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminBatchInventoryItemLocationsLevel' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.batchInventoryItemLocationLevels("iitem_123", { create: [{ location_id: "sloc_123", stocked_quantity: 10 }], delete: ["ilvl_123"] }) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchInventoryItemLevelsWorkflow x-events: [] /admin/inventory-items/{id}/location-levels/{location_id}: post: operationId: PostInventoryItemsIdLocationLevelsLocation_id summary: Update an Inventory Level of an Inventory Item x-sidebar-summary: Update Inventory Level description: Updates the details of an inventory item's inventory level using its associated location ID. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: location_id in: path description: The ID of the location associated with the inventory level. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the inventory level. properties: stocked_quantity: type: number title: stocked_quantity description: The inventory level's stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The inventory level's incoming quantity. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.updateLevel( "iitem_123", "sloc_123", { stocked_quantity: 10 } ) .then(({ inventory_item }) => { console.log(inventory_item) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInventoryItemResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateInventoryLevelsWorkflow x-events: [] delete: operationId: DeleteInventoryItemsIdLocationLevelsLocation_id summary: Remove Inventory Level of Inventory Item x-sidebar-summary: Remove Inventory Level description: | Remove the inventory level of an inventory item. If the inventory level has reserved quantity greater than `0`, an error is thrown. x-authenticated: true parameters: - name: id in: path description: The inventory item's ID. required: true schema: type: string - name: location_id in: path description: The inventory item's location id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.inventoryItem.deleteLevel( "iitem_123", "sloc_123", ) .then(({ deleted, parent: inventoryItem }) => { console.log(deleted, inventoryItem) }) - lang: Shell label: cURL source: 'curl -X DELETE ''{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}'' \ -H ''Authorization: Bearer {access_token}''' tags: - Inventory Items responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The inventory item's ID. object: type: string title: object description: The name of the deleted object. deleted: type: boolean title: deleted description: Whether the Inventory Item was deleted. - type: object description: The deletion's details. properties: parent: $ref: '#/components/schemas/AdminInventoryItem' description: The deletion's details. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteInventoryLevelsWorkflow x-events: [] /admin/invites: get: operationId: GetInvites summary: List Invites description: Retrieve a list of invites. The invites can be filtered by fields such as `id`. The invites can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to apply on an invite's searchable properties. required: false schema: type: string title: q description: Search term to apply on an invite's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by an invite's ID. - type: array description: Filter by invite IDs. items: type: string title: id description: An invite's ID. - name: email in: query required: false schema: oneOf: - type: string title: email description: Filter by an invite's email. format: email - type: array description: Filter by invite emails. items: type: string title: email description: An email. format: email - name: created_at in: query description: Filter by the invite's creation date. required: false schema: type: object description: Filter by the invite's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the invite's update date. required: false schema: type: object description: Filter by the invite's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the invite's deletion date. required: false schema: type: object description: Filter by the invite's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.invite.list() .then(({ invites, count, limit, offset }) => { console.log(invites) }) - lang: Shell label: cURL source: curl '{backend_url}/admin/invites' tags: - Invites responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of invites. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items retrieved. offset: type: number title: offset description: The number of items skipped before the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of invites. required: - invites properties: invites: type: array description: The list of invites. items: $ref: '#/components/schemas/AdminInvite' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' security: - api_token: [] - cookie_auth: [] - jwt_token: [] post: operationId: PostInvites summary: Create Invite description: Create a invite. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' requestBody: content: application/json: schema: type: object description: The invite's details. required: - email properties: email: type: string title: email description: The email of the user to invite. format: email metadata: type: object description: The invite's metadata. Can be custom data in key-value pairs. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.invite.create({ email: "user@gmail.com", }) .then(({ invite }) => { console.log(invite) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/invites' \ -H 'Content-Type: application/json' \ --data-raw '{ "email": "Whitney_Schultz@gmail.com" }' tags: - Invites responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInviteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createInvitesWorkflow security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-events: - name: invite.created payload: |- ```ts [{ id, // The ID of the invite }] ``` description: |- Emitted when invites are created. You can listen to this event to send an email to the invited users, for example. deprecated: false /admin/invites/accept: post: operationId: PostInvitesAccept summary: Accept Invite description: | Accept an invite and create a new user. Since the user isn't created yet, the JWT token used in the authorization header is retrieved from the `/auth/user/emailpass/register` API route (or a provider other than `emailpass`). The user can then authenticate using the `/auth/user/emailpass` API route. x-authenticated: true requestBody: content: application/json: schema: type: object description: The details of the user to be created. properties: email: type: string title: email description: The user's email. format: email first_name: type: string title: first_name description: The user's first name. last_name: type: string title: last_name description: The user's last name. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) await sdk.auth.register("user", "emailpass", { email: "user@gmail.com", password: "supersecret" }) // all subsequent requests will use the token in the header const { user } = await sdk.admin.invite.accept( { email: "user@gmail.com", first_name: "John", last_name: "Smith", invite_token: "12345..." }, ) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/invites/accept' \ -H 'Content-Type: application/json' \ --data-raw '{ "email": "Lila_Zemlak@hotmail.com", "first_name": "{value}", "last_name": "{value}" }' tags: - Invites responses: '200': description: OK content: application/json: schema: oneOf: - type: object description: The created user's details. required: - user properties: user: $ref: '#/components/schemas/AdminUser' - type: object description: An error's details. required: - message properties: message: type: string title: message description: The error message. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: acceptInviteWorkflow security: - cookie_auth: [] - jwt_token: [] x-events: - name: user.created payload: |- ```ts [{ id, // The ID of the user }] ``` description: Emitted when users are created. deprecated: false - name: invite.accepted payload: |- ```ts { id, // The ID of the invite } ``` description: Emitted when an invite is accepted. deprecated: false /admin/invites/{id}: get: operationId: GetInvitesId summary: Get an Invite description: Retrieve an invite by its ID. You can expand the invite's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The invite's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.invite.retrieve("invite_123") .then(({ invite }) => { console.log(invite) }) - lang: Shell label: cURL source: curl '{backend_url}/admin/invites/{id}' tags: - Invites responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInviteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' security: - api_token: [] - cookie_auth: [] - jwt_token: [] delete: operationId: DeleteInvitesId summary: Delete Invite description: Delete an invite. x-authenticated: true parameters: - name: id in: path description: The invite's ID. required: true schema: type: string x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.invite.delete("invite_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: curl -X DELETE '{backend_url}/admin/invites/{id}' tags: - Invites responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The invite's ID. object: type: string title: object description: The name of the deleted object. default: invite deleted: type: boolean title: deleted description: Whether the invite was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteInvitesWorkflow security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-events: - name: invite.deleted payload: |- ```ts [{ id, // The ID of the invite }] ``` description: Emitted when invites are deleted. deprecated: false /admin/invites/{id}/resend: post: operationId: PostInvitesIdResend summary: Refresh Invite Token description: Refresh the token of an invite. x-authenticated: true parameters: - name: id in: path description: The invite's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.invite.resend("invite_123") .then(({ invite }) => { console.log(invite) }) - lang: Shell label: cURL source: curl -X POST '{backend_url}/admin/invites/{id}/resend' tags: - Invites responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminInviteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: refreshInviteTokensWorkflow security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-events: - name: invite.resent payload: |- ```ts [{ id, // The ID of the invite }] ``` description: |- Emitted when invites should be resent because their token was refreshed. You can listen to this event to send an email to the invited users, for example. deprecated: false /admin/notifications: get: operationId: GetNotifications summary: List Notifications description: Retrieve a list of notifications. The notifications can be filtered by fields such as `id`. The notifications can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to apply on the notification's searchable properties. required: false schema: type: string title: q description: Search term to apply on the notification's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a notification ID. - type: array description: Filter by notification IDs. items: type: string title: id description: A notification ID. - name: channel in: query required: false schema: oneOf: - type: string title: channel description: Filter by a notification channel. example: email - type: array description: Filter by notification channels. items: type: string title: channel description: A notification channel. example: email - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.notification.list() .then(({ notifications, count, limit, offset }) => { console.log(notifications) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/notifications' \ -H 'Authorization: Bearer {access_token}' tags: - Notifications responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminNotificationListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/notifications/{id}: get: operationId: GetNotificationsId summary: Get a Notification description: Retrieve a notification by its ID. You can expand the notification's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The notification's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.notification.retrieve("notif_123") .then(({ notification }) => { console.log(notification) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/notifications/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Notifications responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminNotificationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/order-edits: post: operationId: PostOrderEdits summary: Create Order Edit description: Create an order edit. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.initiateRequest({ order_id: "order_123" }) .then(({ order_change }) => { console.log(order_change) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}", "metadata": {} }' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginOrderEditOrderWorkflow x-events: [] /admin/order-edits/{id}: delete: operationId: DeleteOrderEditsId summary: Cancel Order Edit description: Cancel a requested order edit. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.cancelRequest("ordch_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/order-edits/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The order edit's ID. object: type: string title: object description: The name of the deleted object. default: order-edit deleted: type: boolean title: deleted description: Whether the order edit was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelBeginOrderEditWorkflow x-events: - name: order-edit.canceled payload: |- ```ts { order_id, // The ID of the order actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order } ``` description: Emitted when an order edit request is canceled. deprecated: false version: 2.8.0 /admin/order-edits/{id}/confirm: post: operationId: PostOrderEditsIdConfirm summary: Confirm Order Edit description: Confirm an order edit request and apply the changes on the order. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.confirm("ordch_123") .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/confirm' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmOrderEditRequestWorkflow x-events: - name: order-edit.confirmed payload: |- ```ts { order_id, // The ID of the order actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order } ``` description: Emitted when an order edit request is confirmed. deprecated: false version: 2.8.0 /admin/order-edits/{id}/items: post: operationId: PostOrderEditsIdItems summary: Add Items to Order Edit x-sidebar-summary: Add Items description: Add new items to an order edit. These items will have the action `ITEM_ADD`. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsAddItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.addItems("ordch_123", { items: [ { variant_id: "variant_123", quantity: 1 } ] }) .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/items' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderEditAddNewItemWorkflow x-events: [] /admin/order-edits/{id}/items/item/{item_id}: post: operationId: PostOrderEditsIdItemsItemItem_id summary: Update Order Item Quantity of Order Edit x-sidebar-summary: Update Item Quantity description: Update an existing order item's quantity of an order edit. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string - name: item_id in: path description: The order edit's item id. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsUpdateItemQuantityReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.updateOriginalItem( "ordch_123", "orli_123", { quantity: 1 } ) .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/items/item/{item_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "quantity": 7564330046324736 }' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: orderEditUpdateItemQuantityWorkflow x-events: [] /admin/order-edits/{id}/items/{action_id}: post: operationId: PostOrderEditsIdItemsAction_id summary: Update an Item in an Order Edit x-sidebar-summary: Update Item description: | Update an added item in the order edit by the ID of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new item's `ITEM_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.updateAddedItem( "ordch_123", "orli_123", { quantity: 1 } ) .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateOrderEditAddItemWorkflow x-events: [] delete: operationId: DeleteOrderEditsIdItemsAction_id summary: Remove Item from Order Edit x-sidebar-summary: Remove Item description: | Remove an added item in the order edit by the ID of the item's `ITEM_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string - name: action_id in: path description: The ID of the new item's `ITEM_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.removeAddedItem( "ordch_123", "orli_123", ) .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/order-edits/{id}/items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemOrderEditActionWorkflow x-events: [] /admin/order-edits/{id}/request: post: operationId: PostOrderEditsIdRequest summary: Request Order Edit description: Change the status of an active order edit to requested. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.orderEdit.request("ordch_123") .then(({ order_preview }) => { console.log(order_preview) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: requestOrderEditRequestWorkflow x-events: - name: order-edit.requested payload: |- ```ts { order_id, // The ID of the order actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order } ``` description: Emitted when an order edit is requested. deprecated: false version: 2.8.0 /admin/order-edits/{id}/shipping-method: post: operationId: PostOrderEditsIdShippingMethod summary: Add Shipping Method to Order Edit x-sidebar-summary: Add Shipping Method description: Add a shipping method to an exchange. The shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsShippingReqSchema' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderEditShippingMethodWorkflow x-events: [] /admin/order-edits/{id}/shipping-method/{action_id}: post: operationId: PostOrderEditsIdShippingMethodAction_id summary: Update Shipping Method of an Order Edit x-sidebar-summary: Update Shipping Method description: | Update a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostOrderEditsShippingActionReqSchema' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateOrderEditShippingMethodWorkflow x-events: [] delete: operationId: DeleteOrderEditsIdShippingMethodAction_id summary: Remove Shipping Method from Order Edit x-sidebar-summary: Remove Shipping Method description: | Remove a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action. Every shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The order edit's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Order Edits responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderEditPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeOrderEditShippingMethodWorkflow x-events: [] /admin/orders: get: operationId: GetOrders summary: List Orders description: Retrieve a list of orders. The orders can be filtered by fields such as `id`. The orders can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by an order ID. - type: array description: Filter by order IDs. items: type: string title: id description: An order's ID. - name: status in: query required: false schema: oneOf: - type: string title: status description: Filter by the order's status. - type: array description: Filter by order statuses. items: type: string title: status description: An order's status. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: sales_channel_id in: query description: Filter by sales channel IDs to retrieve the orders associated with them. required: false schema: type: array description: Filter by sales channel IDs to retrieve the orders associated with them. items: type: string title: sales_channel_id description: A sales channel's ID. - name: region_id in: query description: Filter by region IDs to retrieve their associated orders. required: false schema: oneOf: - type: string title: region_id description: The order's region id. - type: array description: The order's region id. items: type: string title: region_id description: The region id's details. - name: q in: query description: Search term to filter the order's searchable properties. required: false schema: type: string title: q description: Search term to filter the order's searchable properties. - name: created_at in: query description: Filter by the order's creation date. required: false schema: type: object description: Filter by the order's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the order's update date. required: false schema: type: object description: Filter by the order's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: customer_id in: query required: false schema: oneOf: - type: string title: customer_id description: The order's customer id. - type: array description: The order's customer id. items: type: string title: customer_id description: The customer id's details. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.list() .then(({ orders, count, limit, offset }) => { console.log(orders) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/orders' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of orders required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before the returned items. count: type: number title: count description: The total count of items. - type: object description: The paginated list of orders. required: - orders properties: orders: type: array description: The list of orders. items: $ref: '#/components/schemas/AdminOrder' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: getOrdersListWorkflow x-events: [] /admin/orders/{id}: get: operationId: GetOrdersId summary: Get an Order description: Retrieve an order by its ID. You can expand the order's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: id in: query required: false schema: oneOf: - type: string title: id description: The order's ID. - type: array description: The order's ID. items: type: string title: id description: The id's ID. - name: status in: query required: false schema: oneOf: - type: string title: status description: The order's status. - type: array description: The order's status. items: type: string title: status description: The status's details. - name: version in: query description: The order's version. required: false schema: type: number title: version description: The order's version. - name: created_at in: query required: false schema: {} - name: updated_at in: query required: false schema: {} - name: deleted_at in: query required: false schema: {} security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.retrieve("order_123") .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/orders/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: getOrderDetailWorkflow x-events: [] post: operationId: PostOrdersId summary: Update Order description: Update an order's details. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateOrder' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.update( "order_123", { email: "new_email@example.com", shipping_address: { first_name: "John", last_name: "Doe", address_1: "123 Main St", } } ) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateOrderWorkflow x-events: - name: order.updated payload: |- ```ts { id, // The ID of the order } ``` description: |- Emitted when the details of an order or draft order is updated. This doesn't include updates made by an edit. deprecated: false /admin/orders/{id}/archive: post: operationId: PostOrdersIdArchive summary: Archive an Order description: Change the status of an order to archived. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/archive' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}" }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: archiveOrderWorkflow x-events: - name: order.archived payload: |- ```ts [{ id, // The ID of the order }] ``` description: Emitted when an order is archived. deprecated: false /admin/orders/{id}/cancel: post: operationId: PostOrdersIdCancel summary: Cancel Order description: | Cancel an order. The cancelation fails if: - The order has captured payments. - The order has refund payments. - The order has fulfillments that aren't canceled. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.cancel("order_123") .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelOrderWorkflow x-events: - name: order.canceled payload: |- ```ts { id, // The ID of the order } ``` description: Emitted when an order is canceld. deprecated: false /admin/orders/{id}/changes: get: operationId: GetOrdersIdChanges summary: List Changes on an Order x-sidebar-summary: List Changes description: | Retrieve a list of changes made on an order, including returns, exchanges, etc... The changes can be filtered by fields like FILTER FIELDS. The changes can also be paginated. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.listChanges("order_123") .then(({ order_changes }) => { console.log(order_changes) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/orders/{id}/changes' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderChangesResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/orders/{id}/complete: post: operationId: PostOrdersIdComplete summary: Complete Order description: Mark an order as completed. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/complete' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}" }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: completeOrderWorkflow x-events: - name: order.completed payload: |- ```ts [{ id, // The ID of the order }] ``` description: Emitted when orders are completed. deprecated: false /admin/orders/{id}/credit-lines: post: operationId: PostOrdersIdCreditLines summary: Create Credit Line for Order x-sidebar-summary: Create Credit Line description: Create a credit line for an order. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateOrderCreditLines' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.createCreditLine( "order_123", { amount: 100, reference: "order", reference_id: "order_123", } ) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/credit-lines' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "amount": 32, "reference": "{value}", "reference_id": "{value}" }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderCreditLinesWorkflow x-events: [] /admin/orders/{id}/fulfillments: post: operationId: PostOrdersIdFulfillments summary: Create an Order Fulfillment x-sidebar-summary: Create Fulfillment description: Create a fulfillment for an order. The creation fails if the order is canceled. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The fulfillment's details. required: - items - location_id - metadata properties: items: type: array description: The items to fulfill. items: type: object description: An item's details. required: - id - quantity properties: id: type: string title: id description: The item's ID. quantity: type: number title: quantity description: The item's quantity to fulfill. location_id: type: string title: location_id description: The ID of the location to fulfill the items from. If not provided, the location associated with the shipping option of the order's shipping method is used. no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the created fulfillment. metadata: type: object description: The order's metadata. Can hold custom key-value pairs. - type: object description: The fulfillment's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The fulfillment's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.createFulfillment("order_123", { items: [ { id: "orli_123", quantity: 1 } ] }) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/fulfillments' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "items": [ { "id": "id_YePfQ6PBCBKvmYyreUt2", "quantity": 6623610359775232 } ], "location_id": "{value}", "metadata": {} }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderFulfillmentWorkflow x-events: - name: order.fulfillment_created payload: |- ```ts { order_id, // The ID of the order fulfillment_id, // The ID of the fulfillment no_notification, // (boolean) Whether to notify the customer } ``` description: Emitted when a fulfillment is created for an order. deprecated: false /admin/orders/{id}/fulfillments/{fulfillment_id}/cancel: post: operationId: PostOrdersIdFulfillmentsFulfillment_idCancel summary: Cancel Fulfillment description: Cancel an order's fulfillment. The fulfillment can't be canceled if it's shipped. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fulfillment_id in: path description: The order's fulfillment id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The cancelation details. properties: no_notification: type: boolean title: no_notification description: Whether the customer should receive a notification about this change. - type: object description: The cancelation details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The cancelation details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.cancelFulfillment( "order_123", "ful_123", { no_notification: false } ) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelOrderFulfillmentWorkflow x-events: - name: order.fulfillment_canceled payload: |- ```ts { order_id, // The ID of the order fulfillment_id, // The ID of the fulfillment no_notification, // (boolean) Whether to notify the customer } ``` description: Emitted when an order's fulfillment is canceled. deprecated: false /admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered: post: operationId: PostOrdersIdFulfillmentsFulfillment_idMarkAsDelivered summary: Mark a Fulfillment as Delivered. x-sidebar-summary: Mark Delivered description: Mark an order's fulfillment as delivered. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fulfillment_id in: path description: The fulfillment's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.markAsDelivered( "order_123", "ful_123", ) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: markOrderFulfillmentAsDeliveredWorkflow x-events: - name: delivery.created payload: |- ```ts { id, // the ID of the fulfillment } ``` description: Emitted when a fulfillment is marked as delivered. deprecated: false /admin/orders/{id}/fulfillments/{fulfillment_id}/shipments: post: operationId: PostOrdersIdFulfillmentsFulfillment_idShipments summary: Create Shipment for an Order's Fulfillment x-sidebar-summary: Create Shipment description: Create a shipment for an order's fulfillment. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fulfillment_id in: path description: The fulfillment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The shipment's details. required: - items - metadata properties: items: type: array description: The items to create shipment for. items: type: object description: The details of the item to create shipment for. required: - id - quantity properties: id: type: string title: id description: The item's ID. quantity: type: number title: quantity description: The item's quantity to ship. labels: type: array description: The labels to create for the shipment. items: type: object description: The label's labels. required: - tracking_number - tracking_url - label_url properties: tracking_number: type: string title: tracking_number description: The label's tracking number. tracking_url: type: string title: tracking_url description: The label's tracking url. label_url: type: string title: label_url description: The label's url. no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the created shipment. metadata: type: object description: The shipment's metadata. Can hold custom key-value pairs. - type: object description: The shipment's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The shipment's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.createShipment( "order_123", "ful_123", { items: [ { id: "fulit_123", quantity: 1 } ] } ) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/shipments' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "items": [ { "id": "id_3QQtl2VvE73c", "quantity": 6772917941567488 } ], "metadata": {} }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderShipmentWorkflow x-events: - name: shipment.created payload: |- ```ts { id, // the ID of the shipment no_notification, // (boolean) whether to notify the customer } ``` description: Emitted when a shipment is created for an order. deprecated: false /admin/orders/{id}/line-items: get: operationId: GetOrdersIdLineItems summary: List Line Items description: Retrieve a list of line items in a order. The line items can be filtered by fields like FILTER FIELDS. The line items can also be paginated. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: id in: query required: false schema: oneOf: - type: string title: id description: The order's ID. - type: array description: The order's ID. items: type: string title: id description: The id's ID. - name: item_id in: query required: false schema: oneOf: - type: string title: item_id description: The order's item id. - type: array description: The order's item id. items: type: string title: item_id description: The item id's details. - name: order_id in: query required: false schema: oneOf: - type: string title: order_id description: The order's order id. - type: array description: The order's order id. items: type: string title: order_id description: The order id's details. - name: version in: query required: false schema: oneOf: - type: number title: version description: The order's version. - type: array description: The order's version. items: type: number title: version description: The version's details. - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.listLineItems("order_123") .then(({ order_items }) => { console.log(order_items) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/orders/{id}/line-items' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: type: object description: SUMMARY required: - order_items properties: order_items: type: array description: The order's order items. items: $ref: '#/components/schemas/AdminOrderItem' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/orders/{id}/preview: get: operationId: GetOrdersIdPreview summary: Get Preview description: Retrieve a preview of an order using its associated change, such as an edit. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.retrievePreview("order_123") .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/orders/{id}/preview' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/orders/{id}/transfer: post: operationId: PostOrdersIdTransfer x-sidebar-summary: Request Transfer summary: Request Order Transfer description: Request an order to be transfered to another customer. The transfer is confirmed by sending a request to the [Accept Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferaccept) Store API route. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminTransferOrder' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.requestTransfer("order_123", { customer_id: "cus_123", internal_note: "Internal note", }) .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/transfer' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "customer_id": "cus_123" }' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: requestOrderTransferWorkflow x-events: - name: order.transfer_requested payload: |- ```ts { id, // The ID of the order order_change_id, // The ID of the order change created for the transfer } ``` description: |- Emitted when an order is requested to be transferred to another customer. deprecated: false /admin/orders/{id}/transfer/cancel: post: operationId: PostOrdersIdTransferCancel summary: Cancel Transfer Request x-sidebar-summary: Cancel Transfer description: Cancel a request to transfer an order to another customer. x-authenticated: true parameters: - name: id in: path description: The order's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.order.cancelTransfer("order_123") .then(({ order }) => { console.log(order) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/orders/{id}/transfer/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Orders responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelOrderTransferRequestWorkflow x-events: [] /admin/payment-collections: post: operationId: PostPaymentCollections summary: Create Payment Collection description: Create a payment collection. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The payment collection's details. required: - order_id - amount properties: order_id: type: string title: order_id description: The ID of the associated order. amount: type: number title: amount description: The amount to be paid. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.paymentCollection.create({ order_id: "order_123" }) .then(({ payment_collection }) => { console.log(payment_collection) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/payment-collections' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}" }' tags: - Payment Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPaymentCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createOrderPaymentCollectionWorkflow x-events: [] /admin/payment-collections/{id}: delete: operationId: DeletePaymentCollectionsId summary: Delete a Payment Collection description: Delete a payment collection. x-authenticated: true parameters: - name: id in: path description: The payment collection's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.paymentCollection.delete("paycol_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/payment-collections/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Payment Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminDeletePaymentCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteOrderPaymentCollections x-events: [] /admin/payment-collections/{id}/mark-as-paid: post: operationId: PostPaymentCollectionsIdMarkAsPaid summary: Mark a Payment Collection as Paid x-sidebar-summary: Mark as Paid description: Mark a payment collection as paid. This creates and authorizes a payment session, then capture its payment, using the manual payment provider. x-authenticated: true parameters: - name: id in: path description: The payment collection's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The payment details. required: - order_id properties: order_id: type: string title: order_id description: The ID of the order associated with the payment collection. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.paymentCollection.markAsPaid("paycol_123", { order_id: "order_123" }) .then(({ payment_collection }) => { console.log(payment_collection) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/payment-collections/{id}/mark-as-paid' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}" }' tags: - Payment Collections responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPaymentCollectionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: markPaymentCollectionAsPaid x-events: - name: payment.captured payload: |- ```ts { id, // the ID of the payment } ``` description: Emitted when a payment is captured. deprecated: false /admin/payments: get: operationId: GetPayments summary: List Payments description: Retrieve a list of payments. The payments can be filtered by fields such as `id`. The payments can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the payment's searchable properties. required: false schema: type: string title: q description: Search term to filter the payment's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a payment ID. - type: array description: Filter by payment IDs. items: type: string title: id description: A payment ID. - name: payment_session_id in: query required: false schema: oneOf: - type: string title: payment_session_id description: Filter by a payment session ID to retrieve its associated payments. - type: array description: Filter by payment session IDs to retrieve their associated payments. items: type: string title: payment_session_id description: A payment session's ID. - name: created_at in: query description: Filter by the payment's creation date. required: false schema: type: object description: Filter by the payment's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the payment's update date. required: false schema: type: object description: Filter by the payment's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the payment's deletion date. required: false schema: type: object description: Filter by the payment's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.payment.list() .then(({ payments, count, limit, offset }) => { console.log(payments) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/payments' \ -H 'Authorization: Bearer {access_token}' tags: - Payments responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of payments. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of returned items. offset: type: number title: offset description: The number of items skipped before the returned items. count: type: number title: count description: The total number of payments. - type: object description: The paginated list of payments. required: - payments properties: payments: type: array description: The list of payments. items: $ref: '#/components/schemas/AdminPayment' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/payments/payment-providers: get: operationId: GetPaymentsPaymentProviders summary: List Payment Providers description: Retrieve a list of payment providers. The payment providers can be filtered by fields such as `id`. The payment providers can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: true schema: oneOf: - type: string title: id description: Filter by a payment provider's ID. - type: array description: Filter by payment provider IDs. items: type: string title: id description: A payment provider ID. - name: is_enabled in: query description: Filter by whether the payment provider is enabled. required: false schema: type: boolean title: is_enabled description: Filter by whether the payment provider is enabled. - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.payment.listPaymentProviders() .then(({ payment_providers, count, limit, offset }) => { console.log(payment_providers) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/payments/payment-providers' \ -H 'Authorization: Bearer {access_token}' tags: - Payments responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The list of payment providers. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of payment providers. required: - payment_providers properties: payment_providers: type: array description: The list of payment providers. items: $ref: '#/components/schemas/AdminPaymentProvider' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/payments/{id}: get: operationId: GetPaymentsId summary: Get a Payment description: Retrieve a payment by its ID. You can expand the payment's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The payment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.payment.retrieve("pay_123") .then(({ payment }) => { console.log(payment) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/payments/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Payments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPaymentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/payments/{id}/capture: post: operationId: PostPaymentsIdCapture summary: Capture Payment description: Capture an amount of a payment. This uses the `capturePayment` method of the payment provider associated with the payment's collection. x-authenticated: true parameters: - name: id in: path description: The payment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The payment's details. properties: amount: type: number title: amount description: The amount to capture. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.payment.capture("paycol_123", {}) .then(({ payment }) => { console.log(payment) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/payments/{id}/capture' \ -H 'Authorization: Bearer {access_token}' tags: - Payments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPaymentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: capturePaymentWorkflow x-events: - name: payment.captured payload: |- ```ts { id, // the ID of the payment } ``` description: Emitted when a payment is captured. deprecated: false /admin/payments/{id}/refund: post: operationId: PostPaymentsIdRefund summary: Refund Payment description: Refund an amount of a payment. This uses the `refundPayment` method of the payment provider associated with the payment's collection. x-authenticated: true parameters: - name: id in: path description: The payment's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The refund's details. properties: amount: type: number title: amount description: The amount to refund. refund_reason_id: type: string title: refund_reason_id description: The ID of a refund reason. note: type: string title: note description: A note to attach to the refund. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.payment.refund("paycol_123", {}) .then(({ payment }) => { console.log(payment) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/payments/{id}/refund' \ -H 'Authorization: Bearer {access_token}' tags: - Payments responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPaymentResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: refundPaymentWorkflow x-events: - name: payment.refunded payload: |- ```ts { id, // the ID of the payment } ``` description: Emitted when a payment is refunded. deprecated: false /admin/plugins: get: operationId: GetPlugins summary: List Plugins description: Retrieve the list of plugins installed in the Medusa application. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.plugin.list() .then(({ plugins }) => { console.log(plugins) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/plugins' \ -H 'Authorization: Bearer {access_token}' tags: - Plugins responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPluginsListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/price-lists: get: operationId: GetPriceLists summary: List Price Lists description: Retrieve a list of price lists. The price lists can be filtered by fields such as `id`. The price lists can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the price list's searchable properties. required: false schema: type: string title: q description: Search term to filter the price list's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a price list ID. - type: array description: Filter by price list IDs. items: type: string title: id description: A price list ID. - name: starts_at in: query description: Filter by a price list's start date. required: false schema: type: object description: Filter by a price list's start date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: ends_at in: query description: Filter by the price list's end date. required: false schema: type: object description: Filter by the price list's end date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: status in: query description: Filter by the price list's status. required: false schema: type: array description: Filter by the price list's status. items: type: string description: A price list's status. enum: - active - draft - name: rules_count in: query description: Filter by the price list's rules count. required: false schema: type: array description: Filter by the price list's rules count. items: type: number title: rules_count description: The price list's rule count. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.list() .then(({ price_lists, count, limit, offset }) => { console.log(price_lists) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/price-lists' \ -H 'Authorization: Bearer {access_token}' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPriceLists summary: Create Price List description: Create a price list. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreatePriceList' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.create({ title: "My Price List", status: "active", type: "sale", prices: [ { variant_id: "variant_123", amount: 10, currency_code: "usd", rules: { region_id: "reg_123" } } ] }) .then(({ price_list }) => { console.log(price_list) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-lists' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "description": "{value}", "starts_at": "{value}", "ends_at": "{value}" }' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createPriceListsWorkflow x-events: [] /admin/price-lists/{id}: get: operationId: GetPriceListsId summary: Get a Price List description: Retrieve a price list by its ID. You can expand the price list's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The price list's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.retrieve("plist_123") .then(({ price_list }) => { console.log(price_list) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/price-lists/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPriceListsId summary: Update a Price List description: Update a price list's details. x-authenticated: true parameters: - name: id in: path description: The price list's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdatePriceList' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.update("plist_123", { title: "My Price List", }) .then(({ price_list }) => { console.log(price_list) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-lists/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "{value}", "starts_at": "{value}", "ends_at": "{value}" }' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updatePriceListsWorkflow x-events: [] delete: operationId: DeletePriceListsId summary: Delete a Price List description: Delete a price list. x-authenticated: true parameters: - name: id in: path description: The price list's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.delete("plist_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/price-lists/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deletePriceListsWorkflow x-events: [] /admin/price-lists/{id}/prices/batch: post: operationId: PostPriceListsIdPricesBatch summary: Manage Prices in Price List x-sidebar-summary: Manage Prices description: Manage the prices of a price list to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The price list's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The prices to create, update, or delete. properties: create: type: array description: The prices to create. items: type: object description: A price's details. required: - currency_code - variant_id - amount properties: currency_code: type: string title: currency_code description: The price's currency code. amount: type: number title: amount description: The price's amount. variant_id: type: string title: variant_id description: The ID of the variant this price is for. min_quantity: type: number title: min_quantity description: The minimum quantity that must be available of the associated variant in the cart for this price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity that must be available of the associated variant in the cart for this price list to apply. rules: type: object description: Key-value pair rules to apply on the price. example: region_id: 123 update: type: array description: The prices to update. items: type: object description: The properties to update in a price. required: - id - variant_id properties: id: type: string title: id description: The price's ID. currency_code: type: string title: currency_code description: The price's currency code. amount: type: number title: amount description: The price's amount. variant_id: type: string title: variant_id description: The ID of the variant this price is for. min_quantity: type: number title: min_quantity description: The minimum quantity that must be available of the associated variant in the cart for this price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity that must be available of the associated variant in the cart for this price list to apply. rules: type: object description: Key-value pair rules to apply on the price. example: region_id: 123 delete: type: array description: The prices to delete. items: type: string title: delete description: A price's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.batchPrices("plist_123", { create: [{ variant_id: "variant_123", currency_code: "usd", amount: 10, rules: { region_id: "reg_123" } }], update: [{ id: "price_123", variant_id: "variant_123", amount: 20, }], delete: ["price_123"] }) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-lists/{id}/prices/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListBatchResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchPriceListPricesWorkflow x-events: [] /admin/price-lists/{id}/products: post: operationId: PostPriceListsIdProducts summary: Remove Products from Price List description: Remove products from a price list. x-authenticated: true parameters: - name: id in: path description: The price list's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminLinkPriceListProducts' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.priceList.linkProducts("plist_123", { remove: ["prod_123"] }) .then(({ price_list }) => { console.log(price_list) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-lists/{id}/products' \ -H 'Authorization: Bearer {access_token}' tags: - Price Lists responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPriceListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchPriceListPricesWorkflow x-events: [] /admin/price-preferences: get: operationId: GetPricePreferences summary: List Price Preferences description: Retrieve a list of price preferences. The price preferences can be filtered by fields such as `id`. The price preferences can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a price preference ID. - type: array description: Filter by price preference IDs. items: type: string title: id description: A price preference ID. - name: attribute in: query required: false schema: oneOf: - type: string title: attribute description: Filter by a price preference's attribute. - type: array description: Filter by price preference attributes. items: type: string title: attribute description: A price preference's attribute. - name: value in: query required: false schema: oneOf: - type: string title: value description: Filter by a price preference's value. - type: array description: Filter by price preference values. items: type: string title: value description: A price preference's value. - name: q in: query description: Search term to apply on the price preference's searchable properties. required: false schema: type: string title: q description: Search term to apply on the price preference's searchable properties. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.pricePreference.list() .then(({ price_preferences, count, limit, offset }) => { console.log(price_preferences) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/price-preferences' \ -H 'Authorization: Bearer {access_token}' tags: - Price Preferences responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPricePreferenceListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPricePreferences summary: Create Price Preference description: Create a price preference. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreatePricePreference' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.pricePreference.create({ attribute: "region_id", value: "region_123", is_tax_inclusive: true }) .then(({ price_preference }) => { console.log(price_preference) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-preferences' \ -H 'Authorization: Bearer {access_token}' tags: - Price Preferences responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPricePreferenceResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createPricePreferencesWorkflow x-events: [] /admin/price-preferences/{id}: get: operationId: GetPricePreferencesId summary: Get a Price Preference description: Retrieve a price preference by its ID. You can expand the price preference's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The price preference's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.pricePreference.retrieve("prpref_123") .then(({ price_preference }) => { console.log(price_preference) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/price-preferences/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Price Preferences responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPricePreferenceResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPricePreferencesId summary: Update a Price Preference description: Update a price preference's details. x-authenticated: true parameters: - name: id in: path description: The price preference's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdatePricePreference' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.pricePreference.update("prpref_123", { is_tax_inclusive: true }) .then(({ price_preference }) => { console.log(price_preference) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/price-preferences/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Price Preferences responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPricePreferenceResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updatePricePreferencesWorkflow x-events: [] delete: operationId: DeletePricePreferencesId summary: Delete a Price Preference description: Delete a price preference. x-authenticated: true parameters: - name: id in: path description: The price preference's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.pricePreference.delete("prpref_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/price-preferences/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Price Preferences responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPricePreferenceDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deletePricePreferencesWorkflow x-events: [] /admin/product-categories: get: operationId: GetProductCategories summary: List Product Categories description: Retrieve a list of product categories. The product categories can be filtered by fields such as `id`. The product categories can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter on the product category's searchable properties. required: false schema: type: string title: q description: Search term to filter on the product category's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a product category's ID. - type: array description: Filter by product category IDs. items: type: string title: id description: A product category ID. - name: description in: query required: false schema: oneOf: - type: string title: description description: Filter by the category's description. This performs a full-text search. To do keyword search, use the `q` parameter instead. - type: array description: Filter by category descriptions. This performs a full-text search. To do keyword search, use the `q` parameter instead. items: type: string title: description description: The category's description. - name: handle in: query required: false schema: oneOf: - type: string title: handle description: Filter by a category's handle. - type: array description: Filter by category handles. items: type: string title: handle description: A category's handle. - name: parent_category_id in: query required: false schema: oneOf: - type: string title: parent_category_id description: Filter by a parent category's ID to retrieve its child categories. - type: array description: Filter by parent category IDs to retrieve their child categories. items: type: string title: parent_category_id description: A parent category's ID. - name: include_ancestors_tree in: query description: Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`. required: false schema: type: boolean title: include_ancestors_tree description: Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`. - name: include_descendants_tree in: query description: Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`. required: false schema: type: boolean title: include_descendants_tree description: Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`. - name: is_internal in: query description: Filter by whether the category is internal. required: false schema: type: boolean title: is_internal description: Filter by whether the category is internal. - name: is_active in: query description: Filter by whether the category is active. required: false schema: type: boolean title: is_active description: Filter by whether the category is active. - name: created_at in: query description: Filter by the category's creation date. required: false schema: type: object description: Filter by the category's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the category's update date. required: false schema: type: object description: Filter by the category's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the category's deletion date. required: false schema: type: object description: Filter by the category's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: name in: query required: false schema: oneOf: - type: string title: name description: The product category's name. - type: array description: The product category's name. items: type: string title: name description: The name's details. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.list() .then(({ product_categories, count, limit, offset }) => { console.log(product_categories) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-categories' \ -H 'Authorization: Bearer {access_token}' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductCategories summary: Create Product Category description: Create a product category. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateProductCategory' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.create({ name: "Shirts" }) .then(({ product_category }) => { console.log(product_category) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-categories' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Vesta", "parent_category_id": "{value}", "metadata": {} }' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductCategoriesWorkflow x-events: - name: product-category.created payload: |- ```ts [{ id, // The ID of the product category }] ``` description: Emitted when product categories are created. deprecated: false /admin/product-categories/{id}: get: operationId: GetProductCategoriesId summary: Get a Product Category description: Retrieve a product category by its ID. You can expand the product category's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The product category's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' - name: include_ancestors_tree in: query description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`. required: false schema: type: boolean title: include_ancestors_tree description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`. - name: include_descendants_tree in: query description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`. required: false schema: type: boolean title: include_descendants_tree description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.retrieve("pcat_123") .then(({ product_category }) => { console.log(product_category) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-categories/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductCategoriesId summary: Update a Product Category description: Update a product category's details. x-authenticated: true parameters: - name: id in: path description: The product category's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the product category. properties: name: type: string title: name description: The product category's name. description: type: string title: description description: The product category's description. handle: type: string title: handle description: The product category's handle. Must be a unique value. is_internal: type: boolean title: is_internal description: Whether the product category is only used for internal purposes and shouldn't be shown the customer. is_active: type: boolean title: is_active description: Whether the product category is active. parent_category_id: type: string title: parent_category_id description: The ID of a parent category. metadata: type: object description: The product category's metadata. Can hold custom key-value pairs. rank: type: number title: rank description: The product category's rank among other categories. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.update("pcat_123", { name: "Shirts" }) .then(({ product_category }) => { console.log(product_category) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-categories/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "parent_category_id": "{value}", "metadata": {} }' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductCategoriesWorkflow x-events: - name: product-category.updated payload: |- ```ts [{ id, // The ID of the product category }] ``` description: Emitted when product categories are updated. deprecated: false delete: operationId: DeleteProductCategoriesId summary: Delete a Product Category description: Delete a product category. This doesn't deleted products in that category. x-authenticated: true parameters: - name: id in: path description: The product category's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.delete("pcat_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/product-categories/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductCategoriesWorkflow x-events: - name: product-category.deleted payload: |- ```ts [{ id, // The ID of the product category }] ``` description: Emitted when product categories are deleted. deprecated: false /admin/product-categories/{id}/products: post: operationId: PostProductCategoriesIdProducts summary: Manage Products in Product Category x-sidebar-summary: Manage Products description: Manage products of a category to add or remove them. x-authenticated: true parameters: - name: id in: path description: The product category's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The products to add or remove from the category. properties: add: type: array description: The products to add. items: type: string title: add description: A product ID. remove: type: array description: The product to remove. items: type: string title: remove description: A product ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productCategory.updateProducts("pcat_123", { add: ["prod_123"], remove: ["prod_321"] }) .then(({ product_category }) => { console.log(product_category) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-categories/{id}/products' \ -H 'Authorization: Bearer {access_token}' tags: - Product Categories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductCategoryResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchLinkProductsToCategoryWorkflow x-events: [] /admin/product-tags: get: operationId: GetProductTags summary: List Product Tags description: Retrieve a list of product tags. The product tags can be filtered by fields such as `id`. The product tags can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the product tag's searchable properties. required: false schema: type: string title: q description: Search term to filter the product tag's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a product tag's ID. - type: array description: Filter by product tag IDs. items: type: string title: id description: A product tag's ID. - name: value in: query required: false schema: oneOf: - type: string title: value description: Filter by a product tag's value. - type: array description: Filter by product tag values. items: type: string title: value description: A tag value. - name: created_at in: query description: Filter by the tag's creation date. required: false schema: type: object description: Filter by the tag's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the tag's update date. required: false schema: type: object description: Filter by the tag's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the tag's deletion date. required: false schema: type: object description: Filter by the tag's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productTag.list() .then(({ product_tags, count, limit, offset }) => { console.log(product_tags) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-tags' \ -H 'Authorization: Bearer {access_token}' tags: - Product Tags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTagListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductTags summary: Create Product Tag description: Create a product tag. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateProductTag' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productTag.create({ value: "shirt" }) .then(({ product_tag }) => { console.log(product_tag) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-tags' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "value": "{value}", "metadata": {} }' tags: - Product Tags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTagResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductTagsWorkflow x-events: - name: product-tag.created payload: |- ```ts [{ id, // The ID of the product tag }] ``` description: Emitted when product tags are created. deprecated: false /admin/product-tags/{id}: get: operationId: GetProductTagsId summary: Get a Product Tag description: Retrieve a product tag by its ID. You can expand the product tag's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The product tag's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productTag.retrieve("ptag_123") .then(({ product_tag }) => { console.log(product_tag) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-tags/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Tags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTagResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductTagsId summary: Update a Product Tag description: Update a product tag's details. x-authenticated: true parameters: - name: id in: path description: The product tag's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the product tag. properties: value: type: string title: value description: The product tag's value. metadata: type: object description: The product tag's metadata. Can hold custom key-value pairs. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productTag.update("ptag_123", { value: "shirt" }) .then(({ product_tag }) => { console.log(product_tag) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-tags/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Product Tags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTagResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductTagsWorkflow x-events: - name: product-tag.updated payload: |- ```ts [{ id, // The ID of the product tag }] ``` description: Emitted when product tags are updated. deprecated: false delete: operationId: DeleteProductTagsId summary: Delete a Product Tag description: Delete a product tag. This doesn't delete products using the tag. x-authenticated: true parameters: - name: id in: path description: The product tag's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productTag.delete("ptag_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/product-tags/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Tags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTagDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductTagsWorkflow x-events: - name: product-tag.deleted payload: |- ```ts [{ id, // The ID of the product tag }] ``` description: Emitted when product tags are deleted. deprecated: false /admin/product-types: get: operationId: GetProductTypes summary: List Product Types description: Retrieve a list of product types. The product types can be filtered by fields such as `id`. The product types can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the product type's searchable properties. required: false schema: type: string title: q description: Search term to filter the product type's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a product type's ID. - type: array description: Filter by product type IDs. items: type: string title: id description: A product type's ID. - name: value in: query required: false schema: oneOf: - type: string title: value description: Filter by a type's value. - type: array description: Filter by values. items: type: string title: value description: A type's value. - name: created_at in: query description: Filter by the type's creation date. required: false schema: type: object description: Filter by the type's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the type's update date. required: false schema: type: object description: Filter by the type's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the type's deletion date. required: false schema: type: object description: Filter by the type's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productType.list() .then(({ product_types, count, limit, offset }) => { console.log(product_types) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-types' \ -H 'Authorization: Bearer {access_token}' tags: - Product Types responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTypeListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductTypes summary: Create Product Type description: Create a product type. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateProductType' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productType.create({ value: "Clothes" }) .then(({ product_type }) => { console.log(product_type) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-types' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "value": "{value}", "metadata": {} }' tags: - Product Types responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTypeResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductTypesWorkflow x-events: - name: product-type.created payload: |- ```ts [{ id, // The ID of the product type }] ``` description: Emitted when product types are created. deprecated: false /admin/product-types/{id}: get: operationId: GetProductTypesId summary: Get a Product Type description: Retrieve a product type by its ID. You can expand the product type's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The product type's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productType.retrieve("ptyp_123") .then(({ product_type }) => { console.log(product_type) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-types/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Types responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTypeResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductTypesId summary: Update a Product Type description: Update a product type's details. x-authenticated: true parameters: - name: id in: path description: The product type's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the product type. properties: value: type: string title: value description: The product type's value. metadata: type: object description: The product type's metadata. Can hold custom key-value pairs. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productType.update("ptyp_123", { value: "Clothes" }) .then(({ product_type }) => { console.log(product_type) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/product-types/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Product Types responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTypeResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductTypesWorkflow x-events: - name: product-type.updated payload: |- ```ts [{ id, // The ID of the product type }] ``` description: Emitted when product types are updated. deprecated: false delete: operationId: DeleteProductTypesId summary: Delete a Product Type description: Delete a product type. This doesn't delete products of this type. x-authenticated: true parameters: - name: id in: path description: The product type's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productType.delete("ptyp_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/product-types/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Product Types responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductTypeDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductTypesWorkflow x-events: - name: product-type.deleted payload: |- ```ts [{ id, // The ID of the product type }] ``` description: Emitted when product types are deleted. deprecated: false /admin/product-variants: get: operationId: GetProductVariants summary: List Product Variants description: Retrieve a list of product variants. The product variants can be filtered by fields such as `id`. The product variants can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the product variant's searchable properties. required: false schema: type: string title: q description: Search term to filter the product variant's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a variant's ID. - type: array description: Filter by variant IDs. items: type: string title: id description: A variant's ID. - name: manage_inventory in: query description: Filter by whether a variant's `manage_inventory` is enabled. required: false schema: type: boolean title: manage_inventory description: Filter by whether a variant's `manage_inventory` is enabled. - name: allow_backorder in: query description: Filter by whether backorder is allowed for a variant. required: false schema: type: boolean title: allow_backorder description: Filter by whether backorder is allowed for a variant. - name: created_at in: query description: Filter by the product variant's creation date. required: false schema: type: object description: Filter by the product variant's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the product variant's update date. required: false schema: type: object description: Filter by the product variant's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the product variant's deletion date. required: false schema: type: object description: Filter by the product variant's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.productVariant.list() .then(({ variants, count, limit, offset }) => { console.log(variants) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/product-variants' \ -H 'Authorization: Bearer {access_token}' tags: - Product Variants responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of product variants. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of product variants. required: - variants properties: variants: type: array description: The product variant's variants. items: $ref: '#/components/schemas/AdminProductVariant' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/products: get: operationId: GetProducts summary: List Products description: Retrieve a list of products. The products can be filtered by fields such as `id`. The products can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: price_list_id in: query required: false schema: oneOf: - type: string title: price_list_id description: Filter by a price list's ID to retrieve its associated products. - type: array description: The product's price list id. items: type: string title: price_list_id description: Filter by a price list IDs to retrieve their associated products. - name: q in: query description: Search term to filter a product's searchable properties. required: false schema: type: string title: q description: Search term to filter a product's searchable properties. - name: status in: query required: false schema: oneOf: - type: string title: status description: Filter by a product status. - type: array description: Filter by product statuses. items: type: string enum: - draft - proposed - published - rejected - name: sales_channel_id in: query required: false schema: oneOf: - type: string title: sales_channel_id description: Filter by a sales channel's ID to retrieve its associated products. - type: array description: Filter by sales channel IDs to retrieve their associated products. items: type: string title: sales_channel_id description: A sales channel's ID. - name: title in: query required: false schema: oneOf: - type: string title: title description: Filter by a title. - type: array description: Filter by titles items: type: string title: title description: A product title. - name: handle in: query required: false schema: oneOf: - type: string title: handle description: Filter by a handle. - type: array description: Filter by handles. items: type: string title: handle description: A product handle. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a product ID. - type: array description: Filter by product IDs. items: type: string title: id description: A product's ID. - name: is_giftcard in: query description: Filter by whether a product is a gift card. required: false schema: type: boolean title: is_giftcard description: Filter by whether a product is a gift card. - name: tags in: query description: Filter by associated tags to retrieve their products. required: false schema: description: Filter by associated tags to retrieve their products. properties: value: type: array description: Filter by tag values. items: type: string title: value description: A tag's value. - name: type_id in: query required: false schema: oneOf: - type: string title: type_id description: Filter by a product type's ID to retrieve its associated products. - type: array description: Filter by product type IDs to retrieve their associated products. items: type: string title: type_id description: A product type's ID. - name: category_id in: query required: false schema: oneOf: - type: string title: category_id description: Filter by a product category's ID to retrieve its associated products. - type: array description: Filter by product category IDs to retrieve their associated products. items: type: string title: category_id description: A product category's ID. - name: created_at in: query description: Filter by a product's creation date. required: false schema: type: object description: Filter by a product's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a product's update date. required: false schema: type: object description: Filter by a product's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a product's deletion date. required: false schema: type: object description: Filter by a product's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: collection_id in: query required: false schema: oneOf: - type: string title: collection_id description: Filter by a product collection ID. - type: array description: Filter by product collection IDs. items: type: string title: collection_id description: A product collection's ID. - name: variants in: query description: Filter the retrieved products' variants. required: false schema: type: object description: Filter the retrieved products' variants. x-schemaName: AdminProductVariantParams properties: q: type: string title: q description: Search term to apply on the variant's searchable properties. id: oneOf: - type: string title: id description: Filter by a variant's ID. - type: array description: Filter by variant IDs. items: type: string title: id description: A variant's ID. manage_inventory: type: boolean title: manage_inventory description: Filter by whether the Medusa application manages the variant's inventory. allow_backorder: type: boolean title: allow_backorder description: Filter by whether the variant can be ordered even if it's out of stock. created_at: type: object description: Filter by the variant's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). updated_at: type: object description: The variant's updated at. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). deleted_at: type: object description: The variant's deleted at. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). limit: type: number title: limit description: Limit the number of items returned in the list. offset: type: number title: offset description: The number of items to skip when retrieving a list. order: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. fields: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.list() .then(({ products, count, limit, offset }) => { console.log(products) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of products. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of products. required: - products properties: products: type: array description: The list of products. items: type: object '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProducts summary: Create Product description: Create a product. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminCreateProduct' - type: object description: The product's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The product's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.create({ title: "Shirt", options: [{ title: "Default", values: ["Default Option"] }], variants: [ { title: "Default", options: { Default: "Default Option" }, prices: [] } ], shipping_profile_id: "sp_123" }) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "options": [ { "title": "Default option", "values": ["Default option value"] } ] }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductsWorkflow x-events: - name: product-variant.created payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are created. deprecated: false - name: product.created payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are created. deprecated: false /admin/products/batch: post: operationId: PostProductsBatch summary: Manage Products description: Manage products to create, update, or delete them. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminBatchProductRequest' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.batch({ create: [ { title: "Shirt", options: [{ title: "Default", values: ["Default Option"] }], variants: [ { title: "Default", options: { Default: "Default Option" }, prices: [] } ] } ], update: [{ id: "prod_123", title: "Pants" }], delete: ["prod_321"] }) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/batch' \ -H 'Authorization: Bearer {access_token}' \ --data-raw '{ "delete": [ "prod_123" ] }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminBatchProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchProductsWorkflow x-events: - name: product-variant.created payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are created. deprecated: false - name: product.updated payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are updated. deprecated: false - name: product.created payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are created. deprecated: false - name: product.deleted payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are deleted. deprecated: false /admin/products/export: post: operationId: PostProductsExport summary: Export Products description: | Start a product export process to retrieve a CSV of exported products. You'll receive in the response the transaction ID of the workflow generating the CSV file. To check the status of the execution, send a GET request to `/admin/workflows-executions/export-products/:transaction-id`. Once the execution finishes successfully, a notification is created for the export. You can retrieve the notifications using the `/admin/notification` API route to retrieve the file's download URL. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.export({}) .then(({ transaction_id }) => { console.log(transaction_id) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/export' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '202': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminExportProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: exportProductsWorkflow x-events: [] /admin/products/import: post: operationId: PostProductsImport summary: Create Product Import description: Create a new product import process. The products aren't imported until the import is confirmed with the `/admin/products/:transaction-id/import` API route. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminImportProductRequest' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.import({ file // uploaded File instance }) .then(({ transaction_id }) => { console.log(transaction_id) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/import' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '202': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminImportProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: importProductsWorkflow x-events: - name: product-variant.created payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are created. deprecated: false - name: product.updated payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are updated. deprecated: false - name: product.created payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are created. deprecated: false - name: product.deleted payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are deleted. deprecated: false /admin/products/import/{transaction_id}/confirm: post: operationId: PostProductsImportTransaction_idConfirm summary: Confirm Product Import description: Confirm that a created product import should start importing the products into Medusa. x-authenticated: true parameters: - name: transaction_id in: path description: The ID of the transaction returned when the product import was created. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.confirmImport("transaction_123") .then(() => { console.log("Import confirmed") }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/import/{transaction_id}/confirm' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '202': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/products/{id}: get: operationId: GetProductsId summary: Get a Product description: Retrieve a product by its ID. You can expand the product's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.retrieve("prod_123") .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductsId summary: Update a Product description: Update a product's details. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminUpdateProduct' - type: object description: The properties to update in a product. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The properties to update in a product. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.update("prod_123", { title: "Shirt", }) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductsWorkflow x-events: - name: product.updated payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are updated. deprecated: false delete: operationId: DeleteProductsId summary: Delete a Product description: Delete a product. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.delete("prod_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/products/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductsWorkflow x-events: - name: product.deleted payload: |- ```ts [{ id, // The ID of the product }] ``` description: Emitted when products are deleted. deprecated: false /admin/products/{id}/options: get: operationId: GetProductsIdOptions summary: List a Product's Options x-sidebar-summary: List Options description: Retrieve a list of options of a product. The options can be filtered by fields like `id`. The options can also be paginated. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the product option's searchable fields. required: false schema: type: string title: q description: Search term to filter the product option's searchable fields. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by the product option's ID. - type: array description: Filter by product option IDs. items: type: string title: id description: A product option's ID. - name: title in: query required: false schema: oneOf: - type: string title: title description: Filter by a title. - type: array description: Filter by titles. items: type: string title: title description: An option's title. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.listOptions("prod_123") .then(({ product_options, count, limit, offset }) => { console.log(product_options) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products/{id}/options' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of product options. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of product options. required: - product_options properties: product_options: type: array description: The list of product options. items: $ref: '#/components/schemas/AdminProductOption' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductsIdOptions summary: Create a Product Option x-sidebar-summary: Create Option description: Create an option for a product. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminCreateProductOption' - type: object description: The product option's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The product option's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.createOption( "prod_123", { title: "Color", values: ["Green", "Blue"] } ) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/options' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "values": [ "{value}" ] }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductOptionsWorkflow x-events: - name: product-option.created payload: |- ```ts [{ id, // The ID of the product option }] ``` description: Emitted when product options are created. deprecated: false /admin/products/{id}/options/{option_id}: get: operationId: GetProductsIdOptionsOption_id summary: Get a Product's Option x-sidebar-summary: Get Option description: Retrieve a product's option by its ID. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: option_id in: path description: The product's option id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.retrieveOption( "prod_123", "prodopt_123" ) .then(({ product_option }) => { console.log(product_option) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products/{id}/options/{option_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductOptionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductsIdOptionsOption_id summary: Update a Product's Option x-sidebar-summary: Update Option description: Update the details of a product option. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: option_id in: path description: The option's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminUpdateProductOption' - type: object description: The properties to update in the product option. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The properties to update in the product option. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.updateOption( "prod_123", "prodopt_123", { title: "Color" } ) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/options/{option_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductOptionsWorkflow x-events: - name: product-option.updated payload: |- ```ts [{ id, // The ID of the product option }] ``` description: Emitted when product options are updated. deprecated: false delete: operationId: DeleteProductsIdOptionsOption_id summary: Delete an Option from Product x-sidebar-summary: Delete Option description: | Delete an option from a product. Values of this option in the product's variants are removed. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: option_id in: path description: The product option's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.deleteOption("prod_123", "prodopt_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/products/{id}/options/{option_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductOptionDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductOptionsWorkflow x-events: - name: product-option.deleted payload: |- ```ts [{ id, // The ID of the product option }] ``` description: Emitted when product options are deleted. deprecated: false /admin/products/{id}/variants: get: operationId: GetProductsIdVariants summary: List Variants of a Product x-sidebar-summary: List Variants description: Retrieve a list of variants in a product. The variants can be filtered by fields like FILTER FIELDS. The variants can also be paginated. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the variant's search attributes. required: false schema: type: string title: q description: Search term to filter the variant's search attributes. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a variant's ID. - type: array description: Filter by variant IDs. items: type: string title: id description: A variant ID. - name: manage_inventory in: query description: Filter by whether a variant's `manage_inventory` property is enabled. required: false schema: type: boolean title: manage_inventory description: Filter by whether a variant's `manage_inventory` property is enabled. - name: allow_backorder in: query description: Filter by whether backorders are allowed for the variant. required: false schema: type: boolean title: allow_backorder description: Filter by whether backorders are allowed for the variant. - name: created_at in: query description: Filter by the product's creation date. required: false schema: type: object description: Filter by the product's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the product's update date. required: false schema: type: object description: Filter by the product's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by the product's deletion date. required: false schema: type: object description: Filter by the product's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.listVariants("prod_123") .then(({ variants, count, limit, offset }) => { console.log(variants) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products/{id}/variants' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of product variants. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of returned items. offset: type: number title: offset description: The number of items skipped before the returned item. count: type: number title: count description: The total number of items. - type: object description: The paginated list of product variants. required: - variants properties: variants: type: array description: The list of product variants. items: $ref: '#/components/schemas/AdminProductVariant' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductsIdVariants summary: Create a Product Variant x-sidebar-summary: Create Variant description: Create a variant for a product. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminCreateProductVariant' - type: object description: The product variant's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The product variant's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.createVariant("prod_123", { title: "Blue Shirt", options: { Color: "Blue" }, prices: [ { amount: 10, currency_code: "usd" } ] }) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "title": "{value}", "prices": [] }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createProductVariantsWorkflow x-events: - name: product-variant.created payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are created. deprecated: false /admin/products/{id}/variants/batch: post: operationId: PostProductsIdVariantsBatch summary: Manage Variants in a Product x-sidebary-summary: Manage Variants description: Manage variants in a product to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminBatchProductVariantRequest' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.batchVariants("prod_123", { create: [ { title: "Blue Shirt", options: { Color: "Blue" }, prices: [] } ], update: [ { id: "variant_123", title: "Pants" } ], delete: ["variant_123"] }) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminBatchProductVariantResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchProductVariantsWorkflow x-events: - name: product-variant.updated payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are updated. deprecated: false - name: product-variant.created payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are created. deprecated: false - name: product-variant.deleted payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are deleted. deprecated: false /admin/products/{id}/variants/inventory-items/batch: post: operationId: PostProductsIdVariantsInventoryItemsBatch summary: Manage Variants Inventory in a Product x-sidebar-summary: Manage Variants Inventory description: Manage a product's variant's inventoris to associate them with inventory items, update their inventory items, or delete their association with inventory items. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The product variant inventories to manage. properties: create: type: array description: The The associations to create between product variants and inventory items. items: type: object description: The associations to create between a product variant and an inventory item. required: - variant_id - inventory_item_id - required_quantity properties: required_quantity: type: number title: required_quantity description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item to associate the variant with. variant_id: type: string title: variant_id description: The ID of the variant. update: type: array description: The product variants to update their association with inventory items. items: type: object description: Update a product variant's association with an inventory item. required: - variant_id - inventory_item_id - required_quantity properties: required_quantity: type: number title: required_quantity description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item the variant is associated with. variant_id: type: string title: variant_id description: The ID of the variant. delete: type: array description: The product variants to delete their association with inventory items. items: type: object description: Delete a product variant's association with an inventory item. required: - variant_id - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item associated with the variant. variant_id: type: string title: variant_id description: The ID of the variant. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.batchVariantInventoryItems( "prod_123", { create: [ { inventory_item_id: "iitem_123", variant_id: "variant_123", required_quantity: 10 } ], update: [ { inventory_item_id: "iitem_1234", variant_id: "variant_1234", required_quantity: 20 } ], delete: [ { inventory_item_id: "iitem_321", variant_id: "variant_321" } ] } ) .then(({ created, updated, deleted }) => { console.log(created, updated, deleted) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants/inventory-items/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantInventoryBatchResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchLinksWorkflow x-events: [] /admin/products/{id}/variants/{variant_id}: get: operationId: GetProductsIdVariantsVariant_id summary: Get Variant of a Product x-sidebar-summary: Get Variant description: Retrieve a product's variant by its ID. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The variant's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.retrieveVariant( "prod_123", "variant_123" ) .then(({ variant }) => { console.log(variant) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/products/{id}/variants/{variant_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostProductsIdVariantsVariant_id summary: Update a Product Variant x-sidebar-summary: Update Variant description: Update a variant's details. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The product's variant id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/AdminUpdateProductVariant' - type: object description: The properties to update in the variant. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The properties to update in the variant. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.updateVariant( "prod_123", "variant_123", { title: "Blue Shirt", } ) .then(({ product }) => { console.log(product) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateProductVariantsWorkflow x-events: - name: product-variant.updated payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are updated. deprecated: false delete: operationId: DeleteProductsIdVariantsVariant_id summary: Delete Product Variant x-sidebar-summary: Delete Variant description: Delete a variant of a product. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The product variant's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.product.deleteVariant("prod_123", "variant_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteProductVariantsWorkflow x-events: - name: product-variant.deleted payload: |- ```ts [{ id, // The ID of the product variant }] ``` description: Emitted when product variants are deleted. deprecated: false /admin/products/{id}/variants/{variant_id}/inventory-items: post: operationId: PostProductsIdVariantsVariant_idInventoryItems summary: Associate Variant with Inventory Item x-sidebar-summary: Associate Variant's Inventory description: Associate with a product variant an inventory item that manages its inventory details. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The variant's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateVariantInventoryItem' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "required_quantity": 7390879820021760, "inventory_item_id": "{value}" }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createLinksWorkflow x-events: [] /admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}: post: operationId: PostProductsIdVariantsVariant_idInventoryItemsInventory_item_id summary: Update Product Variant's Inventory Details x-sidebary-summary: Update Variant Inventory description: Update the inventory item that manages the inventory details of a product variant. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The variant's ID. required: true schema: type: string - name: inventory_item_id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateVariantInventoryItem' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "required_quantity": 5324804697620480 }' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateLinksWorkflow x-events: [] delete: operationId: DeleteProductsIdVariantsVariant_idInventoryItemsInventory_item_id summary: Remove Inventory Item Association with Product Variant x-sidebar-summary: Remove Inventory Item description: Remove the association between an inventory item and its product variant. x-authenticated: true parameters: - name: id in: path description: The product's ID. required: true schema: type: string - name: variant_id in: path description: The products variant's ID. required: true schema: type: string - name: inventory_item_id in: path description: The inventory item's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Products responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminProductVariantInventoryLinkDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: dismissLinksWorkflow x-events: [] /admin/promotions: get: operationId: GetPromotions summary: List Promotions description: Retrieve a list of promotions. The promotions can be filtered by fields such as `id`. The promotions can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the promotion's searchable attributes. required: false schema: type: string title: q description: Search term to filter the promotion's searchable attributes. - name: code in: query required: false schema: oneOf: - type: string title: code description: Filter by a promotion code. - type: array description: Filter by promotion codes. items: type: string title: code description: A promotion code. - name: campaign_id in: query required: false schema: oneOf: - type: string title: campaign_id description: Filter by a campaign's ID to retrieve its associated promotions. - type: array description: Filter by campaign IDs to retrieve their associated promotions. items: type: string title: campaign_id description: A campaign's ID. - name: application_method in: query description: Apply filters on the application methods to retrieve the promotions of the matching application methods. required: false schema: type: object description: Apply filters on the application methods to retrieve the promotions of the matching application methods. properties: currency_code: oneOf: - type: string title: currency_code description: Filter by a currency code. - type: array description: Filter by currency codes. items: type: string title: currency_code description: A currency code. - name: created_at in: query description: Filter by a promotion's creation date. required: false schema: type: object description: Filter by a promotion's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a promotion's update date. required: false schema: type: object description: Filter by a promotion's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a promotion's deletion date. required: false schema: type: object description: Filter by a promotion's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: currency_code in: query required: false schema: oneOf: - type: string title: currency_code description: Filter by a currency code. The promotions are filtered based on their application method's currency code. - type: array description: Filter by currency codes. The promotions are filtered based on their application method's currency code. items: type: string title: currency_code description: A currency code. - name: application_method_type in: query required: false schema: oneOf: - type: string title: application_method_type description: Filter by an application method type. The promotions are filtered based on their application method's type. - type: array description: Filter by application method types. The promotions are filtered based on their application method's type. items: type: string title: application_method_type description: An application method type. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.list() .then(({ promotions, count, limit, offset }) => { console.log(promotions) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/promotions' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of promotions. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of promotions. required: - promotions properties: promotions: type: array description: The list of promotions. items: $ref: '#/components/schemas/AdminPromotion' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPromotions summary: Create Promotion description: Create a promotion. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The promotion's details. required: - code - type - campaign_id - application_method properties: code: type: string title: code description: The promotion's code. is_automatic: type: boolean title: is_automatic description: Whether the promotion is applied automatically. type: type: string description: The promotion's type. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/promotion/concepts#what-is-a-promotion enum: - standard - buyget campaign_id: type: string title: campaign_id description: The ID of the campaign that the promotion belongs to. campaign: type: object description: The details of a campaign to create and add the promotion to it. required: - name - campaign_identifier - description - budget - starts_at - ends_at properties: name: type: string title: name description: The campaign's name. campaign_identifier: type: string title: campaign_identifier description: The campaign's identifier. description: type: string title: description description: The campaign's description. budget: type: object description: The campaign's budget which, when crossed, ends the campaign. required: - type - limit - currency_code properties: type: type: string description: | The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used. enum: - spend - usage limit: type: number title: limit description: The budget's limit. currency_code: type: string title: currency_code description: The campaign budget's currency code. This can't be edited later. starts_at: type: string title: starts_at description: The campaign's start date. format: date-time ends_at: type: string title: ends_at description: The campaign's end date. format: date-time application_method: type: object description: The promotion's application method. required: - description - value - currency_code - max_quantity - type - target_type - apply_to_quantity - buy_rules_min_quantity properties: description: type: string title: description description: The application method's description. value: type: number title: value description: The discounted amount applied by the associated promotion based on the `type`. currency_code: type: string title: currency_code description: The application method's currency code. max_quantity: type: number title: max_quantity description: The max quantity allowed in the cart for the associated promotion to be applied. type: type: string description: The type of the application method indicating how the associated promotion is applied. enum: - fixed - percentage target_type: type: string description: The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order. enum: - order - shipping_methods - items allocation: type: string description: The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart. enum: - each - across target_rules: type: array description: The application method's target rules. items: type: object description: A target rule's details. required: - operator - description - attribute - values properties: operator: type: string description: The operator used to check whether the target rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value. enum: - gte - lte - gt - lt - eq - ne - in description: type: string title: description description: The target rule's description. attribute: type: string title: attribute description: The attribute to compare against when checking whether a promotion can be applied on a cart. example: items.product.id values: oneOf: - type: string title: values description: The attribute's value. example: prod_123 - type: array description: The allowed attribute values. items: type: string title: values description: An attribute value. example: prod_123 buy_rules: type: array description: The application method's buy rules. items: type: object description: A buy rule's details. required: - operator - description - attribute - values properties: operator: type: string description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value. enum: - gte - lte - gt - lt - eq - ne - in description: type: string title: description description: The buy rule's description. attribute: type: string title: attribute description: The attribute to compare against when checking whether a promotion can be applied on a cart. example: items.product.id values: oneOf: - type: string title: values description: The attribute's value. example: prod_123 - type: array description: The allowed attribute values. items: type: string title: values description: An attribute value. example: prod_123 apply_to_quantity: type: number title: apply_to_quantity description: The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a "Buy 2 shirts get 1 free", the value f this attribute is `1`. buy_rules_min_quantity: type: number title: buy_rules_min_quantity description: The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `2`. rules: type: array description: The promotion's rules. items: type: object description: A rule's details. required: - operator - description - attribute - values properties: operator: type: string description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value. enum: - gte - lte - gt - lt - eq - ne - in description: type: string title: description description: The rule's description. attribute: type: string title: attribute description: The attribute to compare against when checking whether a promotion can be applied on a cart. example: items.product.id values: oneOf: - type: string title: values description: The attribute's value. example: prod_123 - type: array description: The allowed attribute values. items: type: string title: values description: An attribute value. example: prod_123 - type: object description: The promotion's details. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The promotion's details. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.create({ name: "My Promotion", description: "This is a test promotion", code: "PROMO123", starts_at: "2021-01-01", ends_at: "2021-01-01", }) .then(({ promotion }) => { console.log(promotion) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/promotions' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "code": "{value}", "type": "{value}", "campaign_id": "{value}", "application_method": { "description": "{value}", "value": 1841223411171328, "currency_code": "{value}", "max_quantity": 2960098049654784, "type": "{value}", "target_type": "{value}", "allocation": "{value}", "target_rules": [], "buy_rules": [], "apply_to_quantity": 708643867590656, "buy_rules_min_quantity": 3167972149428224 } }' tags: - Promotions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPromotionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createPromotionsWorkflow x-events: [] /admin/promotions/rule-attribute-options/{rule_type}: get: operationId: GetPromotionsRuleAttributeOptionsRule_type summary: List Rule Attribute Options of a Rule Type x-sidebar-summary: List Potential Rule Attributes description: | Retrieve a list of potential rule attributes for the promotion and application method types specified in the query parameters. Only the attributes of the rule type specified in the path parameter are retrieved: - If `rule_type` is `rules`, the attributes of the promotion's type are retrieved. - If `rule_type` is `target-rules`, the target rules' attributes of the application method's type are retrieved. - If `rule_type` is `buy-rules`, the buy rules' attributes of the application method's type are retrieved. x-authenticated: true parameters: - name: rule_type in: path description: The rule type. required: true schema: type: string enum: - rules - target-rules - buy-rules - name: promotion_type in: query description: The promotion type to retrieve rules for. required: false schema: type: string title: promotion_type description: The promotion type to retrieve rules for. enum: - standard - buyget - name: application_method_type in: query description: The application method type to retrieve rules for. required: false schema: type: string title: application_method_type description: The application method type to retrieve rules for. enum: - fixed - percentage security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.listRuleAttributes("rules", "standard") .then(({ attributes }) => { console.log(attributes) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/promotions/rule-attribute-options/{rule_type}' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The list of attributes. required: - attributes properties: attributes: type: array description: The list of attributes. items: $ref: '#/components/schemas/AdminRuleAttributeOption' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}: get: operationId: GetPromotionsRuleValueOptionsRule_typeRule_attribute_id summary: List Rule Values Given a Rule Attribute x-sidebar-summary: List Rule Values description: | Retrieve all potential values for promotion rules and target and buy rules based on the specified rule attribute and type. For example, if you provide the ID of the `currency_code` rule attribute, and set `rule_type` to `rules`, a list of currencies are retrieved in label-value pairs. x-authenticated: true parameters: - name: rule_type in: path description: The rule type. required: true schema: type: string enum: - rules - target-rules - buy-rules - name: rule_attribute_id in: path description: The rule attribute's ID. required: true schema: type: string - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: promotion_type in: query description: The promotion type to retrieve rules for. required: false schema: type: string title: promotion_type description: The promotion type to retrieve rules for. enum: - standard - buyget - name: application_method_type in: query description: The application method type to retrieve rules for. required: false schema: type: string title: application_method_type description: The application method type to retrieve rules for. enum: - fixed - percentage security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.listRuleValues("rules", "attr_123") .then(({ values }) => { console.log(values) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The pagination fields. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The list of rule values. required: - values properties: values: type: array description: The list of rule values. items: $ref: '#/components/schemas/AdminRuleValueOption' description: The paginated list of rule values. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/promotions/{id}: get: operationId: GetPromotionsId summary: Get a Promotion description: Retrieve a promotion by its ID. You can expand the promotion's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.retrieve("promo_123") .then(({ promotion }) => { console.log(promotion) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/promotions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPromotionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostPromotionsId summary: Update a Promotion description: Update a promotion's details. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: allOf: - type: object description: The properties to update in a promotion. required: - campaign_id properties: code: type: string title: code description: The promotion's code. is_automatic: type: boolean title: is_automatic description: Whether the promotion is applied automatically. type: type: string description: The promotion's type. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/promotion/concepts#what-is-a-promotion enum: - standard - buyget campaign_id: type: string title: campaign_id description: The ID of the campaign that the promotion belongs to. application_method: type: object description: The properties to update in the application method. required: - id - description - max_quantity - currency_code - apply_to_quantity - buy_rules_min_quantity properties: id: type: string title: id description: The application method's ID. description: type: string title: description description: The application method's description. value: type: number title: value description: The discounted amount applied by the associated promotion based on the `type`. max_quantity: type: number title: max_quantity description: The max quantity allowed in the cart for the associated promotion to be applied. currency_code: type: string title: currency_code description: The application method's currency code. type: type: string description: The type of the application method indicating how the associated promotion is applied. enum: - fixed - percentage target_type: type: string description: The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order. enum: - order - shipping_methods - items allocation: type: string description: The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart. enum: - each - across apply_to_quantity: type: number title: apply_to_quantity description: The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a "Buy 2 shirts get 1 free", the value f this attribute is `1`. buy_rules_min_quantity: type: number title: buy_rules_min_quantity description: The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `2`. - type: object description: The properties to update in a promotion. properties: additional_data: type: object description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter. description: The properties to update in a promotion. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.update("promo_123", { code: "PROMO123", }) .then(({ promotion }) => { console.log(promotion) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/promotions/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "campaign_id": "{value}" }' tags: - Promotions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminPromotionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updatePromotionsWorkflow x-events: [] delete: operationId: DeletePromotionsId summary: Delete a Promotion description: Delete a promotion. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.delete("promo_123") .then(({ promotion }) => { console.log(promotion) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/promotions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The promotion's ID. object: type: string title: object description: The name of the deleted object. default: promotion deleted: type: boolean title: deleted description: Whether the promotion was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deletePromotionsWorkflow x-events: [] /admin/promotions/{id}/buy-rules/batch: post: operationId: PostPromotionsIdBuyRulesBatch summary: Manage the Buy Rules of a Promotion x-sidebar-summary: Manage Buy Rules description: Manage the buy rules of a `buyget` promotion to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The buy rules to create, update, or delete. properties: create: type: array description: The buy rules to create. items: $ref: '#/components/schemas/AdminCreatePromotionRule' update: type: array description: The buy rules to update. items: $ref: '#/components/schemas/AdminUpdatePromotionRule' delete: type: array description: The buy rules to delete. items: type: string title: delete description: A buy rule's ID. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/promotions/{id}/buy-rules/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The result of the batch operations. required: - created - updated - deleted properties: created: type: array description: The created buy rules. items: $ref: '#/components/schemas/AdminPromotionRule' updated: type: array description: The updated buy rules. items: $ref: '#/components/schemas/AdminPromotionRule' deleted: type: object description: The details of the deleted buy rules. required: - ids - object - deleted properties: ids: type: array description: The IDs of the buy rules that were deleted. items: type: string title: ids description: A buy rule's ID. object: type: string title: object description: The name of the object that was deleted. default: promotion-rule deleted: type: boolean title: deleted description: Whether the buy rules were deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchPromotionRulesWorkflow x-events: [] /admin/promotions/{id}/rules/batch: post: operationId: PostPromotionsIdRulesBatch summary: Manage a Promotion's Rules x-sidebar-summary: Manage Rules description: Manage the rules of a promotion to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The rules to create, update, or delete. properties: create: type: array description: The rules to create. items: $ref: '#/components/schemas/AdminCreatePromotionRule' update: type: array description: The rules to update. items: $ref: '#/components/schemas/AdminUpdatePromotionRule' delete: type: array description: The rules to delete. items: type: string title: delete description: A rule's ID. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/promotions/{id}/rules/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The result of the batch operations. required: - created - updated - deleted properties: created: type: array description: The created rules. items: $ref: '#/components/schemas/AdminPromotionRule' updated: type: array description: The updated rules. items: $ref: '#/components/schemas/AdminPromotionRule' deleted: type: object description: The details of the deleted buy rules. required: - ids - object - deleted properties: ids: type: array description: The IDs of the deleted rules. items: type: string title: ids description: A rule's ID. object: type: string title: object description: The name of the object that was deleted. default: promotion-rule deleted: type: boolean title: deleted description: Whether the rules were deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchPromotionRulesWorkflow x-events: [] /admin/promotions/{id}/target-rules/batch: post: operationId: PostPromotionsIdTargetRulesBatch summary: Manage Target Rules of a Promotion x-sidebar-summary: Manage Target Rules description: Manage the target rules of a promotion to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The target rules to create, update, or delete. properties: create: type: array description: The target rules to create. items: $ref: '#/components/schemas/AdminCreatePromotionRule' update: type: array description: The target rules to update. items: $ref: '#/components/schemas/AdminUpdatePromotionRule' delete: type: array description: The target rules to delete. items: type: string title: delete description: A target rule's ID. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/promotions/{id}/target-rules/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The result of the batch operations. required: - created - updated - deleted properties: created: type: array description: The created target rules. items: $ref: '#/components/schemas/AdminPromotionRule' updated: type: array description: The updated target rules. items: $ref: '#/components/schemas/AdminPromotionRule' deleted: type: object description: The details of the deleted target rules. required: - ids - object - deleted properties: ids: type: array description: The IDs of deleted target rules. items: type: string title: ids description: A target rule's ID. object: type: string title: object description: The name of the object that was deleted. default: promotion-rule deleted: type: boolean title: deleted description: Whether the target rules were deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchPromotionRulesWorkflow x-events: [] /admin/promotions/{id}/{rule_type}: get: operationId: GetPromotionsIdRule_type summary: List Rules of a Promotion x-sidebar-summary: List Rules description: | Retrieve a list of rules in a promotion. The type of rules retrieved depend on the value of the `rule_type` path parameter: - If `rule_type` is `rules`, the promotion's rules are retrivied. - If `rule_type` is `target-rules`, the target rules of the promotion's application method are retrieved. - If `rule_type` is `buy-rules`, the buy rules of the promotion's application method are retrieved. x-authenticated: true parameters: - name: id in: path description: The promotion's ID. required: true schema: type: string - name: rule_type in: path description: The type of rules to retrieve. required: true schema: type: string enum: - rules - target-rules - buy-rules - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.promotion.listRules("promo_123", "rules") .then(({ rules }) => { console.log(rules) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/promotions/{id}/{rule_type}' \ -H 'Authorization: Bearer {access_token}' tags: - Promotions responses: '200': description: OK content: application/json: schema: type: object description: The list of promotion rules. required: - rules properties: rules: type: array description: The list of promotion rules. items: $ref: '#/components/schemas/AdminPromotionRule' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/refund-reasons: get: operationId: GetRefundReasons summary: List Refund Reasons description: Retrieve a list of refund reasons. The refund reasons can be filtered by fields such as `id`. The refund reasons can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a refund reason's ID. - type: array description: Filter by refund reason IDs. items: type: string title: id description: A refund reason ID. - name: q in: query description: Search term to filter the refund reason's searchable properties. required: false schema: type: string title: q description: Search term to filter the refund reason's searchable properties. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.refundReason.list() .then(({ refund_reasons, count, limit, offset }) => { console.log(refund_reasons) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/refund-reasons' \ -H 'Authorization: Bearer {access_token}' tags: - Refund Reasons responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of refund reasons. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of refund reasons. required: - refund_reasons properties: refund_reasons: type: array description: The refund reason's refund reasons. items: $ref: '#/components/schemas/AdminRefundReason' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostRefundReasons summary: Create Refund Reason description: Create a refund reason. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateRefundReason' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/refund-reasons' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "label": "{value}", "description": "{value}" }' tags: - Refund Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefundReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createRefundReasonsWorkflow x-events: [] /admin/refund-reasons/{id}: get: operationId: GetRefundReasonsId summary: Get a Refund Reason description: Retrieve a refund reason by its ID. You can expand the refund reason's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The refund reason's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/refund-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Refund Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefundReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostRefundReasonsId summary: Update a Refund Reason description: Update a refund reason's details. x-authenticated: true parameters: - name: id in: path description: The refund reason's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the refund reason. properties: label: type: string title: label description: The refund reason's label. description: type: string title: description description: The refund reason's description. x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/refund-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "{value}" }' tags: - Refund Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefundReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateRefundReasonsWorkflow x-events: [] delete: operationId: DeleteRefundReasonsId summary: Delete a Refund Reason description: Delete a refund reason. x-authenticated: true parameters: - name: id in: path description: The refund reason's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/refund-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Refund Reasons responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The refund reason's ID. object: type: string title: object description: The name of the deleted object. default: refund_reason deleted: type: boolean title: deleted description: Whether the refund reason was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteRefundReasonsWorkflow x-events: [] /admin/regions: get: operationId: GetRegions summary: List Regions description: Retrieve a list of regions. The regions can be filtered by fields such as `id`. The regions can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the region's searchable properties. required: false schema: type: string title: q description: Search term to filter the region's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a region's ID. - type: array description: Filter by region IDs. items: type: string title: id description: A region's ID. - name: name in: query required: false schema: oneOf: - type: string title: name description: Filter by a region's name. - type: array description: Filter by region names. items: type: string title: name description: A region's name. - name: created_at in: query description: Filter by a region's creation date. required: false schema: type: object description: Filter by a region's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a region's update date. required: false schema: type: object description: Filter by a region's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a region's deletion date. required: false schema: type: object description: Filter by a region's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: currency_code in: query required: false schema: oneOf: - type: string title: currency_code description: The region's currency code. - type: array description: The region's currency code. items: type: string title: currency_code description: The currency code's details. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.region.list() .then(({ regions, count, limit, offset }) => { console.log(regions) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/regions' \ -H 'Authorization: Bearer {access_token}' tags: - Regions responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of regions. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of regions. required: - regions properties: regions: type: array description: The list of regions. items: $ref: '#/components/schemas/AdminRegion' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostRegions summary: Create Region description: Create a region. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateRegion' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.region.create({ name: "United States", currency_code: "usd", }) .then(({ region }) => { console.log(region) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/regions' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Heloise", "currency_code": "{value}", "metadata": {} }' tags: - Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createRegionsWorkflow x-events: - name: region.created payload: |- ```ts [{ id, // The ID of the region }] ``` description: Emitted when regions are created. deprecated: false /admin/regions/{id}: get: operationId: GetRegionsId summary: Get a Region description: Retrieve a region by its ID. You can expand the region's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The region's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.region.retrieve("region_123") .then(({ region }) => { console.log(region) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/regions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostRegionsId summary: Update a Region description: Update a region's details. x-authenticated: true parameters: - name: id in: path description: The region's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The propeties to update in the region. properties: name: type: string title: name description: The region's name. currency_code: type: string title: currency_code description: The region's currency code. countries: type: array description: The region's countries. items: type: string title: countries description: A country code. automatic_taxes: type: boolean title: automatic_taxes description: Whether taxes are calculated automatically for carts in the region. payment_providers: type: array description: The payment providers enabled in the region. items: type: string title: payment_providers description: A payment provider's ID. metadata: type: object description: The region's metadata. Can hold custom key-value pairs. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the prices in the region are tax inclusive. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.region.update("region_123", { name: "United States", }) .then(({ region }) => { console.log(region) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/regions/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateRegionsWorkflow x-events: - name: region.updated payload: |- ```ts [{ id, // The ID of the region }] ``` description: Emitted when regions are updated. deprecated: false delete: operationId: DeleteRegionsId summary: Delete a Region description: Delete a region. x-authenticated: true parameters: - name: id in: path description: The region's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.region.delete("region_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/regions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Regions responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The region's ID. object: type: string title: object description: The name of the deleted object. default: region deleted: type: boolean title: deleted description: Whether the region was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteRegionsWorkflow x-events: - name: region.deleted payload: |- ```ts [{ id, // The ID of the region }] ``` description: Emitted when regions are deleted. deprecated: false /admin/reservations: get: operationId: GetReservations summary: List Reservations description: Retrieve a list of reservations. The reservations can be filtered by fields such as `id`. The reservations can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: location_id in: query required: false schema: oneOf: - type: string title: location_id description: Filter by a location's ID to retrieve its associated reservations. - type: array description: Filter by location IDs to retrieve its associated reservations. items: type: string title: location_id description: A location ID. - name: inventory_item_id in: query required: false schema: oneOf: - type: string title: inventory_item_id description: Filter by an inventory item's ID to retrieve its associated reservations. - type: array description: Filter by inventory item IDs to retrieve its associated reservations. items: type: string title: inventory_item_id description: An inventory item ID - name: line_item_id in: query required: false schema: oneOf: - type: string title: line_item_id description: Filter by a line item's ID to retrieve its associated reservations. - type: array description: Filter by line item IDs to retrieve its associated reservations. items: type: string title: line_item_id description: A line item ID - name: created_by in: query required: false schema: oneOf: - type: string title: created_by description: Filter by the ID of a user to retrieve the reservations they created. - type: array description: Filter by user IDs to retrieve the reservations they created. items: type: string title: created_by description: A user's ID. - name: description in: query required: false schema: oneOf: - type: string title: description description: Filter by a reservation's description. This filter applies a full-text match. To search by keywords, use the `q` query parameter instead. - type: object description: Apply filters on the reservation's description. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: created_at in: query description: Filter by a reservation's creation date. required: false schema: type: object description: Filter by a reservation's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a reservation's update date. required: false schema: type: object description: Filter by a reservation's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a reservation's deletion date. required: false schema: type: object description: Filter by a reservation's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.reservation.list() .then(({ reservations, count, limit, offset }) => { console.log(reservations) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/reservations' \ -H 'Authorization: Bearer {access_token}' tags: - Reservations responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of reservations. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of reservations. required: - reservations properties: reservations: type: array description: The list of reservations. items: $ref: '#/components/schemas/AdminReservation' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReservations summary: Create Reservation description: Create a reservation. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateReservation' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.reservation.create({ inventory_item_id: "iitem_123", location_id: "sloc_123", quantity: 10, }) .then(({ reservation }) => { console.log(reservation) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/reservations' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "line_item_id": "{value}", "location_id": "{value}", "inventory_item_id": "{value}", "quantity": 3268935814217728, "description": "{value}", "metadata": {} }' tags: - Reservations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReservationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createReservationsWorkflow x-events: [] /admin/reservations/{id}: get: operationId: GetReservationsId summary: Get a Reservation description: Retrieve a reservation by its ID. You can expand the reservation's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The reservation's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.reservation.retrieve("res_123") .then(({ reservation }) => { console.log(reservation) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/reservations/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Reservations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReservationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReservationsId summary: Update a Reservation description: Update a reservation's details. x-authenticated: true parameters: - name: id in: path description: The reservation's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the reservation. properties: location_id: type: string title: location_id description: The ID of the associated location. quantity: type: number title: quantity description: The reserved quantity. description: type: string title: description description: The reservation's description. metadata: type: object description: The reservation's metadata. Can hold custom key-value pairs. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.reservation.update("res_123", { quantity: 20, }) .then(({ reservation }) => { console.log(reservation) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/reservations/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "{value}", "metadata": {} }' tags: - Reservations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReservationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReservationsWorkflow x-events: [] delete: operationId: DeleteReservationsId summary: Delete a Reservation description: Delete a reservation. x-authenticated: true parameters: - name: id in: path description: The reservation's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.reservation.delete("res_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/reservations/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Reservations responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The reservation's ID. object: type: string title: object description: The name of the deleted object. default: reservation deleted: type: boolean title: deleted description: Whether the reservation was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteReservationsWorkflow x-events: [] /admin/return-reasons: get: operationId: GetReturnReasons summary: List Return Reasons description: Retrieve a list of return reasons. The return reasons can be filtered by fields such as `id`. The return reasons can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the return reason's searchable properties. required: false schema: type: string title: q description: Search term to filter the return reason's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a return reason ID. - type: array description: Filter by return reason IDs. items: type: string title: id description: A return reason ID. - name: value in: query required: false schema: oneOf: - type: string title: value description: Filter by a return reason's value. - type: array description: Filter by return reason values. items: type: string title: value description: A return reason value. - name: label in: query required: false schema: oneOf: - type: string title: label description: Filter by a return reason's label. - type: array description: Filter by return reason labels. items: type: string title: label description: A return reason label. - name: description in: query required: false schema: oneOf: - type: string title: description description: Filter by a description. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the `q` query parameter instead. - type: array description: Filter by descriptions. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the `q` query parameter instead. items: type: string title: description description: A return reason's description. - name: parent_return_reason_id in: query required: false schema: oneOf: - type: string title: parent_return_reason_id description: Filter by a return reason's ID to retrieve its child return reasons. - type: array description: Filter by return reason IDs to retrieve their child return reasons. items: type: string title: parent_return_reason_id description: The return reason's ID. - name: created_at in: query description: Filter by a return reason's creation date. required: false schema: type: object description: Filter by a return reason's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a return reason's update date. required: false schema: type: object description: Filter by a return reason's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a return reason's deletion date. required: false schema: type: object description: Filter by a return reason's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.returnReason.list() .then(({ return_reasons, count, limit, offset }) => { console.log(return_reasons) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/return-reasons' \ -H 'Authorization: Bearer {access_token}' tags: - Return Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnReasonListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReturnReasons summary: Create Return Reason description: Create a return reason. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateReturnReason' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.returnReason.create({ value: "refund", label: "Refund", }) .then(({ return_reason }) => { console.log(return_reason) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/return-reasons' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "value": "{value}", "label": "{value}" }' tags: - Return Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createReturnReasonsWorkflow x-events: [] /admin/return-reasons/{id}: get: operationId: GetReturnReasonsId summary: Get a Return Reason description: Retrieve a return reason by its ID. You can expand the return reason's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The return reason's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.returnReason.retrieve("ret_123") .then(({ return_reason }) => { console.log(return_reason) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/return-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Return Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReturnReasonsId summary: Update a Return Reason description: Update a return reason's details. x-authenticated: true parameters: - name: id in: path description: The return reason's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateReturnReason' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.returnReason.update("ret_123", { value: "refund", label: "Refund", }) .then(({ return_reason }) => { console.log(return_reason) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/return-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Return Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnReasonResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReturnReasonsWorkflow x-events: [] delete: operationId: DeleteReturnReasonsId summary: Delete a Return Reason description: Delete a return reason. x-authenticated: true parameters: - name: id in: path description: The return reason's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.returnReason.delete("ret_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/return-reasons/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Return Reasons responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnReasonDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteReturnReasonsWorkflow x-events: [] /admin/returns: get: operationId: GetReturns summary: List Returns description: Retrieve a list of returns. The returns can be filtered by fields such as `id`. The returns can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a return's ID. - type: array description: Filter by return IDs. items: type: string title: id description: A return ID. - name: status in: query required: false schema: oneOf: - type: string title: status description: Filter by a return status. - type: array description: Filter by return statuses. items: type: string title: status description: A return status. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: sales_channel_id in: query description: Filter by sales channel IDs to retrieve their associated returns. required: false schema: type: array description: Filter by sales channel IDs to retrieve their associated returns. items: type: string title: sales_channel_id description: A sales channel's ID. - name: region_id in: query description: Filter by region IDs to retrieve their associated returns. required: false schema: oneOf: - type: string title: region_id description: The return's region id. - type: array description: The return's region id. items: type: string title: region_id description: The region id's details. - name: q in: query description: Search term to filter the return's searchable properties. required: false schema: type: string title: q description: Search term to filter the return's searchable properties. - name: created_at in: query description: Filter by the return's creation date. required: false schema: type: object description: Filter by the return's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by the return's update date. required: false schema: type: object description: Filter by the return's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: An exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value not to match. $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by multiple exact matches. items: type: string title: $eq description: The value to match. $ne: type: string title: $ne description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: The value to match. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: The value to not match $not: oneOf: - type: string title: $not description: Filter by values not matching this parameter - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the values of this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The value to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching those in this parameter. items: type: string title: $not description: The values to not match. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: The values to match. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: The values to match. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: The values to match. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: customer_id in: query required: false schema: oneOf: - type: string title: customer_id description: The return's customer id. - type: array description: The return's customer id. items: type: string title: customer_id description: The customer id's details. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.list() .then(({ returns, count, limit, offset }) => { console.log(returns) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/returns' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of returns. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of returns. required: - returns properties: returns: type: array description: The return's returns. items: $ref: '#/components/schemas/AdminReturn' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReturns summary: Create Return description: Create a return. The return can later be requested or confirmed. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.initiateRequest({ order_id: "order_123", }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "order_id": "{value}", "items": [ { "id": "id_7DO5H2LbSN3p7IzB", "quantity": 1357590174892032, "reason_id": "{value}", "note": "{value}" } ], "return_shipping": { "option_id": "{value}", "price": 5112171463704576 }, "internal_note": "{value}", "location_id": "{value}" }' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginReturnOrderWorkflow x-events: [] /admin/returns/{id}: get: operationId: GetReturnsId summary: Get a Return description: Retrieve a return by its ID. You can expand the return's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.retrieve("return_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/returns/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostReturnsId summary: Update a Return description: Update a return's details. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsReturnReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.updateRequest("return_123", { location_id: "sloc_123", }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReturnWorkflow x-events: [] /admin/returns/{id}/cancel: post: operationId: PostReturnsIdCancel summary: Cancel a return. description: Cancel a return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.cancel("return_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/cancel' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostCancelReturnReqSchema' x-workflow: cancelReturnWorkflow x-events: [] /admin/returns/{id}/dismiss-items: post: operationId: PostReturnsIdDismissItems summary: Add Damaged Items to Return x-sidebar-summary: Add Damaged Items description: Add damaged items, whose quantity is to be dismissed, to a return. These items will have the action `RECEIVE_DAMAGED_RETURN_ITEM`. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsReceiveItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.dismissItems("return_123", { items: [ { id: "orli_123", quantity: 1 }, ], }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: dismissItemReturnRequestWorkflow x-events: [] /admin/returns/{id}/dismiss-items/{action_id}: post: operationId: PostReturnsIdDismissItemsAction_id summary: Update Damaged Item of Return x-sidebar-summary: Update Damaged Item description: | Update a damaged item, whose quantity is to be dismissed, in the return by the ID of the item's `RECEIVE_DAMAGED_RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsDismissItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.updateDismissItem("return_123", "orchach_123", { quantity: 2, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReceiveItemReturnRequestWorkflow x-events: [] delete: operationId: DeleteReturnsIdDismissItemsAction_id summary: Remove Damaged Item from Return x-sidebar-summary: Remove Damaged Item description: | Remove a damaged item, whose quantity is to be dismissed, in the return by the ID of the item's `RECEIVE_DAMAGED_RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.removeDismissItem("return_123", "orchach_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemReturnActionWorkflow x-events: [] /admin/returns/{id}/receive: post: operationId: PostReturnsIdReceive summary: Start Return Receival description: Start a return receival process to be later confirmed using the `/admin/returns/:id/receive/confirm` API route. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReceiveReturnsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.initiateReceive("return_123", { internal_note: "Return received by the customer", }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/receive' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "return_id": "{value}", "items": [ { "id": "id_qfy3t6cU7m8O5cJ5zs", "quantity": 6429460591017984, "reason_id": "{value}", "note": "{value}" } ], "internal_note": "{value}" }' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrderReturnResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: beginReceiveReturnWorkflow x-events: [] delete: operationId: DeleteReturnsIdReceive summary: Cancel Return Receival description: Cancel the receival process previously started, and hasn't been confirmed, of a return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.cancelReceive("return_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/receive' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The return's ID. object: type: string title: object description: The name of the returned object. default: return deleted: type: boolean title: deleted description: Whether the return was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelReturnReceiveWorkflow x-events: [] /admin/returns/{id}/receive-items: post: operationId: PostReturnsIdReceiveItems summary: Add Received Items to Return x-sidebar-summary: Add Received Items description: Add received items in a return. These items will have the action `RECEIVE_RETURN_ITEM`. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsReceiveItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.receiveItems("return_123", { items: [ { id: "item_123", quantity: 1 }, ], }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/receive-items' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: receiveItemReturnRequestWorkflow x-events: [] /admin/returns/{id}/receive-items/{action_id}: post: operationId: PostReturnsIdReceiveItemsAction_id summary: Update a Received Item in a Return x-sidebar-summary: Update Received Item description: | Update a received item in the return by the ID of the item's `RECEIVE_RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the received item's `RECEIVE_RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsReceiveItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.updateReceiveItem("return_123", "orchach_123", { quantity: 2, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReceiveItemReturnRequestWorkflow x-events: [] delete: operationId: DeleteReturnsIdReceiveItemsAction_id summary: Remove a Received Item from Return x-sidebar-summary: Remove Received Item description: | Remove a received item in the return by the ID of the item's `RECEIVE_RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the received item's `RECEIVE_RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.removeReceiveItem("return_123", "orchach_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemReceiveReturnActionWorkflow x-events: [] /admin/returns/{id}/receive/confirm: post: operationId: PostReturnsIdReceiveConfirm summary: Confirm Return Receival description: | Confirm that a return has been received. This updates the quantity of the items received, if not damaged, and reflects the changes on the order. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsConfirmRequestReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.confirmReceive("return_123", { no_notification: true, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/receive/confirm' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmReturnReceiveWorkflow x-events: - name: order.return_received payload: |- ```ts { order_id, // The ID of the order return_id, // The ID of the return } ``` description: Emitted when a return is marked as received. deprecated: false /admin/returns/{id}/request: post: operationId: PostReturnsIdRequest summary: Confirm Return Request description: | Confirm a requested return. The changes are applied on the inventory quantity and the order only after the return has been confirmed as received using the `/admin/returns/:id/received/confirm`. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsConfirmRequestReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.confirmRequest("return_123", { no_notification: true, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: confirmReturnRequestWorkflow x-events: - name: order.return_requested payload: |- ```ts { order_id, // The ID of the order return_id, // The ID of the return } ``` description: Emitted when a return request is confirmed. deprecated: false delete: operationId: DeleteReturnsIdRequest summary: Cancel Return Request description: Cancel a requested return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.cancelRequest("return_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/request' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The return's ID. object: type: string title: object description: The name of the deleted object. default: return deleted: type: boolean title: deleted description: Whether the return was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: cancelReturnRequestWorkflow x-events: [] /admin/returns/{id}/request-items: post: operationId: PostReturnsIdRequestItems summary: Add Requested Items to Return x-sidebar-summary: Add Items description: Add items that are requested to be returned. These items will have the action `RETURN_ITEM`. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsRequestItemsReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.addReturnItem("return_123", { id: "orlitem_123", quantity: 1, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/request-items' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: requestItemReturnWorkflow x-events: [] /admin/returns/{id}/request-items/{action_id}: post: operationId: PostReturnsIdRequestItemsAction_id summary: Update Requested Item in Return x-sidebar-summary: Update Requested Item description: | Update a requested item to be returned by the ID of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the item's `RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsRequestItemsActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.updateReturnItem("return_123", "orchach_123", { quantity: 2, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/request-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateRequestItemReturnWorkflow x-events: [] delete: operationId: DeleteReturnsIdRequestItemsAction_id summary: Remove Item from Return x-sidebar-summary: Remove Item description: | Remove a requested item to be returned by the ID of the item's `RETURN_ITEM` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the item's `RETURN_ITEM` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.removeReturnItem("return_123", "orchach_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/request-items/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeItemReturnActionWorkflow x-events: [] /admin/returns/{id}/shipping-method: post: operationId: PostReturnsIdShippingMethod summary: Add a Shipping Method to a Return x-sidebar-summary: Add Shipping Method description: Add a shipping method to a return. The shipping method will have a `SHIPPING_ADD` action. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsShippingReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.addReturnShipping("return_123", { shipping_option_id: "so_123", }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/shipping-method' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "shipping_option_id": "{value}" }' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createReturnShippingMethodWorkflow x-events: [] /admin/returns/{id}/shipping-method/{action_id}: post: operationId: PostReturnsIdShippingMethodAction_id summary: Update a Shipping Method of a Return x-sidebar-summary: Update Shipping Method description: | Update a shipping method of the return by the ID of the item's `SHIPPING_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminPostReturnsShippingActionReqSchema' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.updateReturnShipping("return_123", "orchach_123", { custom_amount: 100, }) .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateReturnShippingMethodWorkflow x-events: [] delete: operationId: DeleteReturnsIdShippingMethodAction_id summary: Remove Shipping Method from Return x-sidebar-summary: Remove Shipping Method description: | Remove a shipping method of the return by the ID of the item's `SHIPPING_ADD` action. Every item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. x-authenticated: true parameters: - name: id in: path description: The return's ID. required: true schema: type: string - name: action_id in: path description: The ID of the shipping method's `SHIPPING_ADD` action. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.return.deleteReturnShipping("return_123", "orchach_123") .then(({ return }) => { console.log(return) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Returns responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminReturnPreviewResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeReturnShippingMethodWorkflow x-events: [] /admin/sales-channels: get: operationId: GetSalesChannels summary: List Sales Channels description: Retrieve a list of sales channels. The sales channels can be filtered by fields such as `id`. The sales channels can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the sales channel's searchable properties. required: false schema: type: string title: q description: Search term to filter the sales channel's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a sales channel ID. - type: array description: Filter by sales channel IDs. items: type: string title: id description: A sales channel ID. - name: name in: query required: false schema: oneOf: - type: string title: name description: Filter by a sales channel name. - type: array description: Filter by sales channel names. items: type: string title: name description: A sales channel name. - name: description in: query description: The sales channel's description. required: false schema: type: string title: description description: Filter by a description. This filter matches an entire description. To search by terms or keywords, use the `q` query parameter instead. - name: is_disabled in: query description: Filter by whether the sales channel is disabled. required: false schema: type: boolean title: is_disabled description: Filter by whether the sales channel is disabled. - name: created_at in: query description: Filter by a sales channel's creation date. required: false schema: type: object description: Filter by a sales channel's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a sales channel's update date. required: false schema: type: object description: Filter by a sales channel's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a sales channel's deletion date. required: false schema: type: object description: Filter by a sales channel's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: location_id in: query required: false schema: oneOf: - type: string title: location_id description: Filter by a location ID to retrieve its associated sales channels. - type: array description: Filter by location IDs to retrieve their associated sales channels. items: type: string title: location_id description: A location ID. - name: publishable_key_id in: query required: false schema: oneOf: - type: string title: publishable_key_id description: Filter by a publishable API key's ID to retrieve its associated sales channels. - type: array description: Filter by publishable API key IDs to retrieve their associated sales channels. items: type: string title: publishable_key_id description: A publishable API key ID. - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.list() .then(({ sales_channels, count, limit, offset }) => { console.log(sales_channels) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/sales-channels' \ -H 'Authorization: Bearer {access_token}' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of sales channels. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of sales channels. required: - sales_channels properties: sales_channels: type: array description: The list of sales channels. items: $ref: '#/components/schemas/AdminSalesChannel' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostSalesChannels summary: Create Sales Channel description: Create a sales channel. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateSalesChannel' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.create({ name: "Storefront", }) .then(({ salesChannel }) => { console.log(salesChannel) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/sales-channels' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Linnea", "description": "{value}", "metadata": {} }' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminSalesChannelResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createSalesChannelsWorkflow x-events: - name: sales-channel.created payload: |- ```ts [{ id, // The ID of the sales channel }] ``` description: Emitted when sales channels are created. deprecated: false /admin/sales-channels/{id}: get: operationId: GetSalesChannelsId summary: Get a Sales Channel description: Retrieve a sales channel by its ID. You can expand the sales channel's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The sales channel's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.retrieve("sc_123") .then(({ sales_channel }) => { console.log(sales_channel) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/sales-channels/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminSalesChannelResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostSalesChannelsId summary: Update a Sales Channel description: Update a sales channel's details. x-authenticated: true parameters: - name: id in: path description: The sales channel's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateSalesChannel' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.update( "sc_123", { name: "Storefront", } ) .then(({ salesChannel }) => { console.log(salesChannel) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/sales-channels/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "{value}", "metadata": {} }' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminSalesChannelResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateSalesChannelsWorkflow x-events: - name: sales-channel.updated payload: |- ```ts [{ id, // The ID of the sales channel }] ``` description: Emitted when sales channels are updated. deprecated: false delete: operationId: DeleteSalesChannelsId summary: Delete a Sales Channel description: Delete a sales channel. x-authenticated: true parameters: - name: id in: path description: The sales channel's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.delete("sc_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/sales-channels/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminSalesChannelDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteSalesChannelsWorkflow x-events: - name: sales-channel.deleted payload: |- ```ts [{ id, // The ID of the sales channel }] ``` description: Emitted when sales channels are deleted. deprecated: false /admin/sales-channels/{id}/products: post: operationId: PostSalesChannelsIdProducts summary: Manage Products in Sales Channel x-sidebar-summary: Manage Products description: Manage products in a sales channel to add or remove them from the channel. x-authenticated: true parameters: - name: id in: path description: The sales channel's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The products to add or remove from the channel. properties: add: type: array description: The products to add to the sales channel. items: type: string title: add description: A product's ID. remove: type: array description: The products to remove from the sales channel. items: type: string title: remove description: A product's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.salesChannel.batchProducts("sc_123", { add: ["prod_123", "prod_456"], remove: ["prod_789"] }) .then(({ sales_channel }) => { console.log(sales_channel) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/sales-channels/{id}/products' \ -H 'Authorization: Bearer {access_token}' tags: - Sales Channels responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminSalesChannelResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: linkProductsToSalesChannelWorkflow x-events: [] /admin/shipping-options: get: operationId: GetShippingOptions summary: List Shipping Options description: Retrieve a list of shipping options. The shipping options can be filtered by fields such as `id`. The shipping options can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a shipping option ID. - type: array description: Filter by shipping option IDs. items: type: string title: id description: A shipping option's ID. - name: q in: query description: Search term to filter the shipping option's searchable properties. required: false schema: type: string title: q description: Search term to filter the shipping option's searchable properties. - name: service_zone_id in: query required: false schema: oneOf: - type: string title: service_zone_id description: Filter by a service zone's ID to retrieve its associated shipping options. - type: array description: Filter by service zone IDs to retrieve their associated shipping options. items: type: string title: service_zone_id description: A service zone ID. - name: shipping_profile_id in: query required: false schema: oneOf: - type: string title: shipping_profile_id description: Filter by a shipping profile's ID to retrieve its associated shipping options. - type: array description: Filter by shipping profile IDs to retrieve their associated shipping options. items: type: string title: shipping_profile_id description: A shipping profile ID. - name: provider_id in: query required: false schema: oneOf: - type: string title: provider_id description: Filter by a fulfillment provider's ID to retrieve its associated shipping options. - type: array description: Filter by fulfillment provider IDs to retrieve their associated shipping options. items: type: string title: provider_id description: A fulfillment provider ID. - name: shipping_option_type_id in: query required: false schema: oneOf: - type: string title: shipping_option_type_id description: Filter by a shipping option type's ID to retrieve its associated shipping options. - type: array description: Filter by shipping option type IDs to retrieve its associated shipping options. items: type: string title: shipping_option_type_id description: A shipping option type ID. - name: created_at in: query description: Filter by a shipping option's creation date. required: false schema: type: object description: Filter by a shipping option's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a shipping option's update date. required: false schema: type: object description: Filter by a shipping option's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a shipping option's deletion date. required: false schema: type: object description: Filter by a shipping option's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: stock_location_id in: query required: false schema: oneOf: - type: string title: stock_location_id description: Filter by a location ID to retrieve its associated shipping option. - type: array description: Filter by location IDs to retrieve their associated shipping option. items: type: string title: stock_location_id description: A stock location's ID. - name: is_return in: query description: Filter by whether the shipping option is used for returns. required: false schema: type: boolean title: is_return description: Filter by whether the shipping option is used for returns. - name: admin_only in: query description: Filter by whether the shipping option is used by admin users only. required: false schema: type: boolean title: admin_only description: Filter by whether the shipping option is used by admin users only. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.list() .then(({ shipping_options, count, limit, offset }) => { console.log(shipping_options) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/shipping-options' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of shipping options. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of shipping options. required: - shipping_options properties: shipping_options: type: array description: The list of shipping options. items: type: object '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostShippingOptions summary: Create Shipping Option description: Create a shipping option. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateShippingOption' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.create({ name: "Standard Shipping", profile_id: "shp_123", }) .then(({ shipping_option }) => { console.log(shipping_option) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/shipping-options' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Julie", "service_zone_id": "{value}", "shipping_profile_id": "{value}", "price_type": "{value}", "provider_id": "{value}", "type": { "label": "{value}", "description": "{value}", "code": "{value}" }, "prices": [] }' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingOptionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createShippingOptionsWorkflow x-events: [] /admin/shipping-options/{id}: get: operationId: GetShippingOptionsId summary: Get a Shipping Option description: Retrieve a shipping option by its ID. You can expand the shipping option's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The shipping option's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.retrieve("so_123") .then(({ shipping_option }) => { console.log(shipping_option) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/shipping-options/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingOptionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostShippingOptionsId summary: Update a Shipping Option description: Update a shipping option's details. x-authenticated: true parameters: - name: id in: path description: The shipping option's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the shipping option. properties: name: type: string title: name description: The shipping option's name. data: type: object description: The shipping option's data that is useful for third-party providers. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property price_type: type: string description: | The type of the shipping option's price. If `calculated`, its price is retrieved by the associated fulfillment provider during checkout. If `flat`, its price is set in the `prices` property. enum: - calculated - flat provider_id: type: string title: provider_id description: The ID of the associated fulfillment provider that is used to process the option. shipping_profile_id: type: string title: shipping_profile_id description: The ID of the shipping profile this shipping option belongs to. type: type: object description: The shipping option's type. required: - code - description - label properties: label: type: string title: label description: The type's label. description: type: string title: description description: The type's description. code: type: string title: code description: The type's code. prices: type: array description: The shipping option's prices. If the `price_type` is `calculated`, pass an empty array. items: oneOf: - type: object description: The shipping option's price for a currency code. properties: id: type: string title: id description: The ID of an existing price. currency_code: type: string title: currency_code description: The price's currency code. amount: type: number title: amount description: The price's amount. - type: object description: The shipping option's price for a region. properties: id: type: string title: id description: The ID of an existing price. region_id: type: string title: region_id description: The ID of the associated region. amount: type: number title: amount description: The price's amount. rules: type: array description: The shipping option's rules. items: oneOf: - type: object description: The details of a new shipping option rule. required: - operator - attribute - value properties: operator: type: string description: The operator used to check whether a rule applies. enum: - in - eq - ne - gt - gte - lt - lte - nin attribute: type: string title: attribute description: The name of a property or table that the rule applies to. example: customer_group value: oneOf: - type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 - type: array description: Values of the attribute that enable this rule. items: type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 - type: object description: Update the properties of an existing rule. required: - id - operator - attribute - value properties: id: type: string title: id description: The rule's ID. operator: type: string description: The operator used to check whether a rule applies. enum: - in - eq - ne - gt - gte - lt - lte - nin attribute: type: string title: attribute description: The name of a property or table that the rule applies to. example: customer_group value: oneOf: - type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 - type: array description: Values of the attribute that enable this rule. items: type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.update("so_123", { name: "Standard Shipping", }) .then(({ shipping_option }) => { console.log(shipping_option) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/shipping-options/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingOptionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateShippingOptionsWorkflow x-events: [] delete: operationId: DeleteShippingOptionsId summary: Delete a Shipping Option description: Delete a shipping option. x-authenticated: true parameters: - name: id in: path description: The shipping option's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.delete("so_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/shipping-options/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingOptionDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteShippingOptionsWorkflow x-events: [] /admin/shipping-options/{id}/rules/batch: post: operationId: PostShippingOptionsIdRulesBatch summary: Manage the Rules of a Shipping Option x-sidebar-summary: Manage Rules description: Manage the rules of a shipping option to create, update, or delete them. x-authenticated: true parameters: - name: id in: path description: The shipping option's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The rules to create, update, or delete. properties: create: type: array description: The shipping option rules to create. items: $ref: '#/components/schemas/AdminCreateShippingOptionRule' update: type: array description: The shipping option rules to update. items: $ref: '#/components/schemas/AdminUpdateShippingOptionRule' delete: type: array description: The shipping option rules to delete. items: type: string title: delete description: A rule's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingOption.updateRules("so_123", { create: [{ attribute: "enabled_in_store", operator: "eq", value: "true" }], }) .then(({ shipping_option }) => { console.log(shipping_option) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/shipping-options/{id}/rules/batch' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Options responses: '200': description: OK content: application/json: schema: type: object description: The batch operation's result. required: - created - updated - deleted properties: created: type: array description: The created shipping option rules. items: $ref: '#/components/schemas/AdminShippingOptionRule' updated: type: array description: The updated shipping option rules. items: $ref: '#/components/schemas/AdminShippingOptionRule' deleted: type: object description: The details of the deleted shipping option rules. required: - ids - object - deleted properties: ids: type: array description: The IDs of the deleted shipping option rules. items: type: string title: ids description: A shipping option rule's ID. object: type: string title: object description: The name of the deleted object. default: shipping_option_rule deleted: type: boolean title: deleted description: The deleted's details. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchShippingOptionRulesWorkflow x-events: [] /admin/shipping-profiles: get: operationId: GetShippingProfiles summary: List Shipping Profiles description: Retrieve a list of shipping profiles. The shipping profiles can be filtered by fields such as `id`. The shipping profiles can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a shipping profile's ID. - type: array description: Filter by shipping profile IDs. items: type: string title: id description: A shipping profile ID. - name: q in: query description: Search term to filter the shipping profile's searchable properties. required: false schema: type: string title: q description: Search term to filter the shipping profile's searchable properties. - name: type in: query description: Filter by a shipping profile's type. required: false schema: type: string title: type description: Filter by a shipping profile's type. - name: name in: query description: Filter by a shipping profile's name. required: false schema: type: string title: name description: Filter by a shipping profile's name. - name: created_at in: query description: Filter by a shipping profile's creation date. required: false schema: type: object description: Filter by a shipping profile's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a shipping profile's update date. required: false schema: type: object description: Filter by a shipping profile's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a shipping profile's deletion date. required: false schema: type: object description: Filter by a shipping profile's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingProfile.list() .then(({ shipping_profiles, count, limit, offset }) => { console.log(shipping_profiles) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/shipping-profiles' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Profiles responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of shipping profiles. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of shipping profiles. required: - shipping_profiles properties: shipping_profiles: type: array description: The list of shipping profiles. items: $ref: '#/components/schemas/AdminShippingProfile' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostShippingProfiles summary: Create Shipping Profile description: Create a shipping profile. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateShippingProfile' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingProfile.create({ name: "Default Shipping Profile", }) .then(({ shipping_profile }) => { console.log(shipping_profile) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/shipping-profiles' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Percy", "type": "{value}", "metadata": {} }' tags: - Shipping Profiles responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingProfileResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createShippingProfilesWorkflow x-events: [] /admin/shipping-profiles/{id}: get: operationId: GetShippingProfilesId summary: Get a Shipping Profile description: Retrieve a shipping profile by its ID. You can expand the shipping profile's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The shipping profile's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingProfile.retrieve("sp_123") .then(({ shipping_profile }) => { console.log(shipping_profile) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/shipping-profiles/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Profiles responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingProfileResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostShippingProfilesId summary: Update a Shipping Profile description: Update a shipping profile's details. x-authenticated: true parameters: - name: id in: path description: The shipping profile's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The properties to update in the shipping profile. properties: name: type: string title: name description: The shipping profile's name. type: type: string title: type description: The shipping profile's type. metadata: type: object description: The shipping profile's metadata. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingProfile.update("sp_123", { name: "Updated Shipping Profile", }) .then(({ shipping_profile }) => { console.log(shipping_profile) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/shipping-profiles/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Shipping Profiles responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingProfileResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateShippingProfilesWorkflow x-events: [] delete: operationId: DeleteShippingProfilesId summary: Delete a Shipping Profile description: Delete a shipping profile. x-authenticated: true parameters: - name: id in: path description: The shipping profile's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.shippingProfile.delete("sp_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/shipping-profiles/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Shipping Profiles responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminShippingProfileDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteShippingProfileWorkflow x-events: [] /admin/stock-locations: get: operationId: GetStockLocations summary: List Stock Locations description: Retrieve a list of stock locations. The stock locations can be filtered by fields such as `id`. The stock locations can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the stock location's searchable properties. required: false schema: type: string title: q description: Search term to filter the stock location's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a stock location ID. - type: array description: Filter by stock location IDs. items: type: string title: id description: A stock location ID. - name: name in: query required: false schema: oneOf: - type: string title: name description: Filter by a stock location name. - type: array description: Filter by stock location names. items: type: string title: name description: A stock location name. - name: address_id in: query required: false schema: oneOf: - type: string title: address_id description: Filter by an address ID to retrieve its associated locations. - type: array description: Filter by address IDs to retrieve their associated locations. items: type: string title: address_id description: An address ID. - name: sales_channel_id in: query required: false schema: oneOf: - type: string title: sales_channel_id description: Filter by a sales channel ID to retrieve its associated locations. - type: array description: Filter by sales channel IDs to retrieve their associated locations. items: type: string title: sales_channel_id description: A sales channel ID - name: created_at in: query description: Filter by a stock location's creation date. required: false schema: type: object description: Filter by a stock location's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a stock location's update date. required: false schema: type: object description: Filter by a stock location's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a stock location's deletion date. required: false schema: type: object description: Filter by a stock location's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.list() .then(({ stock_locations, count, limit, offset }) => { console.log(stock_locations) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/stock-locations' \ -H 'Authorization: Bearer {access_token}' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostStockLocations summary: Create Stock Location description: Create a stock location. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateStockLocation' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.create({ name: "Main Warehouse", address_id: "addr_123", }) .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stock-locations' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Maryam", "address_id": "{value}", "metadata": {} }' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createStockLocationsWorkflow x-events: [] /admin/stock-locations/{id}: get: operationId: GetStockLocationsId summary: Get a Stock Location description: Retrieve a stock location by its ID. You can expand the stock location's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.retrieve("sloc_123") .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/stock-locations/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostStockLocationsId summary: Update a Stock Location description: Update a stock location's details. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateStockLocation' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.update("sloc_123", { name: "European Warehouse", }) .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stock-locations/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "address_id": "{value}", "metadata": {} }' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateStockLocationsWorkflow x-events: [] delete: operationId: DeleteStockLocationsId summary: Delete a Stock Location description: Delete a stock location. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.delete("sloc_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/stock-locations/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteStockLocationsWorkflow x-events: [] /admin/stock-locations/{id}/fulfillment-providers: post: operationId: PostStockLocationsIdFulfillmentProviders summary: Manage Fulfillment Providers of a Stock Location x-sidebar-summary: Manage Fulfillment Providers description: Manage the fulfillment providers to add or remove them from a stock location. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The fulfillment providers to add or remove from the stock location. properties: add: type: array description: The fulfillment providers to add to the stock location. items: type: string title: add description: A fulfillment provider's ID. remove: type: array description: The fulfillment providers to remove from the stock location. items: type: string title: remove description: A fulfillment provider's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.updateFulfillmentProviders("sloc_123", { add: ["fp_manual_manual"], remove: ["fp_shipstation_shipstation"], }) .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-providers' \ -H 'Authorization: Bearer {access_token}' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: batchLinksWorkflow x-events: [] /admin/stock-locations/{id}/fulfillment-sets: post: operationId: PostStockLocationsIdFulfillmentSets summary: Add Fulfillment Set to Stock Location x-sidebar-summary: Add Fulfillment Set description: Create and add a fulfillment set to a stock location. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The fulfillment set to create. required: - type - name properties: name: type: string title: name description: The fulfillment set's name. type: type: string title: type description: The fulfillment set's type. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.createFulfillmentSet("sloc_123", { name: "Shipping", type: "shipping", }) .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-sets' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Helene", "type": "{value}" }' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createLocationFulfillmentSetWorkflow x-events: [] /admin/stock-locations/{id}/sales-channels: post: operationId: PostStockLocationsIdSalesChannels summary: Manage Sales Channels of a Stock Location x-sidebar-summary: Manage Sales Channels description: Manage the sales channels in a stock location by adding or removing them. x-authenticated: true parameters: - name: id in: path description: The stock location's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: type: object description: The sales channels to add or remove. properties: add: type: array description: The sales channels to add. items: type: string title: add description: A sales channel's ID. remove: type: array description: The sales channels to remove. items: type: string title: remove description: A sales channel's ID. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.stockLocation.updateSalesChannels("sloc_123", { add: ["sc_123"], remove: ["sc_456"], }) .then(({ stock_location }) => { console.log(stock_location) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stock-locations/{id}/sales-channels' \ -H 'Authorization: Bearer {access_token}' tags: - Stock Locations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStockLocationResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: linkSalesChannelsToStockLocationWorkflow x-events: [] /admin/store-credit-accounts: get: operationId: GetStoreCreditAccounts summary: List Store Credit Accounts description: Retrieve a list of store credit accounts. The store credit accounts can be filtered by fields such as `id`. The store credit accounts can also be sorted or paginated. x-authenticated: true x-ignoreCleanup: true parameters: - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. The fields and relations to retrieve separated by commas. Learn more in the [API reference](https://docs.medusajs.com/api/store#select-fields-and-relations). required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: id in: query description: Filter by the store credit account's ID. required: false schema: oneOf: - type: string title: id description: Filter by a store credit account ID. - type: array description: Filter by store credit account IDs. items: type: string title: id description: A store credit account ID. - name: customer_id in: query description: Filter by customer ID(s) to retrieve their store credit accounts. required: false schema: oneOf: - type: string title: customer_id description: Filter by a customer ID to retrieve their store credit accounts. - type: array description: Filter by customer ID(s) to retrieve their store credit accounts. items: type: string title: customer_id description: A customer ID. - name: transaction_group_id in: query description: Filter by the associated transaction group's ID. required: false schema: oneOf: - type: string title: transaction_group_id description: Filter by the associated transaction group ID. - type: array description: Filter by transaction group IDs. items: type: string title: transaction_group_id description: A transaction group ID. - name: currency_code in: query description: Filter by currency code(s) to retrieve store credit accounts in specific currencies. required: false schema: oneOf: - type: string title: currency_code description: Filter by a currency code to retrieve store credit accounts in that currency. example: usd - type: array description: Filter by currency codes to retrieve store credit accounts in specific currencies. items: type: string title: currency_code description: Filter by a currency code to retrieve store credit accounts in that currency. example: usd - name: created_at in: query description: Filter by a store credit account's creation date. required: false schema: type: object description: Filter by a store credit account's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a store credit account's update date. required: false schema: type: object description: Filter by a store credit account's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: An array of filters to apply on the entity, where each item in the array is joined with an "and" condition. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: An array of filters to apply on the entity, where each item in the array is joined with an "or" condition. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/store-credit-accounts' \ -H 'Authorization: Bearer {access_token}' tags: - Store Credit Accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreCreditAccountsResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). post: operationId: PostStoreCreditAccounts summary: Create Store Credit Account description: Create a store credit account. x-authenticated: true x-ignoreCleanup: true parameters: - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateStoreCreditAccount' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/store-credit-accounts' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "currency_code": "nzd", "customer_id": "{value}" }' tags: - Store Credit Accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreCreditAccountResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/store-credit-accounts/{id}: get: operationId: GetStoreCreditAccountsId summary: Get a Store Credit Account description: Retrieve a store credit account by its ID. You can expand the store credit account's relations or select the fields that should be returned. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The store credit account's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. The fields and relations to retrieve separated by commas. Learn more in the [API reference](https://docs.medusajs.com/api/store#select-fields-and-relations). required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: id in: query description: Filter by the store credit account's ID. required: false schema: oneOf: - type: string title: id description: Filter by a store credit account ID. - type: array description: Filter by store credit account IDs. items: type: string title: id description: A store credit account ID. - name: customer_id in: query description: Filter by customer ID(s) to retrieve their store credit accounts. required: false schema: oneOf: - type: string title: customer_id description: Filter by a customer ID to retrieve their store credit accounts. - type: array description: Filter by customer ID(s) to retrieve their store credit accounts. items: type: string title: customer_id description: A customer ID. - name: transaction_group_id in: query description: Filter by the associated transaction group's ID. required: false schema: oneOf: - type: string title: transaction_group_id description: Filter by the associated transaction group ID. - type: array description: Filter by transaction group IDs. items: type: string title: transaction_group_id description: A transaction group ID. - name: currency_code in: query description: Filter by currency code(s) to retrieve store credit accounts in specific currencies. required: false schema: oneOf: - type: string title: currency_code description: Filter by a currency code to retrieve store credit accounts in that currency. example: usd - type: array description: Filter by currency codes to retrieve store credit accounts in specific currencies. items: type: string title: currency_code description: Filter by a currency code to retrieve store credit accounts in that currency. example: usd - name: created_at in: query description: Filter by a store credit account's creation date. required: false schema: type: object description: Filter by a store credit account's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a store credit account's update date. required: false schema: type: object description: Filter by a store credit account's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query description: An array of filters to apply on the entity, where each item in the array is joined with an "and" condition. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: An array of filters to apply on the entity, where each item in the array is joined with an "or" condition. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/store-credit-accounts/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Store Credit Accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreCreditAccountResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/store-credit-accounts/{id}/transactions: get: operationId: GetStoreCreditAccountsIdTransactions summary: List Transactions description: Retrieve a list of transactions in a store credit account. The transactions can be filtered by fields like FILTER FIELDS. The transactions can also be paginated. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: path description: The store credit account's ID. required: true schema: type: string - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a transaction ID. - type: array description: Filter by transaction IDs. items: type: string title: id description: A transaction ID. - name: transaction_group_id in: query required: false schema: oneOf: - type: string title: transaction_group_id description: Filter by a transaction group ID. - type: array description: Filter by transaction group IDs. items: type: string title: transaction_group_id description: A transaction group ID. - name: created_at in: query description: Filter by a transaction's creation date. required: false schema: type: object description: Filter by a transaction's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a transaction's update date. required: false schema: type: object description: Filter by a transaction's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' - name: fields in: query description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: q in: query description: Search query to filter the transactions by their searchable fields. required: false schema: type: string title: q description: Search query to filter the transactions by their searchable fields. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/store-credit-accounts/{id}/transactions' \ -H 'Authorization: Bearer {access_token}' tags: - Store Credit Accounts responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTransactionsResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/stores: get: operationId: GetStores summary: List Stores description: Retrieve a list of stores. The stores can be filtered by fields such as `id`. The stores can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter the store's searchable properties. required: false schema: type: string title: q description: Search term to filter the store's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a store ID. - type: array description: Filter by store IDs. items: type: string title: id description: A store ID. - name: name in: query required: false schema: oneOf: - type: string title: name description: Filter by a store name. - type: array description: Filter by store names. items: type: string title: name description: A store name. - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.store.list() .then(({ stores, count, limit, offset }) => { console.log(stores) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/stores' \ -H 'Authorization: Bearer {access_token}' tags: - Stores responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/stores/{id}: get: operationId: GetStoresId summary: Get a Store description: Retrieve a store by its ID. You can expand the store's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The store's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.store.retrieve("store_123") .then(({ store }) => { console.log(store) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/stores/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Stores responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostStoresId summary: Update a Store description: Update a store's details. x-authenticated: true parameters: - name: id in: path description: The store's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateStore' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.store.update("store_123", { name: "My Store", }) .then(({ store }) => { console.log(store) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/stores/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Melvina", "default_sales_channel_id": "{value}", "default_region_id": "{value}", "default_location_id": "{value}", "metadata": {} }' tags: - Stores responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminStoreResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateStoresWorkflow x-events: [] /admin/tax-providers: get: operationId: GetTaxProviders summary: List Tax Providers description: Retrieve a list of tax providers installed in the Medusa application through Tax Module Providers. The tax providers can be filtered by fields such as `id`. The tax providers can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a tax provider's ID. - type: array description: Filter by tax provider IDs. items: type: string title: id description: A tax provider's ID. - name: is_enabled in: query description: Filter by whether the tax provider is enabled. required: false schema: type: boolean title: is_enabled description: Filter by whether the tax provider is enabled. - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxProvider.list() .then(({ tax_providers, count, limit, offset }) => { console.log(tax_providers) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/tax-providers' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Providers responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The pagination details. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items retrieved. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items available. estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine - type: object description: The list of tax providers. required: - tax_providers properties: tax_providers: type: array description: The list of tax providers. items: $ref: '#/components/schemas/AdminTaxProvider' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-version: 2.8.0 /admin/tax-rates: get: operationId: GetTaxRates summary: List Tax Rates description: Retrieve a list of tax rates. The tax rates can be filtered by fields such as `id`. The tax rates can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search terms to filter the tax rate's searchable properties. required: false schema: type: string title: q description: Search terms to filter the tax rate's searchable properties. - name: tax_region_id in: query required: false schema: oneOf: - type: string title: tax_region_id description: Filter by a tax region ID to retrieve its associated rates. - type: array description: Filter by tax region IDs to retrieve their associated rates. items: type: string title: tax_region_id description: A tax region ID. - type: object description: Apply filters on the tax region ID to retrieve the rates associated with the matching tax regions. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: is_default in: query required: false description: Filter by whether the tax rate is a default in its tax region. schema: type: string enum: - 'true' - 'false' - name: created_at in: query description: Filter by a tax rate's creation date. required: false schema: type: object description: Filter by a tax rate's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a tax rate's update date. required: false schema: type: object description: Filter by a tax rate's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a tax rate's deletion date. required: false schema: type: object description: Filter by a tax rate's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or - name: service_zone_id in: query description: Filter by a service zone's ID to retrieve its associated tax rates. required: false schema: type: string title: service_zone_id description: Filter by a service zone's ID to retrieve its associated tax rates. - name: shipping_profile_id in: query description: Filter by a shipping profile's ID to retrieve its associated tax rates. required: false schema: type: string title: shipping_profile_id description: Filter by a shipping profile's ID to retrieve its associated tax rates. - name: provider_id in: query description: Filter by a fulfillment provider's ID to retrieve its associated tax rates. required: false schema: type: string title: provider_id description: Filter by a fulfillment provider's ID to retrieve its associated tax rates. - name: shipping_option_type_id in: query description: Filter by a shipping option type's ID to retrieve its associated tax rates. required: false schema: type: string title: shipping_option_type_id description: Filter by a shipping option type's ID to retrieve its associated tax rates. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRate.list() .then(({ tax_rates, count, limit, offset }) => { console.log(tax_rates) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/tax-rates' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of tax rates. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of tax rates. required: - tax_rates properties: tax_rates: type: array description: The tax rate's tax rates. items: $ref: '#/components/schemas/AdminTaxRate' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostTaxRates summary: Create Tax Rate description: Create a tax rate. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateTaxRate' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRate.create({ name: "VAT", tax_region_id: "txreg_123", code: "VAT", rate: 2, // 2% }) .then(({ tax_rate }) => { console.log(tax_rate) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/tax-rates' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "name": "Kaylin", "tax_region_id": "{value}", "metadata": {} }' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRateResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createTaxRatesWorkflow x-events: [] /admin/tax-rates/{id}: get: operationId: GetTaxRatesId summary: Get a Tax Rate description: Retrieve a tax rate by its ID. You can expand the tax rate's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The tax rate's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRate.retrieve("txrat_123") .then(({ tax_rate }) => { console.log(tax_rate) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/tax-rates/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRateResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostTaxRatesId summary: Update a Tax Rate description: Update a tax rate's details. x-authenticated: true parameters: - name: id in: path description: The tax rate's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateTaxRate' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRate.update("txrat_123", { name: "VAT", code: "VAT", }) .then(({ tax_rate }) => { console.log(tax_rate) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/tax-rates/{id}' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "metadata": {} }' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRateResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateTaxRatesWorkflow x-events: [] delete: operationId: DeleteTaxRatesId summary: Delete a Tax Rate description: Delete a tax rate. x-authenticated: true parameters: - name: id in: path description: The tax rate's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRate.delete("txrat_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/tax-rates/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRateDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteTaxRatesWorkflow x-events: [] /admin/tax-rates/{id}/rules: post: operationId: PostTaxRatesIdRules summary: Create Tax Rule for a Rate x-sidebar-summary: Create Tax Rule description: Create a tax rule for a rate. x-authenticated: true parameters: - name: id in: path description: The tax rate's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateTaxRateRule' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/tax-rates/{id}/rules' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "reference": "{value}", "reference_id": "{value}" }' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRateResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createTaxRateRulesWorkflow x-events: [] /admin/tax-rates/{id}/rules/{rule_id}: delete: operationId: DeleteTaxRatesIdRulesRule_id summary: Remove Rule of Tax Rate x-sidebar-summary: Remove Rule description: Remove a tax rate's rule. x-authenticated: true parameters: - name: id in: path description: The tax rate's ID. required: true schema: type: string - name: rule_id in: path description: The tax rate rule's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/tax-rates/{id}/rules/{rule_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Rates responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The tax rate's ID. object: type: string title: object description: The name of the deleted object. deleted: type: boolean title: deleted description: Whether the Tax Rate was deleted. - type: object description: The deletion's details. properties: parent: $ref: '#/components/schemas/AdminTaxRate' description: The deletion's details. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteTaxRateRulesWorkflow x-events: [] /admin/tax-regions: get: operationId: GetTaxRegions summary: List Tax Regions description: Retrieve a list of tax regions. The tax regions can be filtered by fields such as `id`. The tax regions can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: Search term to filter a tax region's searchable properties. required: false schema: type: string title: q description: Search term to filter a tax region's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a tax region ID. - type: array description: Filter by tax region IDs. items: type: string title: id description: A tax region ID. - name: country_code in: query required: false schema: oneOf: - type: string title: country_code description: Filter by a country code. - type: array description: Filter by country codes. items: type: string title: country_code description: A country code. - type: object description: Apply filters on the currency code. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: province_code in: query required: false schema: oneOf: - type: string title: province_code description: Filter by a ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 - type: array description: Filter by ISO 3166-2 province codes. items: type: string title: province_code description: A ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 - type: object description: Apply filters on the province code. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: parent_id in: query required: false schema: oneOf: - type: string title: parent_id description: Filter by the ID of a parent tax region to retrieve its child tax regions. - type: array description: Filter by the IDs of parent tax regions to retrieve their child tax regions. items: type: string title: parent_id description: A tax region's ID. - type: object description: Apply filters on the parent tax region's ID to retrieve its child tax regions. properties: $eq: type: string description: Filter by an exact match. $ne: type: string description: Filter by values not matching this parameter. $in: type: array description: Filter by values in this array's items. items: type: string $nin: type: array description: Filter by values not in this array's items. items: type: string $like: type: string description: Apply a `like` filter. Useful for strings only. $ilike: type: string description: Apply a case-insensitive `like` filter. Useful for strings only. $re: type: string description: Apply a regex filter. Useful for strings only. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string $gt: type: string description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. - name: created_by in: query required: false schema: oneOf: - type: string title: created_by description: Filter by the ID of the user to retrieve the tax regions they created. - type: array description: Filter by user IDs to retrieve their tax regions they created. items: type: string title: created_by description: A user ID. - name: created_at in: query description: Filter by a tax region's creation date. required: false schema: oneOf: - type: string title: created_at description: Filter by a tax region's creation date. - type: object description: Apply filters on the tax region's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a tax region's update date. required: false schema: oneOf: - type: string title: updated_at description: Filter by a tax region's update date. - type: object description: Apply filters on the tax region's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a tax region's deletion date. required: false schema: oneOf: - type: string title: deleted_at description: Filter by a tax region's deletion date. - type: object description: Apply filters on the tax region's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: $and in: query required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRegion.list() .then(({ tax_regions, count, limit, offset }) => { console.log(tax_regions) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/tax-regions' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Regions responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of tax regions. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of tax regions. required: - tax_regions properties: tax_regions: type: array description: The list of tax regions. items: type: object '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostTaxRegions summary: Create Tax Region description: Create a tax region. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateTaxRegion' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRegion.create({ country_code: "us", province_code: "ca", default_tax_rate: { code: "VAT", name: "VAT", rate: 20, // 20% is_combinable: true, }, }) .then(({ tax_region }) => { console.log(tax_region) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/tax-regions' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "country_code": "{value}", "province_code": "us-ca", "parent_id": "{value}", "metadata": {} }' tags: - Tax Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: createTaxRegionsWorkflow x-events: [] /admin/tax-regions/{id}: get: operationId: GetTaxRegionsId summary: Get a Tax Region description: Retrieve a tax region by its ID. You can expand the tax region's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The tax region's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: province_code in: query description: Filter by a tax region's province code. required: false schema: type: string title: province_code description: Filter by a tax region's province code. - name: provider_id in: query description: Filter by a tax provider ID to retrieve the tax regions using it. required: false schema: type: string title: provider_id description: Filter by a tax provider ID to retrieve the tax regions using it. - name: metadata in: query description: Filter by a tax region's metadata. Refer to the [Object Query Parameter](https://docs.medusajs.com/api/admin#object) section to learn how to filter by object fields. required: false schema: type: object description: Filter by a tax region's metadata. Refer to the [Object Query Parameter](https://docs.medusajs.com/api/admin#object) section to learn how to filter by object fields. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRegion.retrieve("txreg_123") .then(({ tax_region }) => { console.log(tax_region) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/tax-regions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' post: operationId: PostTaxRegionsId summary: Update a Tax Region description: Update a tax region's details. x-authenticated: true parameters: - name: id in: path description: The tax region's ID. required: true schema: type: string - name: fields in: query description: |- Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateTaxRegion' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRegion.update("txreg_123", { province_code: "ca", }) .then(({ tax_region }) => { console.log(tax_region) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/tax-regions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRegionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateTaxRegionsWorkflow x-events: [] delete: operationId: DeleteTaxRegionsId summary: Delete a Tax Region description: Delete a tax region. x-authenticated: true parameters: - name: id in: path description: The tax region's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.taxRegion.delete("txreg_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/tax-regions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Tax Regions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTaxRegionDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteTaxRegionsWorkflow x-events: [] /admin/transaction-groups: get: operationId: GetTransactionGroups summary: List Transaction Groups description: Retrieve a list of transaction groups. The transaction groups can be filtered by fields such as `id`. The transaction groups can also be sorted or paginated. x-authenticated: true x-ignoreCleanup: true parameters: - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by the transaction group's ID. - type: array description: Filter by the transaction group IDs. items: type: string title: id description: A transaction group's ID. - name: code in: query required: false schema: oneOf: - type: string title: code description: Filter by the transaction group's code. - type: array description: Filter by the transaction group codes. items: type: string title: code description: A transaction group's code. - name: created_at in: query description: Filter by a transaction group's creation date. required: false schema: type: object description: Filter by a transaction group's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a transaction group's update date. required: false schema: type: object description: Filter by a transaction group's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. externalDocs: url: '#pagination' - name: fields in: query description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: $and in: query description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and - name: $or in: query description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. required: false schema: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/transaction-groups' \ -H 'Authorization: Bearer {access_token}' tags: - Transaction Groups responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminTransactionGroupsResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-badges: - text: Cloud description: | This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin). /admin/uploads: post: operationId: PostUploads summary: Upload Files description: Upload files to the configured File Module Provider. x-authenticated: true security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: oneOf: - type: object description: The files to upload required: - files properties: files: type: array description: The upload's files. items: oneOf: - type: object description: The file's files. required: - name - content properties: name: type: string title: name description: The file's name. content: type: string title: content description: The file's content. - type: object description: A File to upload. externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/API/File description: Learn more about the File API title: files - type: array description: list of files to upload. items: type: object description: A File to upload. externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/API/File description: Learn more about the File API title: FileList description: The files to upload. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.upload.create( { files: [ // file uploaded as a binary string { name: "test.txt", content: "test", // Should be the binary string of the file }, // file uploaded as a File object new File(["test"], "test.txt", { type: "text/plain" }) ], } ) .then(({ files }) => { console.log(files) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/uploads' \ -H 'Authorization: Bearer {access_token}' tags: - Uploads responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFileListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: uploadFilesWorkflow x-events: [] /admin/uploads/{id}: get: operationId: GetUploadsId summary: Get a File description: Retrieve an uploaded file by its ID. You can expand the file's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The upload's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.upload.retrieve("test.txt") .then(({ file }) => { console.log(file) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/uploads/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Uploads responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminFileResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' delete: operationId: DeleteUploadsId summary: Delete a File description: Delete a file. Uses the installed file module provider to delete the file. x-authenticated: true parameters: - name: id in: path description: The file's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.upload.delete("test.txt") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/admin/uploads/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Uploads responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - id - object - deleted properties: id: type: string title: id description: The file's ID. object: type: string title: object description: The name of the deleted object. default: file deleted: type: boolean title: deleted description: Whether the file was deleted. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: deleteFilesWorkflow x-events: [] /admin/users: get: operationId: GetUsers summary: List Users description: Retrieve a list of users. The users can be filtered by fields such as `id`. The users can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: q in: query description: The search term to filter the user's searchable properties. required: false schema: type: string title: q description: The search term to filter the user's searchable properties. - name: id in: query required: false schema: oneOf: - type: string title: id description: Filter by a user's ID. - type: array description: Filter by user IDs. items: type: string title: id description: A user's ID. - name: email in: query description: Filter by an email. required: false schema: type: string title: email description: Filter by an email. format: email - name: first_name in: query description: Filter by a first name. required: false schema: type: string title: first_name description: Filter by a first name. - name: last_name in: query description: Filter by a last name. required: false schema: type: string title: last_name description: Filter by a last name. - name: created_at in: query description: Filter by a user's creation date. required: false schema: type: object description: Filter by a user's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: updated_at in: query description: Filter by a user's update date. required: false schema: type: object description: Filter by a user's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). - name: deleted_at in: query description: Filter by a user's deletion date. required: false schema: type: object description: Filter by a user's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.user.list() .then(({ users, count, limit, offset }) => { console.log(users) }) - lang: Shell label: cURL source: curl '{backend_url}/admin/users' tags: - Users responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminUserListResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' security: - cookie_auth: [] - jwt_token: [] /admin/users/me: get: operationId: GetUsersMe summary: Get Logged-In User description: Retrieve the logged-in user's details. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.user.me() .then(({ user }) => { console.log(user) }) - lang: Shell label: cURL source: curl '{backend_url}/admin/users/me' tags: - Users responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminUserResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' security: - cookie_auth: [] - jwt_token: [] /admin/users/{id}: get: operationId: GetUsersId summary: Get a User description: Retrieve a user by its ID. You can expand the user's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The user's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.user.retrieve("user_123") .then(({ user }) => { console.log(user) }) - lang: Shell label: cURL source: curl '{backend_url}/admin/users/{id}' tags: - Users responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminUserResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' security: - cookie_auth: [] - jwt_token: [] post: operationId: PostUsersId summary: Update a User description: Update a user's details. x-authenticated: true parameters: - name: id in: path description: The user's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminUpdateUser' x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.user.update("user_123", { first_name: "John", last_name: "Doe", }) .then(({ user }) => { console.log(user) }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/users/{id}' \ -H 'Content-Type: application/json' \ --data-raw '{ "first_name": "{value}", "last_name": "{value}", "avatar_url": "{value}" }' tags: - Users responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminUserResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: updateUsersWorkflow security: - cookie_auth: [] - jwt_token: [] x-events: - name: user.updated payload: |- ```ts [{ id, // The ID of the user }] ``` description: Emitted when users are updated. deprecated: false delete: operationId: DeleteUsersId summary: Delete a User description: Delete a user. x-authenticated: true parameters: - name: id in: path description: The user's ID. required: true schema: type: string x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.user.delete("user_123") .then(({ deleted }) => { console.log(deleted) }) - lang: Shell label: cURL source: curl -X DELETE '{backend_url}/admin/users/{id}' tags: - Users responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminUserDeleteResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: removeUserAccountWorkflow security: - cookie_auth: [] - jwt_token: [] x-events: - name: user.deleted payload: |- ```ts [{ id, // The ID of the user }] ``` description: Emitted when users are deleted. deprecated: false /admin/workflows-executions: get: operationId: GetWorkflowsExecutions summary: List Workflows Executions description: Retrieve a list of workflows executions. The workflows executions can be filtered by fields such as `id`. The workflows executions can also be sorted or paginated. x-authenticated: true parameters: - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' - name: offset in: query description: The number of items to skip when retrieving a list. required: false schema: type: number title: offset description: The number of items to skip when retrieving a list. externalDocs: url: '#pagination' - name: limit in: query description: Limit the number of items returned in the list. required: false schema: type: number title: limit description: Limit the number of items returned in the list. externalDocs: url: '#pagination' - name: order in: query description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. required: false schema: type: string title: order description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. - name: transaction_id in: query required: false schema: oneOf: - type: string title: transaction_id description: Filter by a transaction ID. - type: array description: Filter by transaction IDs. items: type: string title: transaction_id description: A transaction ID. - name: workflow_id in: query required: false schema: oneOf: - type: string title: workflow_id description: Filter by a workflow ID. - type: array description: Filter by workflow IDs. items: type: string title: workflow_id description: A workflow ID. - name: q in: query description: Search query to filter by a workflow execution's searchable fields. required: false schema: type: string title: q description: Search query to filter by a workflow execution's searchable fields. security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.workflowExecution.list() .then(({ workflow_executions, count, limit, offset }) => { console.log(workflow_executions) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/workflows-executions' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: allOf: - type: object description: The paginated list of workflow executions. required: - limit - offset - count properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. - type: object description: The paginated list of workflow executions. required: - workflow_executions properties: workflow_executions: type: array description: The workflows execution's workflow executions. items: $ref: '#/components/schemas/AdminWorkflowExecution' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{id}: get: operationId: GetWorkflowsExecutionsId summary: Get a Workflows Execution description: Retrieve a workflows execution by its ID. You can expand the workflows execution's relations or select the fields that should be returned. x-authenticated: true parameters: - name: id in: path description: The workflows execution's ID. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.admin.workflowExecution.retrieve("wrk_123") .then(({ workflow_execution }) => { console.log(workflow_execution) }) - lang: Shell label: cURL source: |- curl '{backend_url}/admin/workflows-executions/{id}' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminWorkflowExecutionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/run: post: operationId: PostWorkflowsExecutionsWorkflow_idRun summary: Execute a Workflow description: Execute a workflow by its ID. x-authenticated: true parameters: - name: workflow_id in: path description: The workflow's ID. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateWorkflowsRun' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/run' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: type: object description: The execution's details. required: - acknowledgement properties: acknowledgement: type: object description: The workflow's details required: - workflowId - transactionId - hasFinished - hasFailed properties: workflowId: type: string description: The ID of the executed workflow. title: workflowId transactionId: type: string description: The ID of the workflow exection's transaction. Use this later to track the workflow execution's progress or succeed / fail its steps. title: transactionId parentStepIdempotencyKey: type: string title: parentStepIdempotencyKey description: The idempotency key of the workflow execution. hasFinished: type: boolean title: hasFinished description: Whether the workflow execution has finished. hasFailed: type: boolean title: hasFailed description: Whether the workflow execution has failed. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/steps/failure: post: operationId: PostWorkflowsExecutionsWorkflow_idStepsFailure summary: Fail a Step in a Workflow's Execution x-sidebar-summary: Fail a Step description: Set the status of a step in a workflow's execution as failed. This is useful for long-running workflows. x-authenticated: true parameters: - name: workflow_id in: path description: The workflows execution's workflow id. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateWorkflowsAsyncResponse' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/failure' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "transaction_id": "{value}", "step_id": "{value}" }' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: type: object description: The details of failing the workflow step. required: - success properties: success: type: boolean title: success description: Whether the workflow step has failed successfully. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/steps/success: post: operationId: PostWorkflowsExecutionsWorkflow_idStepsSuccess summary: Succeed a Step in a Workflow's Execution x-sidebar-summary: Succed a Step description: Set the status of a step in a workflow's execution as successful. This is useful for long-running workflows. x-authenticated: true parameters: - name: workflow_id in: path description: The workflows execution's workflow id. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminCreateWorkflowsAsyncResponse' x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/success' \ -H 'Authorization: Bearer {access_token}' \ -H 'Content-Type: application/json' \ --data-raw '{ "transaction_id": "{value}", "step_id": "{value}" }' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: type: object description: The details of succeeding the workflow step. required: - success properties: success: type: boolean title: success description: Whether the workflow step was succeeded. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/subscribe: get: operationId: GetWorkflowsExecutionsWorkflow_idSubscribe summary: Subscribe to a Workflow's Execution x-sidebar-summary: Subscribe to Workflow description: | Subscribe to a workflow's execution to receive real-time information about its steps, status, and data. This route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource). x-authenticated: true parameters: - name: workflow_id in: path description: The workflows execution's workflow id. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/workflows-executions/{workflow_id}/subscribe' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: Stream of the step's status. content: text/event-stream: schema: type: string description: The step's status update and data changes. example: |- event: success data: {} '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/{transaction_id}: get: operationId: GetWorkflowsExecutionsWorkflow_idTransaction_id summary: Get Workflow Execution's Details x-sidebar-summary: Get Exection description: Get the details of the workflow's execution. x-authenticated: true parameters: - name: workflow_id in: path description: The workflows execution's workflow id. required: true schema: type: string - name: transaction_id in: path description: The workflows execution's transaction id. required: true schema: type: string - name: fields in: query description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. required: false schema: type: string title: fields description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. externalDocs: url: '#select-fields-and-relations' security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminWorkflowExecutionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe: get: operationId: GetWorkflowsExecutionsWorkflow_idTransaction_idStep_idSubscribe summary: Subscribe to Step of a Workflow's Execution x-sidebar-summary: Subscribe to Step description: | Subscribe to a step in a workflow's execution to receive real-time information about its status and data. This route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource). x-authenticated: true parameters: - name: workflow_id in: path description: The workflows execution's workflow id. required: true schema: type: string - name: transaction_id in: path description: The workflows execution's transaction id. required: true schema: type: string - name: step_id in: path description: The workflows execution's step id. required: true schema: type: string security: - api_token: [] - cookie_auth: [] - jwt_token: [] x-codeSamples: - lang: Shell label: cURL source: |- curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe' \ -H 'Authorization: Bearer {access_token}' tags: - Workflows Executions responses: '200': description: Stream of the step's status. content: text/event-stream: schema: type: string description: The step's status update and data changes. example: |- event: success data: {} '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/session: post: operationId: PostSession summary: Set Authentication Session description: Set the cookie session ID of an admin user. The admin must be previously authenticated with the `/auth/user/{provider}` API route first, as the JWT token is required in the header of the request. x-authenticated: true x-codeSamples: - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/auth/session' \ -H 'Authorization: Bearer {jwt_token}' tags: - Auth responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthAdminSessionResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' delete: operationId: DeleteSession summary: Delete Authentication Session description: Deletes the cookie session ID previously set for authentication. x-authenticated: true x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) await sdk.auth.logout() // user is now logged out // you can't send any requests that require authentication - lang: Shell label: cURL source: |- curl -X DELETE '{backend_url}/auth/session' \ -H 'Cookie: connect.sid={sid}' tags: - Auth responses: '200': description: OK content: application/json: schema: type: object description: The deletion's details. required: - success properties: success: type: boolean title: success description: Whether the session was deleted successfully. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/token/refresh: post: operationId: PostAdminAuthTokenRefresh summary: Refresh Authentication Token description: Refresh the authentication token of a user. This is useful after authenticating a user with a third-party service to ensure the token holds the new user's details, or when you don't want users to re-login every day. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#2-third-party-service-authenticate-flow description: Learn about third-party authentication flow. x-authenticated: true x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) const token = await sdk.auth.refresh() // all subsequent requests will use the token in the header const { user } = await sdk.admin.user.me() - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/auth/token/refresh' \ -H 'Authorization: Bearer {token}' tags: - Auth responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/user/{auth_provider}: post: operationId: PostActor_typeAuth_provider summary: Authenticate User description: | Authenticate a user and receive the JWT token to be used in the header of subsequent requests. When used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your frontend to continue authentication with the third-party service. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#types-of-authentication-flows description: Learn about different authentication flows. x-authenticated: false parameters: - name: auth_provider in: path description: The provider used for authentication. required: true schema: type: string example: emailpass requestBody: content: application/json: schema: type: object title: input description: | The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties. For the Google and GitHub authentication providers, you can pass `callback_url` to indicate the URL in the frontend that the user should be redirected to after completing their authentication. This will override the provider's `callbackUrl` configurations in `medusa-config.ts`. x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) const result = await sdk.auth.login( "user", "emailpass", { email: "user@gmail.com", password: "supersecret" } ) if (typeof result !== "string") { alert("Authentication requires additional steps") // replace with the redirect logic of your application window.location.href = result.location return } // user is now authenticated // all subsequent requests will use the token in the header const { user } = await sdk.admin.user.me() - lang: Bash label: Google Provider source: curl -X POST '{backend_url}/auth/user/google' tags: - Auth responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/AuthResponse' - $ref: '#/components/schemas/AuthCallbackResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/user/{auth_provider}/callback: post: operationId: PostActor_typeAuth_providerCallback summary: Validate Authentication Callback description: | This API route is used by your dashboard or frontend application when a third-party provider redirects to it after authentication. It validates the authentication with the third-party provider and, if successful, returns an authentication token. All query parameters received from the third-party provider, such as `code`, `state`, and `error`, must be passed as query parameters to this route. You can decode the JWT token using libraries like [react-jwt](https://www.npmjs.com/package/react-jwt) in the frontend. If the decoded data doesn't have an `actor_id` property, then you must create a user, typically using the Accept Invite route passing the token in the request's Authorization header. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#2-third-party-service-authenticate-flow description: Learn about third-party authentication flow. x-authenticated: false parameters: - name: auth_provider in: path description: The provider used for authentication. required: true schema: type: string example: google x-codeSamples: - lang: JavaScript label: Google Provider source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) await sdk.auth.callback( "user", "google", { code: "123", state: "456" } ) // all subsequent requests will use the token in the header sdk.admin.invite.accept( { email: "user@gmail.com", first_name: "John", last_name: "Smith", invite_token: "12345..." }, ) .then(({ user }) => { console.log(user) }) - lang: TypeScript label: GitHub Provider source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) const authToken = await sdk.auth.callback( "user", "google", { code: "123", state: "456" } ) // all subsequent requests will use the token in the header sdk.admin.invite.accept( { email: "user@gmail.com", first_name: "John", last_name: "Smith", invite_token: "12345..." }, ) .then(({ user }) => { console.log(user) }) tags: - Auth responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/user/{auth_provider}/register: post: operationId: PostActor_typeAuth_provider_register summary: Retrieve Registration JWT Token description: This API route retrieves a registration JWT token of a user that hasn't been registered yet. The token is used in the header of requests that create a user, such as the Accept Invite API route. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#1-basic-authentication-flow description: Learn about the basic authentication flow. x-authenticated: false parameters: - name: auth_provider in: path description: The provider used for authentication. required: true schema: type: string example: emailpass requestBody: content: application/json: schema: type: object title: input description: The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties. example: email: admin@medusa-test.com password: supersecret x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) const token = await sdk.auth.register("user", "emailpass", { email: "user@gmail.com", password: "supersecret" }) // all subsequent requests will use the token in the header const { user } = await sdk.admin.invite.accept( { email: "user@gmail.com", first_name: "John", last_name: "Smith", invite_token: "12345..." }, ) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/auth/user/emailpass/register' \ -H 'Content-Type: application/json' \ --data-raw '{ "email": "admin@medusa-test.com", "password": "supersecret" }' tags: - Auth responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthResponse' '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' /auth/user/{auth_provider}/reset-password: post: operationId: PostActor_typeAuth_providerResetPassword summary: Generate Reset Password Token for Admin User x-sidebar-summary: Generate Reset Password Token description: | Generate a reset password token for an admin user. This API route doesn't reset the admin's password or send them the reset instructions in a notification. Instead, This API route emits the `auth.password_reset` event, passing it the token as a payload. You can listen to that event in a subscriber as explained in [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password), then send the user a notification. The notification is sent using a [Notification Module Provider](https://docs.medusajs.com/resources/infrastructure-modules/notification), and it should have the URL to reset the password in the Medusa Admin dashboard, such as `http://localhost:9000/app/reset-password?token=123`. Use the generated token to update the user's password using the [Reset Password API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerupdate). externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#generate-reset-password-token-route description: Learn more about this API route. x-authenticated: false parameters: - name: auth_provider in: path description: The provider used for authentication. required: true schema: type: string example: emailpass requestBody: content: application/json: schema: type: object title: identifier description: The user's identifier for the selected auth provider. For example, for the `emailpass` auth provider, the value is the user's email. example: admin@medusa-test.com x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.auth.resetPassword( "user", "emailpass", { identifier: "user@gmail.com" } ) .then(() => { // user receives token }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/auth/user/emailpass/reset-password' \ -H 'Content-Type: application/json' \ --data-raw '{ "identifier": "admin@medusa-test.com" }' tags: - Auth responses: '201': description: OK '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' x-workflow: generateResetPasswordTokenWorkflow x-events: - name: auth.password_reset payload: |- ```ts { entity_id, // The identifier of the user or customer. For example, an email address. actor_type, // The type of actor. For example, "customer", "user", or custom. token, // The generated token. } ``` description: |- Emitted when a reset password token is generated. You can listen to this event to send a reset password email to the user or customer, for example. deprecated: false /auth/user/{auth_provider}/update: post: operationId: PostActor_typeAuth_providerUpdate summary: Reset an Admin User's Password x-sidebar-summary: Reset Password description: Reset an admin user's password using a reset-password token generated with the [Generate Reset Password Token API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerresetpassword). You pass the token as a bearer token in the request's Authorization header. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#reset-password-route description: Learn more about this API route. x-authenticated: true parameters: - name: auth_provider in: path description: The provider used for authentication. required: true schema: type: string example: emailpass requestBody: content: application/json: schema: type: object title: input description: The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties. example: email: admin@medusa-test.com password: supersecret x-codeSamples: - lang: JavaScript label: JS SDK source: |- import Medusa from "@medusajs/js-sdk" export const sdk = new Medusa({ baseUrl: import.meta.env.VITE_BACKEND_URL || "/", debug: import.meta.env.DEV, auth: { type: "session", }, }) sdk.auth.updateProvider( "user", "emailpass", { password: "supersecret" }, token ) .then(() => { // password updated }) - lang: Shell label: cURL source: |- curl -X POST '{backend_url}/auth/user/emailpass/update' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {token}' \ --data-raw '{ "email": "admin@medusa-test.com", "password": "supersecret" }' security: - reset_password: [] tags: - Auth responses: '200': description: OK content: application/json: schema: type: object required: - success description: Details on the reset password's status. properties: success: type: boolean title: success description: Whether the password was reset successfully. '400': $ref: '#/components/responses/400_error' '401': $ref: '#/components/responses/unauthorized' '404': $ref: '#/components/responses/not_found_error' '409': $ref: '#/components/responses/invalid_state_error' '422': $ref: '#/components/responses/invalid_request_error' '500': $ref: '#/components/responses/500_error' components: schemas: AdminAddDraftOrderItems: type: object description: The details of the items to add to a draft order. x-schemaName: AdminAddDraftOrderItems properties: items: type: array description: The items to add to the draft order. items: type: object description: The item's details required: - quantity properties: quantity: type: number title: quantity description: The item's quantity. variant_id: type: string title: variant_id description: The ID of the variant to add to the draft order. title: type: string title: title description: The item's title. unit_price: type: number title: unit_price description: The item's unit price. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. internal_note: type: string title: internal_note description: A note viewed only by admin users about the item. allow_backorder: type: boolean title: allow_backorder description: Whether the item can be purchased if it's out of stock. metadata: type: object description: The item's metadata, can hold custom key-value pairs. AdminAddDraftOrderPromotions: type: object description: The details of the promotions to add to a draft order. x-schemaName: AdminAddDraftOrderPromotions required: - promo_codes properties: promo_codes: type: array description: The list promotion codes to add to the draft order. items: type: string title: promo_codes description: A promotion's code. AdminAddDraftOrderShippingMethod: type: object description: The details of the shipping method to add to a draft order. x-schemaName: AdminAddDraftOrderShippingMethod required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option that this method is created from. custom_amount: type: number title: custom_amount description: A custom amount to be charged for this shipping method. If not provided, the shipping option's amount will be used. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note viewed only by admin users about the shipping method. metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. AdminApiKey: type: object description: The API key's details. x-schemaName: AdminApiKey required: - id - token - redacted - title - type - last_used_at - created_by - created_at - updated_at - revoked_by - revoked_at - deleted_at properties: id: type: string title: id description: The api key's ID. token: type: string title: token description: The api key's token. redacted: type: string title: redacted description: The redacted form of the API key's token. This is useful when showing portion of the token. example: sk_...123 title: type: string title: title description: The api key's title. type: type: string description: The api key's type. `secret` is used for a user's API key, whereas `publishable` is used for Publishable API keys. enum: - secret - publishable last_used_at: type: string title: last_used_at description: The date and time the API key was last used. format: date-time created_by: type: string title: created_by description: The ID of the user that created the API key, if available. created_at: type: string format: date-time title: created_at description: The date and time the API key was created. revoked_by: type: string title: revoked_by description: The ID of the user that revoked the API key, if available. revoked_at: type: string title: revoked_at description: The date and time the API key was revoked. The API key is considered revoked when this property is set. format: date-time updated_at: type: string format: date-time title: updated_at description: The date the API key was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the API key was deleted. AdminApiKeyResponse: type: object description: The API key's details. x-schemaName: AdminApiKeyResponse required: - api_key properties: api_key: $ref: '#/components/schemas/AdminApiKey' AdminApplicationMethod: type: object description: The application method's details. x-schemaName: AdminApplicationMethod required: - id properties: promotion: type: object target_rules: type: array description: The application method's target rules. items: $ref: '#/components/schemas/AdminPromotionRule' buy_rules: type: array description: The application method's buy rules. items: $ref: '#/components/schemas/AdminPromotionRule' id: type: string title: id description: The application method's ID. type: type: string description: The application method's type. If it's `fixed`, the promotion discounts a fixed amount. If it's `percentage`, the promotion discounts a percentage. enum: - fixed - percentage target_type: type: string description: Which item does the promotion apply to. `items` mean the promotion applies to the cart's items; `shipping_methods` means the promotion applies to the cart's shipping methods; `order` means the promotion applies on the entire order. enum: - items - shipping_methods - order allocation: type: string description: How is the promotion amount discounted. `each` means the discounted amount is applied on each applicable item; `across` means the discounted amount is split accross the applicable items. enum: - each - across value: type: number title: value description: The amount to be discounted. currency_code: type: string title: currency_code description: The application method's currency code. example: usd max_quantity: type: number title: max_quantity description: The max quantity allowed in the cart for the associated promotion to be applied. buy_rules_min_quantity: type: number title: buy_rules_min_quantity description: The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `2`. apply_to_quantity: type: number title: apply_to_quantity description: The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `1`. AdminBatchCreateInventoryItemsLocationLevels: type: object description: The details of an inventory level to create. required: - location_id - inventory_item_id properties: location_id: type: string title: location_id description: The ID of the associated stock location. inventory_item_id: type: string title: inventory_item_id description: The ID of the associated inventory item. stocked_quantity: type: number title: stocked_quantity description: The stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The incoming quantity to be added to stock. x-schemaName: AdminBatchCreateInventoryItemsLocationLevels AdminBatchInventoryItemLocationsLevel: type: object description: The inventory levels to create, update, or delete. properties: create: type: array description: The inventory levels to create. items: type: object description: The inventory level's details. required: - location_id properties: location_id: type: string title: location_id description: The ID of the associated location. stocked_quantity: type: number title: stocked_quantity description: The inventory level's stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The inventory level's incoming quantity. update: type: array description: The inventory levels to update. items: type: object description: The inventory level's details. properties: stocked_quantity: type: number title: stocked_quantity description: The inventory level's stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The inventory level's incoming quantity. location_id: type: string title: location_id description: The associated stock location's ID. id: type: string title: id description: The ID of the location level. required: - location_id delete: type: array description: The inventory levels to delete. items: type: string title: delete description: The ID of the inventory level to delete. force: type: boolean title: force description: Whether to delete specified inventory levels even if they have a non-zero stocked quantity. x-schemaName: AdminBatchInventoryItemLocationsLevel AdminBatchInventoryItemsLocationLevels: type: object description: The inventory levels to manage. properties: create: type: array description: The inventory levels to create. items: $ref: '#/components/schemas/AdminBatchCreateInventoryItemsLocationLevels' update: type: array description: The inventory levels to update. items: $ref: '#/components/schemas/AdminBatchUpdateInventoryItemsLocationLevels' delete: type: array description: The IDs of the inventory levels to delete. items: type: string title: delete description: The ID of the inventory level to delete. force: type: boolean title: force description: Whether to delete specified inventory levels even if they have a non-zero stocked quantity. required: - create - update - delete x-schemaName: AdminBatchInventoryItemsLocationLevels AdminBatchInventoryItemsLocationLevelsResponse: type: object description: The result of managing inventory levels. x-schemaName: AdminBatchInventoryItemsLocationLevelsResponse properties: created: type: array description: The created inventory levels. items: $ref: '#/components/schemas/InventoryLevel' updated: type: array description: The updated inventory levels. items: $ref: '#/components/schemas/InventoryLevel' deleted: type: array description: The IDs of deleted inventory levels. items: type: string title: deleted description: The ID of a deleted inventory level. AdminBatchProductRequest: type: object description: The products to create, update, or delete. x-schemaName: AdminBatchProductRequest properties: create: type: array description: The products to create. items: $ref: '#/components/schemas/AdminCreateProduct' update: type: array description: The products to update. items: $ref: '#/components/schemas/AdminBatchUpdateProduct' delete: type: array description: The products to delete. items: type: string title: delete description: A product's ID. AdminBatchProductResponse: type: object description: The details of the products created, updated, or deleted. x-schemaName: AdminBatchProductResponse required: - created - updated - deleted properties: created: type: array description: The created products items: $ref: '#/components/schemas/AdminProduct' updated: type: array description: The updated products. items: $ref: '#/components/schemas/AdminProduct' deleted: type: object description: The deleted products' details. required: - ids - object - deleted properties: ids: type: array description: The IDs of deleted products. items: type: string title: ids description: The ID of a deleted product. object: type: string title: object description: The name of the deleted objects. default: product deleted: type: boolean title: deleted description: Whether the products were deleted. AdminBatchProductVariantRequest: type: object description: The product variants to create, update, or delete. x-schemaName: AdminBatchProductVariantRequest properties: create: type: array description: The product variants to create. items: $ref: '#/components/schemas/AdminCreateProductVariant' update: type: array description: The product variants to update. items: $ref: '#/components/schemas/AdminBatchUpdateProductVariant' delete: type: array description: The product variants to delete. items: type: string title: delete description: A product variant's ID. AdminBatchProductVariantResponse: type: object description: The details of the product variants created, updated, or deleted. x-schemaName: AdminBatchProductVariantResponse required: - created - updated - deleted properties: created: type: array description: The created product variants. items: $ref: '#/components/schemas/AdminProductVariant' updated: type: array description: The updated product variants. items: $ref: '#/components/schemas/AdminProductVariant' deleted: type: object description: The details of the deleted product variants. required: - ids - object - deleted properties: ids: type: array description: The IDs of the deleted product variants. items: type: string title: ids description: The ID of a deleted variant. object: type: string title: object description: The name of the deleted objects. default: variant deleted: type: boolean title: deleted description: Whether the product variants were deleted. AdminBatchUpdateInventoryItemsLocationLevels: type: object description: The details of an inventory level to update. required: - location_id - inventory_item_id properties: location_id: type: string title: location_id description: The ID of the associated stock location. inventory_item_id: type: string title: inventory_item_id description: The ID of the associated inventory item. stocked_quantity: type: number title: stocked_quantity description: The stocked quantity. incoming_quantity: type: number title: incoming_quantity description: The incoming quantity to be added to stock. id: type: string title: id description: The update's ID. x-schemaName: AdminBatchUpdateInventoryItemsLocationLevels AdminBatchUpdateProduct: type: object description: The product's details. x-schemaName: AdminBatchUpdateProduct properties: title: type: string title: title description: The product's title. subtitle: type: string title: subtitle description: The product's subtitle. description: type: string title: description description: The product's description. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. discountable: type: boolean title: discountable description: Whether discounts can be applied on the product. images: type: array description: The product's images. items: type: object description: The image's details. required: - url properties: url: type: string title: url description: The image's URL. thumbnail: type: string title: thumbnail description: The product's thumbnail URL. handle: type: string title: handle description: The product's unique handle. status: type: string description: The product's status. enum: - draft - proposed - published - rejected type_id: type: string title: type_id description: The ID of the product's type. collection_id: type: string title: collection_id description: The ID of the product's collection. categories: type: array description: The product's categories. items: type: object description: The product's category. required: - id properties: id: type: string title: id description: The category's ID. tags: type: array description: The product's tags. items: type: object description: The product's tag. required: - id properties: id: type: string title: id description: The tag's ID. options: type: array description: The product's options. items: $ref: '#/components/schemas/AdminUpdateProductOption' variants: type: array description: The product's variants. You can add new variants or update existing ones, passing their IDs in the object. items: oneOf: - $ref: '#/components/schemas/AdminCreateProductVariant' - $ref: '#/components/schemas/AdminUpdateProductVariant' sales_channels: type: array description: The sales channels that the product is available in. items: type: object description: The sales channel's details. required: - id properties: id: type: string title: id description: The sales channel's ID. weight: type: number title: weight description: The product's weight. length: type: number title: length description: The product's length. height: type: number title: height description: The product's height. width: type: number title: width description: The product's width. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. origin_country: type: string title: origin_country description: The product's origin country. material: type: string title: material description: The product's material. metadata: type: object description: The product's metadata, can hold custom key-value pairs. external_id: type: string title: external_id description: The ID of the product in an external or third-party system. id: type: string title: id description: The product's ID. shipping_profile_id: type: string title: shipping_profile_id description: The ID of the product's shipping profile. required: - id AdminBatchUpdateProductVariant: type: object description: The properties to update of a product variant. x-schemaName: AdminBatchUpdateProductVariant properties: title: type: string title: title description: The product variant's title. sku: type: string title: sku description: The product variant's SKU. ean: type: string title: ean description: The product variant's EAN. upc: type: string title: upc description: The product variant's UPC. barcode: type: string title: barcode description: The product variant's barcode. hs_code: type: string title: hs_code description: The product variant's HS code. mid_code: type: string title: mid_code description: The product variant's MID code. allow_backorder: type: boolean title: allow_backorder description: Whether customers can order the variant even if it's not in stock. manage_inventory: type: boolean title: manage_inventory description: Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock. variant_rank: type: number title: variant_rank description: The product variant's rank among its siblings. weight: type: number title: weight description: The product variant's weight. length: type: number title: length description: The product variant's length. height: type: number title: height description: The product variant's height. width: type: number title: width description: The product variant's width. origin_country: type: string title: origin_country description: The product variant's origin country. material: type: string title: material description: The product variant's material. metadata: type: object description: The product variant's metadata, can hold custom key-value pairs. prices: type: array description: The product variant's prices. items: $ref: '#/components/schemas/AdminCreateProductVariantPrice' options: type: object description: The product variant's options. id: type: string title: id description: The update's ID. required: - id AdminCampaign: type: object description: The campaign's details. x-schemaName: AdminCampaign required: - id - name - description - currency - campaign_identifier - starts_at - ends_at - budget - created_at - updated_at - deleted_at properties: id: type: string title: id description: The campaign's ID. name: type: string title: name description: The campaign's name. description: type: string title: description description: The campaign's description. currency: type: string title: currency description: The campaign's currency. campaign_identifier: type: string title: campaign_identifier description: The campaign's identifier. starts_at: type: string title: starts_at description: The date and time that the campaign starts. ends_at: type: string title: ends_at description: The date and time that the campaign ends. budget: type: object description: The campaign's budget. required: - id - type - currency_code - limit - used properties: id: type: string title: id description: The budget's ID. type: type: string description: | The budget's type. `spend` means the limit is set on the total amount discounted by the campaign's promotions; `usage` means the limit is set on the total number of times the campaign's promotions can be used. enum: - spend - usage currency_code: type: string title: currency_code description: The budget's currency code. limit: type: number title: limit description: The budget's limit. used: type: number title: used description: | How much of the budget has been used. If the limit is `spend`, this property holds the total amount discounted so far. If the limit is `usage`, it holds the number of times the campaign's promotions have been used so far. created_at: type: string format: date-time title: created_at description: The date the campaign was created. updated_at: type: string format: date-time title: updated_at description: The date the campaign was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the campaign was deleted. AdminCampaignResponse: type: object description: The campaign's details. x-schemaName: AdminCampaignResponse required: - campaign properties: campaign: $ref: '#/components/schemas/AdminCampaign' AdminClaim: type: object description: The claim's details. x-schemaName: AdminClaim required: - order - return - id - type - order_id - display_id - order_version - created_at - updated_at - canceled_at - additional_items - claim_items properties: id: type: string title: id description: The claim's ID. order_id: type: string title: order_id description: The ID of the order associated with the claim. claim_items: type: array description: The order items targetted by the claim. items: $ref: '#/components/schemas/BaseClaimItem' additional_items: type: array description: The outbound or new items of the claim. items: $ref: '#/components/schemas/BaseClaimItem' return: $ref: '#/components/schemas/AdminReturn' return_id: type: string title: return_id description: The ID of the associated return. no_notification: type: boolean title: no_notification description: Whether the customer should be notified about changes in the claim. refund_amount: type: number title: refund_amount description: The amount to be refunded. display_id: type: number title: display_id description: The claim's display ID. shipping_methods: type: array description: The claim's shipping methods. items: $ref: '#/components/schemas/AdminOrderShippingMethod' transactions: type: array description: The claim's transactions. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions description: Learn more about transactions of orders and associated models. items: $ref: '#/components/schemas/BaseOrderTransaction' metadata: type: object description: The claim's metadata, used to store custom key-value pairs. created_at: type: string format: date-time title: created_at description: The claim's creation date. updated_at: type: string format: date-time title: updated_at description: The claim's update date. order: $ref: '#/components/schemas/AdminOrder' type: type: string description: The claim's type. enum: - replace - refund order_version: type: string title: order_version description: The version of the order when the claim is applied. created_by: type: string title: created_by description: The ID of the user that created the claim. canceled_at: type: string title: canceled_at description: The date the claim was canceled. format: date-time deleted_at: type: string format: date-time title: deleted_at description: The date the claim was deleted. AdminClaimDeleteResponse: type: object description: The details of the deleted claim. x-schemaName: AdminClaimDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The claim's ID. object: type: string title: object description: The name of the deleted object. default: claim deleted: type: boolean title: deleted description: Whether the claim was deleted. AdminClaimListResponse: type: object description: The paginated list of claims. x-schemaName: AdminClaimListResponse required: - limit - offset - count - claims properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. claims: type: array description: The list of claims. items: $ref: '#/components/schemas/AdminClaim' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminClaimOrderResponse: type: object description: The created claim's details. x-schemaName: AdminClaimOrderResponse required: - order - claim properties: order: $ref: '#/components/schemas/Order' claim: $ref: '#/components/schemas/AdminClaim' AdminClaimPreviewResponse: type: object description: The details of the claim, as well as a preview of the order when the claim is applied. x-schemaName: AdminClaimPreviewResponse required: - order_preview - claim properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' claim: $ref: '#/components/schemas/AdminClaim' AdminClaimRequestResponse: type: object description: The details of the claim, its return, and a preview of the order when the claim is applied. x-schemaName: AdminClaimRequestResponse required: - return - order_preview - claim properties: return: $ref: '#/components/schemas/AdminReturn' order_preview: $ref: '#/components/schemas/AdminOrderPreview' claim: $ref: '#/components/schemas/AdminClaim' AdminClaimResponse: type: object description: The claim's details. x-schemaName: AdminClaimResponse required: - claim properties: claim: $ref: '#/components/schemas/AdminClaim' AdminClaimReturnPreviewResponse: type: object description: The details of the claim's return, with a preview of the order when the claim's return is applied. x-schemaName: AdminClaimReturnPreviewResponse required: - order_preview - return properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' return: $ref: '#/components/schemas/AdminReturn' AdminCollection: type: object description: The product collection's details. x-schemaName: AdminCollection required: - id - title - handle - created_at - updated_at - deleted_at - metadata properties: id: type: string title: id description: The collection's ID. title: type: string title: title description: The collection's title. handle: type: string title: handle description: The collection's handle. created_at: type: string format: date-time title: created_at description: The collection's creation date. updated_at: type: string format: date-time title: updated_at description: The collection's update date. deleted_at: type: string format: date-time title: deleted_at description: The collection's deletion date. products: type: array description: The collection's products. items: $ref: '#/components/schemas/BaseProduct' metadata: type: object description: The collection's metadata, used to store custom key-value pairs. AdminCollectionDeleteResponse: type: object description: The details of the deleted collection. x-schemaName: AdminCollectionDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The collection's ID. object: type: string title: object description: The name of the deleted object. default: collection deleted: type: boolean title: deleted description: Whether the collection was deleted. AdminCollectionListResponse: type: object description: The paginated list of product collections. x-schemaName: AdminCollectionListResponse required: - limit - offset - count - collections properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned results. count: type: number title: count description: The total number of items. collections: type: array description: The list of product collections. items: $ref: '#/components/schemas/AdminCollection' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminCollectionResponse: type: object description: The collection's details. x-schemaName: AdminCollectionResponse required: - collection properties: collection: $ref: '#/components/schemas/AdminCollection' AdminCreateApiKey: type: object description: The API key's details. x-schemaName: AdminCreateApiKey required: - title - type properties: title: type: string title: title description: The API key's title. type: type: string description: The API key's type. Use `secret` for a user's API key; Use `publishable` for Publishable API keys. enum: - publishable - secret AdminCreateCustomerGroup: type: object description: The customer group's details. x-schemaName: AdminCreateCustomerGroup required: - name properties: name: type: string title: name description: The customer group's name. metadata: type: object description: The customer group's metadata, used to store custom key-value pairs. AdminCreateFulfillment: type: object description: The filfillment's details. x-schemaName: AdminCreateFulfillment required: - data - items - metadata - order_id - location_id - provider_id - delivery_address - labels properties: location_id: type: string title: location_id description: The ID of the location the items are fulfilled from. provider_id: type: string title: provider_id description: The ID of the provider handling this fulfillment. delivery_address: type: object description: The address to deliver the items to. properties: first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. phone: type: string title: phone description: The customer's phone. company: type: string title: company description: The delivery address's company. address_1: type: string title: address_1 description: The delivery address's first line. address_2: type: string title: address_2 description: The delivery address's second line. city: type: string title: city description: The delivery address's city. country_code: type: string title: country_code description: The delivery address's country code. province: type: string title: province description: The delivery address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The delivery address's postal code. metadata: type: object description: The delivery address's metadata, used to store custom key-value pairs. items: type: array description: The items to fulfill. items: type: object description: An item to fulfill. required: - title - quantity - sku - barcode properties: title: type: string title: title description: The item's title. sku: type: string title: sku description: The item's SKU. quantity: type: number title: quantity description: The quantity to fulfill of the item. barcode: type: string title: barcode description: The item's barcode. line_item_id: type: string title: line_item_id description: The ID of the associated line item. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item associated with the underlying variant. labels: type: array description: The labels for the fulfillment's shipments. items: type: object description: A shipment's label. required: - tracking_number - tracking_url - label_url properties: tracking_number: type: string title: tracking_number description: The label's tracking number. tracking_url: type: string title: tracking_url description: The label's tracking URL. label_url: type: string title: label_url description: The label's URL. order_id: type: string title: order_id description: The ID of the order this fulfillment is created for. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option used in the order. data: type: object description: Any data useful for the fulfillment provider to handle the fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property description: Learn more about the data property. packed_at: type: string title: packed_at description: The date and time the fulfillment was packed. format: date-time shipped_at: type: string title: shipped_at description: The date and time the fulfillment was shipped. format: date-time delivered_at: type: string title: delivered_at description: The date and time the fulfillment was delivered. format: date-time canceled_at: type: string title: canceled_at description: The date and time the fulfillment was canceled. format: date-time metadata: type: object description: The fulfillment's metadata, used to store custom key-value pairs. AdminCreateGiftCardParams: type: object description: The details of the gift card to create. x-schemaName: AdminCreateGiftCardParams required: - code - value - currency_code - expires_at - reference_id - reference - line_item_id - customer_id - metadata properties: code: type: string title: code description: The gift card's code. value: type: number title: value description: The gift card's amount. example: 20 currency_code: type: string title: currency_code description: The gift card's currency code. example: usd expires_at: type: string title: expires_at description: The date the gift card expires at. reference_id: type: string title: reference_id description: The gift card's reference ID. reference: type: string title: reference description: The gift card's reference. line_item_id: type: string title: line_item_id description: The ID of the line item associated with the gift card. customer_id: type: string title: customer_id description: The ID of the customer associated with the gift card. metadata: type: object description: The gift card's metadata, can hold custom key-value pairs. AdminCreateInventoryItem: type: object description: The inventory item's details. x-schemaName: AdminCreateInventoryItem properties: sku: type: string title: sku description: The inventory item's SKU. hs_code: type: string title: hs_code description: The inventory item's HS code. weight: type: number title: weight description: The inventory item's weight. length: type: number title: length description: The inventory item's length. height: type: number title: height description: The inventory item's height. width: type: number title: width description: The inventory item's width. origin_country: type: string title: origin_country description: The inventory item's origin country. mid_code: type: string title: mid_code description: The inventory item's mid code. material: type: string title: material description: The inventory item's material. title: type: string title: title description: The inventory item's title. description: type: string title: description description: The description of the variant associated with the inventory item. requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. thumbnail: type: string title: thumbnail description: The inventory item's thumbnail. metadata: type: object description: The inventory item's metadata, used to store custom key-value pairs. AdminCreateOrderCreditLines: type: object description: The details of a credit line to add to an order. x-schemaName: AdminCreateOrderCreditLines required: - amount - reference - reference_id properties: amount: type: number title: amount description: The amount of the credit line. example: 100 reference: type: string title: reference description: The name of the table that the credit line is referencing. example: order reference_id: type: string title: reference_id description: The ID of a record in the table that the credit line is referencing. example: order_123 metadata: type: object description: The credit line's metadata, can hold custom key-value pairs. AdminCreatePriceList: type: object description: The price list's details. x-schemaName: AdminCreatePriceList required: - title - description properties: title: type: string title: title description: The price list's title. description: type: string title: description description: The price list's description. starts_at: type: string title: starts_at description: The date and time the price list starts at. format: date-time ends_at: type: string title: ends_at description: The date and time the price list ends at. format: date-time status: type: string description: The price list's status. enum: - active - draft type: type: string description: The price list's type. enum: - sale - override rules: type: object description: The price list's rules. example: product_category_id: pcat_123 prices: type: array description: The price list's prices. items: type: object description: A price's details. required: - currency_code - variant_id - amount properties: currency_code: type: string title: currency_code description: The price's currency code. amount: type: number title: amount description: The price's amount. variant_id: type: string title: variant_id description: The ID of the product variant this price is for. min_quantity: type: number title: min_quantity description: The minimum quantity required in the cart for this price to be applied. max_quantity: type: number title: max_quantity description: The maximum quantity in the cart that shouldn't be crossed for this price to be applied. rules: type: object description: The price's rules. example: region_id: reg_123 AdminCreatePricePreference: type: object description: The price preference's details. x-schemaName: AdminCreatePricePreference properties: attribute: type: string title: attribute description: The name of the attribute the price preference applies on. example: currency_code value: type: string title: value description: The attribute's value. example: usd is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the price is tax inclusive if the value of the specified attribute matches the specified value. AdminCreateProduct: type: object description: The product's details. x-schemaName: AdminCreateProduct required: - title - options properties: title: type: string title: title description: The product's title. subtitle: type: string title: subtitle description: The product's subtitle. description: type: string title: description description: The product's description. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. discountable: type: boolean title: discountable description: Whether the product is discountable. images: type: array description: The product's images. items: type: object description: A product's image details. required: - url properties: url: type: string title: url description: The image's URL. thumbnail: type: string title: thumbnail description: The URL of the product's thumbnail. handle: type: string title: handle description: The product's handle. status: type: string description: The product's status. enum: - draft - proposed - published - rejected type_id: type: string title: type_id description: The ID of the type the product belongs to. collection_id: type: string title: collection_id description: The ID of the collection the product belongs to. categories: type: array description: The categories the product belongs to. items: type: object description: A category's details. required: - id properties: id: type: string title: id description: The category's ID. tags: type: array description: The product's tags. items: type: object description: A tag's details. required: - id properties: id: type: string title: id description: The tag's ID. options: type: array description: The product's options. items: $ref: '#/components/schemas/AdminCreateProductOption' variants: type: array description: The product's variants. items: $ref: '#/components/schemas/AdminCreateProductVariant' sales_channels: type: array description: The sales channels the product is available in. items: type: object description: A sales channel's details. required: - id properties: id: type: string title: id description: The sales channel's ID. weight: type: number title: weight description: The product's weight. length: type: number title: length description: The product's length. height: type: number title: height description: The product's height. width: type: number title: width description: The product's width. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. origin_country: type: string title: origin_country description: The product's origin country. material: type: string title: material description: The product's material. metadata: type: object description: The product's metadata, used to store custom key-value pairs. external_id: type: string title: external_id description: The ID of the product in an external or third-party system. shipping_profile_id: type: string title: shipping_profile_id description: The ID of the product's shipping profile. AdminCreateProductCategory: type: object description: The product category's details. x-schemaName: AdminCreateProductCategory required: - name properties: name: type: string title: name description: The product category's name. description: type: string title: description description: The product category's description. handle: type: string title: handle description: The product category's handle. is_internal: type: boolean title: is_internal description: Whether the product category is only used and seen by admin users. is_active: type: boolean title: is_active description: Whether the product category is active. parent_category_id: type: string title: parent_category_id description: The ID of a category that's the parent of this one. rank: type: number title: rank description: The sorting order of the product category among sibling categories. metadata: type: object description: The product category's metadata, used to store custom key-value pairs. AdminCreateProductOption: type: object description: The product option's details. x-schemaName: AdminCreateProductOption required: - title - values properties: title: type: string title: title description: The product option's title. values: type: array description: The product option's values. items: type: string title: values description: A value. AdminCreateProductTag: type: object description: The product tag's details. x-schemaName: AdminCreateProductTag required: - value properties: value: type: string title: value description: The product tag's value. metadata: type: object description: The product tag's metadata, used to store custom key-value pairs. AdminCreateProductType: type: object description: The details of the product type to create. x-schemaName: AdminCreateProductType required: - value properties: metadata: type: object description: The product's metadata, used to store custom key-value pairs. value: type: string title: value description: The product type's value. AdminCreateProductVariant: type: object description: The product variant's details. x-schemaName: AdminCreateProductVariant required: - title - prices properties: title: type: string title: title description: The variant's title. sku: type: string title: sku description: The variant's SKU. ean: type: string title: ean description: The variant's EAN. upc: type: string title: upc description: The variant's UPC. barcode: type: string title: barcode description: The variant's barcode. hs_code: type: string title: hs_code description: The variant's HS code. mid_code: type: string title: mid_code description: The variant's MID code. allow_backorder: type: boolean title: allow_backorder description: Whether it's allowed to order this variant when it's out of stock. manage_inventory: type: boolean title: manage_inventory description: Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock. variant_rank: type: number title: variant_rank description: The sorting order of the variant among other variants in the product. weight: type: number title: weight description: The variant's weight. length: type: number title: length description: The variant's length. height: type: number title: height description: The variant's height. width: type: number title: width description: The variant's width. origin_country: type: string title: origin_country description: The variant's origin country. material: type: string title: material description: The variant's material. metadata: type: object description: The variant's metadata, used to store custom key-value pairs. prices: type: array description: The variant's prices. items: $ref: '#/components/schemas/AdminCreateProductVariantPrice' options: type: object description: The variant's options, where the key is an option's name, and the value is the option's value. example: Color: Black inventory_items: type: array description: The variant's inventory items to create. items: $ref: '#/components/schemas/AdminCreateProductVariantInventoryKit' AdminCreateProductVariantInventoryKit: type: object description: The details of a variant's inventory item. x-schemaName: AdminCreateProductVariantInventoryKit required: - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The inventory item's ID. required_quantity: type: number title: required_quantity description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`. AdminCreateProductVariantPrice: type: object description: The details of a variant's price. x-schemaName: AdminCreateProductVariantPrice required: - currency_code - amount properties: currency_code: type: string title: currency_code description: The price's currency code. amount: type: number title: amount description: The price's amount. min_quantity: type: number title: min_quantity description: The minimum quantity that must be available in the cart for this price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity that must not be surpassed in the cart for this price to apply. rules: type: object description: The price's rules. example: region_id: reg_123 properties: region_id: type: string title: region_id description: The ID of a region. required: - region_id AdminCreatePromotionRule: type: object description: The promotion rule's details. x-schemaName: AdminCreatePromotionRule required: - operator - attribute - values properties: operator: type: string description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value. enum: - gte - lte - gt - lt - eq - ne - in description: type: string title: description description: The rule's description. attribute: type: string title: attribute description: The attribute to compare against when checking whether a promotion can be applied on a cart. example: items.product.id values: oneOf: - type: string title: values description: The attribute's value. example: prod_123 - type: array description: The allowed attribute values. items: type: string title: values description: An attribute value. example: prod_123 AdminCreateRefundReason: type: object description: The refund reason's details. x-schemaName: AdminCreateRefundReason required: - label properties: label: type: string title: label description: The refund reason's label. description: type: string title: description description: The refund reason's description. AdminCreateRegion: type: object description: The region's details. x-schemaName: AdminCreateRegion required: - name - currency_code properties: name: type: string title: name description: The region's name. currency_code: type: string title: currency_code description: The region's currency code. example: usd countries: type: array description: The region's countries. items: type: string title: countries description: A country code. example: us automatic_taxes: type: boolean title: automatic_taxes description: Whether taxes are calculated automatically during checkout in this region. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether prices in this region are tax inclusive. payment_providers: type: array description: The payment providers enabled in this region. items: type: string title: payment_providers description: A payment provider's ID. example: pp_stripe_stripe metadata: type: object description: The region's metadata, used to store custom key-value pairs. AdminCreateReservation: type: object description: The reservation's details. x-schemaName: AdminCreateReservation required: - location_id - inventory_item_id - quantity properties: line_item_id: type: string title: line_item_id description: The ID of the line item this reservation is created for. location_id: type: string title: location_id description: The ID of the location the quantity is reserved from. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item associated with the line item's variant. quantity: type: number title: quantity description: The reserved quantity. description: type: string title: description description: The reservation's description. metadata: type: object description: The reservation's metadata, used to store custom key-value pairs. AdminCreateReturnReason: type: object description: The details of the return reason to create. x-schemaName: AdminCreateReturnReason required: - value - label properties: value: type: string title: value description: The return reason's value. label: type: string title: label description: The return reason's label. description: type: string title: description description: The return reason's description. parent_return_reason_id: type: string title: parent_return_reason_id description: The ID of the parent return reason. metadata: type: object description: The return reason's metadata, can hold custom key-value pairs. AdminCreateSalesChannel: type: object description: The sales channel's details. x-schemaName: AdminCreateSalesChannel required: - name properties: name: type: string title: name description: The sales channel's name. description: type: string title: description description: The sales channel's description. is_disabled: type: boolean title: is_disabled description: Whether the sales channel is disabled. metadata: type: object description: The sales channel's metadata, used to store custom key-value pairs. AdminCreateShipment: type: object description: The shipment's details. x-schemaName: AdminCreateShipment required: - labels properties: labels: type: array description: The shipment's labels. items: type: object description: A shipment label's details. required: - tracking_number - tracking_url - label_url properties: tracking_number: type: string title: tracking_number description: The label's tracking number. tracking_url: type: string title: tracking_url description: The label's tracking URL. label_url: type: string title: label_url description: The label's URL. AdminCreateShippingOption: type: object description: The shipping option's details. x-schemaName: AdminCreateShippingOption required: - name - service_zone_id - shipping_profile_id - price_type - provider_id - type - prices properties: name: type: string title: name description: The shipping option's name. service_zone_id: type: string title: service_zone_id description: The ID of the associated service zone. shipping_profile_id: type: string title: shipping_profile_id description: The ID of the associated shipping profile. data: type: object description: The shipping option's data, useful for the fulfillment provider handling its processing. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property price_type: type: string description: The shipping option's price type. If `flat`, the shipping option has a fixed price set in `prices`. Otherwise, the shipping option's price is calculated by the fulfillment provider. enum: - flat - calculated provider_id: type: string title: provider_id description: The ID of the fulfillment provider handling this shipping option. type: $ref: '#/components/schemas/AdminCreateShippingOptionType' prices: type: array description: The shipping option's prices. items: oneOf: - type: object description: The price's details. x-schemaName: AdminCreateShippingOptionPriceWithCurrency required: - currency_code - amount properties: currency_code: type: string title: currency_code description: The price's currency code. example: usd amount: type: number title: amount description: The price's amount. - type: object description: The price's details. x-schemaName: AdminCreateShippingOptionPriceWithRegion required: - region_id - amount properties: region_id: type: string title: region_id description: The ID of the region this price is used in. amount: type: number title: amount description: The price's amount. rules: type: array description: The shipping option's rules. items: $ref: '#/components/schemas/AdminCreateShippingOptionRule' AdminCreateShippingOptionRule: type: object description: The details of the shipping option rule. x-schemaName: AdminCreateShippingOptionRule required: - operator - attribute - value properties: operator: type: string description: The operator used to check whether a rule applies. enum: - gt - lt - eq - ne - in - lte - gte - nin attribute: type: string title: attribute description: The name of a property or table that the rule applies to. example: customer_group value: oneOf: - type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 - type: array description: Values of the attribute that enable this rule. items: type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 AdminCreateShippingOptionType: type: object description: The shipping option type's details. x-schemaName: AdminCreateShippingOptionType required: - label - description - code properties: label: type: string title: label description: The type's label. description: type: string title: description description: The type's description. code: type: string title: code description: The type's code. AdminCreateShippingProfile: type: object description: The shipping profile's details. x-schemaName: AdminCreateShippingProfile required: - name - type properties: name: type: string title: name description: The shipping profile's name. type: type: string title: type description: The shipping profile's type. metadata: type: object description: The shipping profile's metadata, used to store custom key-value pairs. AdminCreateStockLocation: type: object description: The stock location's details. x-schemaName: AdminCreateStockLocation required: - name properties: name: type: string title: name description: The stock location's name. address_id: type: string title: address_id description: The ID of the stock location's address. address: $ref: '#/components/schemas/AdminUpsertStockLocationAddress' metadata: type: object description: The stock location's metadata, used to store custom key-value pairs. AdminCreateStoreCreditAccount: type: object description: The details of the store credit account to create. x-schemaName: AdminCreateStoreCreditAccount required: - currency_code - customer_id properties: currency_code: type: string title: currency_code description: The store credit account's currency code. example: usd customer_id: type: string title: customer_id description: The ID of the customer that the store credit account belongs to. metadata: type: object description: The store credit account's metadata, can hold custom key-value pairs. AdminCreateTaxRate: type: object description: The tax rate's details. x-schemaName: AdminCreateTaxRate required: - name - tax_region_id - code properties: name: type: string title: name description: The tax rate's name. example: VAT tax_region_id: type: string title: tax_region_id description: The ID of the tax region this rate belongs to. rate: type: number title: rate description: The rate to charge. example: 10 code: type: string title: code description: The code the tax rate is identified by. rules: type: array description: The tax rate's rules. items: $ref: '#/components/schemas/AdminCreateTaxRateRule' is_default: type: boolean title: is_default description: Whether the tax rate is the default in its tax region. is_combinable: type: boolean title: is_combinable description: Whether the tax rate should be combined with parent rates. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates metadata: type: object description: The tax rate's metadata, used to store custom key-value pairs. AdminCreateTaxRateRule: type: object description: The tax rate rule's details. x-schemaName: AdminCreateTaxRateRule required: - reference - reference_id properties: reference: type: string title: reference description: The name of a table in the database that this rule points to. example: product_type reference_id: type: string title: reference_id description: The ID of a record in the table specified in reference. example: ptype_123 AdminCreateTaxRegion: type: object description: The tax region's details. x-schemaName: AdminCreateTaxRegion required: - country_code properties: country_code: type: string title: country_code description: The tax region's country code. example: us province_code: type: string title: province_code description: The tax region's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 parent_id: type: string title: parent_id description: The ID of the parent tax region. default_tax_rate: type: object description: The tax region's default tax rate. required: - code - name properties: rate: type: number title: rate description: The rate to charge. example: 10 code: type: string title: code description: The code the tax rate is identified by name: type: string title: name description: The default tax rate's name. example: VAT is_combinable: type: boolean description: Whether the tax rate should be combined with parent rates. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates metadata: type: object description: The default tax rate's metadata, used to store custom key-value pairs. metadata: type: object description: The tax region's metadata, used to store custom key-value pairs. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate the tax rate in this tax region. AdminCreateVariantInventoryItem: type: object description: The details of the variant-inventory item association. x-schemaName: AdminCreateVariantInventoryItem required: - inventory_item_id - required_quantity properties: required_quantity: type: number title: required_quantity description: The quantity of the variant in the inventory item. inventory_item_id: type: string title: inventory_item_id description: The inventory item's ID. AdminCreateWorkflowsAsyncResponse: type: object description: The details of changing a workflow execution's step status. x-schemaName: AdminCreateWorkflowsAsyncResponse required: - transaction_id - step_id properties: transaction_id: type: string title: transaction_id description: The workflows execution's transaction ID. step_id: type: string title: step_id description: The ID of the step whose status was changed. response: description: Sets the step's response. It accepts any type. compensate_input: description: Sets the compensation function's input. It accepts any response. action: type: string description: Whether to invoke or compensate the step. enum: - invoke - compensate AdminCreateWorkflowsRun: type: object description: The details of the workflow to execute. x-schemaName: AdminCreateWorkflowsRun properties: input: description: The input to pass to the workflow. Can be of any type. transaction_id: type: string title: transaction_id description: The ID of the workflow execution's transaction. AdminCurrency: type: object description: The currency's currencies. x-schemaName: AdminCurrency required: - code - symbol - symbol_native - name - decimal_digits - rounding - created_at - updated_at - deleted_at properties: code: type: string title: code description: The currency's code. example: usd symbol: type: string title: symbol description: The currency's symbol. example: $ symbol_native: type: string title: symbol_native description: The currency's native symbol, if different than the symbol. example: $ name: type: string title: name description: The currency's name. decimal_digits: type: number title: decimal_digits description: The number of digits after the decimal for prices in this currency. rounding: type: number title: rounding description: The rounding percision applied on prices in this currency. created_at: type: string format: date-time title: created_at description: The currency's creation date. updated_at: type: string format: date-time title: updated_at description: The currency's update date. deleted_at: type: string format: date-time title: deleted_at description: The currency's deletion date. AdminCurrencyListResponse: type: object description: The paginated list of currencies. x-schemaName: AdminCurrencyListResponse required: - limit - offset - count - currencies properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. currencies: type: array description: The list of currencies. items: $ref: '#/components/schemas/AdminCurrency' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminCurrencyResponse: type: object description: The currency's details. x-schemaName: AdminCurrencyResponse required: - currency properties: currency: $ref: '#/components/schemas/AdminCurrency' AdminCustomer: type: object description: The customer's details. x-schemaName: AdminCustomer required: - has_account - addresses - id - email - default_billing_address_id - default_shipping_address_id - company_name - first_name - last_name properties: id: type: string title: id description: The customer's ID. has_account: type: boolean title: has_account description: Whether the customer is registered. groups: type: array description: The customer's groups. items: $ref: '#/components/schemas/AdminCustomerGroup' email: type: string title: email description: The customer's email. format: email default_billing_address_id: type: string title: default_billing_address_id description: The ID of the address used as the default billing address. default_shipping_address_id: type: string title: default_shipping_address_id description: The ID of the address used as the default shipping address. company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. addresses: type: array description: The customer's addresses. items: $ref: '#/components/schemas/AdminCustomerAddress' phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata, used to store custom key-value pairs. created_by: type: string title: created_by description: The ID of the user that created this customer, if available. created_at: type: string format: date-time title: created_at description: The customer's creation date. updated_at: type: string format: date-time title: updated_at description: The customer's update date. deleted_at: type: string format: date-time title: deleted_at description: The customer's deletion date. AdminCustomerAddress: type: object description: The customer's address. x-schemaName: AdminCustomerAddress required: - id - address_name - is_default_shipping - is_default_billing - customer_id - company - first_name - last_name - address_1 - address_2 - city - country_code - province - postal_code - phone - metadata - created_at - updated_at properties: id: type: string title: id description: The address's ID. address_name: type: string title: address_name description: The address's name. is_default_shipping: type: boolean title: is_default_shipping description: Whether the address is the default shipping address. is_default_billing: type: boolean title: is_default_billing description: Whether the address is the default billing address. customer_id: type: string title: customer_id description: The ID of the customer that this address belongs to. company: type: string title: company description: The customer's company. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata, used to store custom key-value pairs. created_at: type: string format: date-time title: created_at description: The address's creation date. updated_at: type: string format: date-time title: updated_at description: The address's update date. AdminCustomerAddressResponse: type: object description: The address's details. x-schemaName: AdminCustomerAddressResponse required: - address properties: address: $ref: '#/components/schemas/AdminCustomerAddress' AdminCustomerGroup: type: object description: The customer group's details. x-schemaName: AdminCustomerGroup required: - customers - id - name - metadata - created_at - updated_at properties: id: type: string title: id description: The customer group's ID. name: type: string title: name description: The customer group's name. customers: type: array description: The customer group's customers. items: type: object metadata: type: object description: The customer group's metadata, used to store custom key-value pairs. created_at: type: string format: date-time title: created_at description: The customer group's creation date. updated_at: type: string format: date-time title: updated_at description: The customer group's update date. AdminCustomerGroupResponse: type: object description: The customer group's details. x-schemaName: AdminCustomerGroupResponse required: - customer_group properties: customer_group: $ref: '#/components/schemas/AdminCustomerGroup' AdminCustomerInGroupFilters: type: object description: Filters to apply on customers to retrieve their groups. x-schemaName: AdminCustomerInGroupFilters properties: id: oneOf: - type: string title: id description: Filter by a customer's ID. - type: array description: Filter by customer IDs. items: type: string title: id description: A customer's ID. email: oneOf: - type: string title: email description: Filter by a customer's email. format: email - type: array description: Filter by customer emails. items: type: string title: email description: A customer's email. format: email - type: object description: Apply filters on the customer's email. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). default_billing_address_id: oneOf: - type: string title: default_billing_address_id description: Filter by the ID of a customer's default billing address. - type: array description: Filter by the IDs of a customers' default billing address. items: type: string title: default_billing_address_id description: The ID of a customer's default billing address. default_shipping_address_id: oneOf: - type: string title: default_shipping_address_id description: Filter by the ID of a customer's default shipping address. - type: array description: Filter by the IDs of a customers' default shipping address. items: type: string title: default_shipping_address_id description: The ID of a customer's default shipping address. company_name: oneOf: - type: string title: company_name description: Filter by a customer's company name. - type: array description: Filter by customers' company names. items: type: string title: company_name description: A company name. first_name: oneOf: - type: string title: first_name description: Filter by a customer's first name. - type: array description: Filter by customers' first names. items: type: string title: first_name description: A first name. last_name: oneOf: - type: string title: last_name description: Filter by a customer's last name. - type: array description: Filter by customers' last names. items: type: string title: last_name description: A last name. created_by: oneOf: - type: string title: created_by description: Filter by the ID of a user to retrieve the groups of the customers they created. - type: array description: Filter by the ID of users to retrieve the groups of the customers they created. items: type: string title: created_by description: A user's ID. created_at: type: object description: Filter the customer's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). updated_at: type: object description: Filter the customer's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). deleted_at: type: object description: Filter the customer's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by an exact match. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). AdminCustomerResponse: type: object description: The customer's details. x-schemaName: AdminCustomerResponse required: - customer properties: customer: $ref: '#/components/schemas/AdminCustomer' AdminDeletePaymentCollectionResponse: type: object description: The result of deleting the payment collection. x-schemaName: AdminDeletePaymentCollectionResponse required: - id - object - deleted properties: id: type: string title: id description: The payment collection's ID. object: type: string title: object description: The name of the object that was deleted. default: payment-collection deleted: type: boolean title: deleted description: Whether the object was deleted. AdminDraftOrder: type: object description: The draft order's details. x-schemaName: AdminDraftOrder required: - payment_collections - items - shipping_methods - status - currency_code - id - version - region_id - customer_id - sales_channel_id - email - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: payment_collections: type: array description: The draft order's payment collections. items: $ref: '#/components/schemas/AdminPaymentCollection' fulfillments: type: array description: The draft order's fulfillments. items: $ref: '#/components/schemas/AdminOrderFulfillment' sales_channel: $ref: '#/components/schemas/AdminSalesChannel' customer: $ref: '#/components/schemas/AdminCustomer' shipping_address: $ref: '#/components/schemas/AdminOrderAddress' billing_address: $ref: '#/components/schemas/AdminOrderAddress' items: type: array description: The draft order's items. items: $ref: '#/components/schemas/AdminOrderLineItem' shipping_methods: type: array description: The draft order's shipping methods. items: $ref: '#/components/schemas/AdminOrderShippingMethod' status: type: string title: status description: The draft order's status. currency_code: type: string title: currency_code description: The draft order's currency code. example: usd id: type: string title: id description: The draft order's ID. version: type: number title: version description: The draft order's version. region_id: type: string title: region_id description: The ID of the region associated with the draft order. customer_id: type: string title: customer_id description: The ID of the customer that the draft order belongs to. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel that the draft order is placed in. email: type: string title: email description: The customer email associated with the draft order. format: email display_id: type: number title: display_id description: The draft order's display ID. payment_status: type: string description: The draft order's payment status. enum: - not_paid - awaiting - authorized - partially_authorized - canceled - captured - partially_captured - partially_refunded - refunded - requires_action fulfillment_status: type: string description: The draft order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered transactions: type: array description: The draft order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The draft order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the draft order was created. updated_at: type: string format: date-time title: updated_at description: The date the draft order was updated. original_item_total: type: number title: original_item_total description: The total of the draft order's items including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The total of the draft order's items excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The tax total of the draft order's items excluding promotions. item_total: type: number title: item_total description: The total of the draft order's items including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The total of the draft order's items excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the draft order's items including promotions. original_total: type: number title: original_total description: The draft order's total excluding promotions, including taxes. original_subtotal: type: number title: original_subtotal description: The draft order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The draft order's tax total, excluding promotions. total: type: number title: total description: The draft order's total including taxes and promotions. subtotal: type: number title: subtotal description: The draft order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The draft order's tax total including promotions. discount_total: type: number title: discount_total description: The draft order's discount or promotions total. discount_tax_total: type: number title: discount_tax_total description: The tax total of draft order's discount or promotion. gift_card_total: type: number title: gift_card_total description: The draft order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The tax total of the draft order's gift card. shipping_total: type: number title: shipping_total description: The draft order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The draft order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The tax total of the draft order's shipping. original_shipping_total: type: number title: original_shipping_total description: The draft order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The draft order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The tax total of the draft order's shipping excluding promotions. region: $ref: '#/components/schemas/AdminRegion' credit_lines: type: array description: The draft order's credit lines. items: $ref: '#/components/schemas/OrderCreditLine' AdminDraftOrderListResponse: type: object description: The list of draft orders with pagination fields. x-schemaName: AdminDraftOrderListResponse required: - limit - offset - count - draft_orders properties: limit: type: number title: limit description: The maximum number of items retrieved. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items available. draft_orders: type: array description: The list of draft orders. items: $ref: '#/components/schemas/AdminDraftOrder' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminDraftOrderPreview: type: object description: The draft order preview's details. x-schemaName: AdminDraftOrderPreview required: - return_requested_total - order_change - status - currency_code - id - version - region_id - customer_id - sales_channel_id - email - payment_collections - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: return_requested_total: type: number title: return_requested_total description: The total of the requested return. order_change: $ref: '#/components/schemas/AdminOrderChange' items: type: array description: The order's items. items: allOf: - type: object description: An order's item. x-schemaName: BaseOrderLineItem required: - id - title - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - metadata - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The URL of the item's thumbnail. variant: $ref: '#/components/schemas/BaseProductVariant' variant_id: type: string title: variant_id description: The ID of the associated variant. product: $ref: '#/components/schemas/AdminProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The title of the item's product. product_description: type: string title: product_description description: The description of the item's product. product_subtitle: type: string title: product_subtitle description: The subtitle of the item's product. product_type: type: string title: product_type description: The ID of type of the item's product. product_collection: type: string title: product_collection description: The ID of collection of the item's product. product_handle: type: string title: product_handle description: The handle of the item's product. variant_sku: type: string title: variant_sku description: The SKU of the item's variant. variant_barcode: type: string title: variant_barcode description: The barcode of the item's variant. variant_title: type: string title: variant_title description: The title of the item's variant. variant_option_values: type: object description: The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value. requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item's price includes taxes. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: $ref: '#/components/schemas/BaseOrderLineItemTaxLine' adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/BaseOrderLineItemAdjustment' detail: $ref: '#/components/schemas/BaseOrderItemDetail' created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The tax total of the item excluding promotions. item_total: type: number title: item_total description: The item's total for a single unit including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The item's total for a single unit excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total for a single unit of the item including promotions. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the item including promotions. discount_total: type: number title: discount_total description: The total of the item's discount / promotion. discount_tax_total: type: number title: discount_tax_total description: The tax total of the item's discount / promotion refundable_total: type: number title: refundable_total description: The total refundable amount of the item's total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total refundable amount of the item's total for a single unit. - type: object description: An order's item. properties: actions: type: array description: The actions applied on an item. items: type: object description: The action's details. x-schemaName: BaseOrderChangeAction shipping_methods: type: array description: The order's shipping methods. items: allOf: - type: object description: The shipping method's details. x-schemaName: BaseOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order this shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The data relevant for the fulfillment provider to process this shipment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments. items: $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment' original_total: oneOf: - type: string title: original_total description: The shipping method's total including taxes, excluding promotions. - type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: oneOf: - type: string title: original_subtotal description: The shipping method's total excluding taxes, including promotions. - type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: oneOf: - type: string title: original_tax_total description: The tax total of the shipping method excluding promotions. - type: number title: original_tax_total description: The tax total of the shipping method excluding promotions. total: oneOf: - type: string title: total description: The shipping method's total including taxes and promotions. - type: number title: total description: The shipping method's total including taxes and promotions. subtotal: oneOf: - type: string title: subtotal description: The shipping method's total excluding taxes, including promotions. - type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: oneOf: - type: string title: tax_total description: The tax total of the shipping method including promotions. - type: number title: tax_total description: The tax total of the shipping method including promotions. discount_total: oneOf: - type: string title: discount_total description: The total of the shipping method's promotion. - type: number title: discount_total description: The total of the shipping method's promotion. discount_tax_total: oneOf: - type: string title: discount_tax_total description: The tax total of the shipping method's promotion. - type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. - type: object description: The shipping method's details. properties: actions: type: array description: The actions applied on the shipping method. items: type: object description: The action's details. x-schemaName: BaseOrderChangeAction currency_code: type: string title: currency_code description: The order's currency code. version: type: number title: version description: The order's version when this preview is applied. id: type: string title: id description: The order's ID. region_id: type: string title: region_id description: The ID of the order's associated region. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel that the order was placed in. email: type: string title: email description: The email of the customer that placed the order. format: email display_id: type: number title: display_id description: The order's display ID. shipping_address: $ref: '#/components/schemas/AdminOrderAddress' billing_address: $ref: '#/components/schemas/AdminOrderAddress' payment_collections: type: array description: The order's payment collections. items: $ref: '#/components/schemas/AdminPaymentCollection' payment_status: type: string description: The order's payment status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - captured - partially_captured - partially_refunded - refunded - requires_action fulfillments: type: array description: The order's fulfillments. items: $ref: '#/components/schemas/AdminOrderFulfillment' fulfillment_status: type: string description: The order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The total of the order's items including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The total of the order's items excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The tax total of the order's items excluding promotions. item_total: type: number title: item_total description: The total of the order's items including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The total of the order's items excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the order's items including promotions. original_total: type: number title: original_total description: The order's total excluding promotions, including taxes. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The order's tax total, excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The order's tax total including promotions. discount_total: type: number title: discount_total description: The order's discount or promotions total. discount_tax_total: type: number title: discount_tax_total description: The tax total of order's discount or promotion. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The tax total of the order's gift card. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The tax total of the order's shipping. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The tax total of the order's shipping excluding promotions. customer: $ref: '#/components/schemas/AdminCustomer' sales_channel: $ref: '#/components/schemas/AdminSalesChannel' status: type: string title: status description: The order's status. region: $ref: '#/components/schemas/AdminRegion' credit_lines: type: array description: The order preview's credit lines. items: $ref: '#/components/schemas/OrderCreditLine' AdminDraftOrderPreviewResponse: type: object description: The details of the preview on the draft order. x-schemaName: AdminDraftOrderPreviewResponse required: - draft_order_preview properties: draft_order_preview: $ref: '#/components/schemas/AdminDraftOrderPreview' AdminDraftOrderResponse: type: object description: The draft order's details. x-schemaName: AdminDraftOrderResponse required: - draft_order properties: draft_order: $ref: '#/components/schemas/AdminDraftOrder' AdminExchange: type: object description: The exchange's details. x-schemaName: AdminExchange required: - id - order_id - created_at - updated_at - canceled_at - deleted_at - additional_items - return_items properties: order_id: type: string title: order_id description: The ID of the order the exchange is created for. return_items: type: array description: The items returned (inbound) by the exchange. items: $ref: '#/components/schemas/AdminReturnItem' additional_items: type: array description: The new items (outbound) sent by the exchange. items: $ref: '#/components/schemas/BaseExchangeItem' no_notification: type: boolean title: no_notification description: Whether to send the customer notifications when the exchange is updated. difference_due: type: number title: difference_due description: The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer. return: $ref: '#/components/schemas/AdminReturn' return_id: type: string title: return_id description: The ID of the associated exchange. id: type: string title: id description: The exchange's ID. display_id: type: string title: display_id description: The exchange's display ID. shipping_methods: type: array description: The shipping methods used to send the new (outbound) items. items: $ref: '#/components/schemas/BaseOrderShippingMethod' transactions: type: array description: The exchange's transactions. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions items: $ref: '#/components/schemas/BaseOrderTransaction' metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date that the exchange was created. updated_at: type: string format: date-time title: updated_at description: The date that the exchange was updated. order_version: type: string title: order_version description: The version of the order once the exchange is applied. created_by: type: string title: created_by description: The ID of the user that created the exchange. canceled_at: type: string title: canceled_at description: The date the exchange was canceled. format: date-time deleted_at: type: string format: date-time title: deleted_at description: The date the exchange was deleted. order: $ref: '#/components/schemas/BaseOrder' allow_backorder: type: boolean title: allow_backorder description: Whether variants that are out-of-stock can still be added as additional or outbound items. AdminExchangeDeleteResponse: type: object description: The details of deleting an exchange. x-schemaName: AdminExchangeDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The exchange's ID. object: type: string title: object description: The name of the deleted object. default: exchange deleted: type: boolean title: deleted description: Whether the exchange was deleted. AdminExchangeOrderResponse: type: object description: The exchange's details. x-schemaName: AdminExchangeOrderResponse required: - order - exchange properties: order: $ref: '#/components/schemas/Order' exchange: $ref: '#/components/schemas/AdminExchange' AdminExchangePreviewResponse: type: object description: A preview of the order once the exchange is applied. x-schemaName: AdminExchangePreviewResponse required: - order_preview - exchange properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' exchange: $ref: '#/components/schemas/AdminExchange' AdminExchangeRequestResponse: type: object description: The details of a requested exchange. x-schemaName: AdminExchangeRequestResponse required: - return - order_preview - exchange properties: return: $ref: '#/components/schemas/AdminReturn' order_preview: $ref: '#/components/schemas/AdminOrderPreview' exchange: $ref: '#/components/schemas/AdminExchange' AdminExchangeResponse: type: object description: The exchange's details. x-schemaName: AdminExchangeResponse required: - exchange properties: exchange: $ref: '#/components/schemas/AdminExchange' AdminExchangeReturnResponse: type: object description: The details of an exchange's return. x-schemaName: AdminExchangeReturnResponse required: - order_preview - return properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' return: $ref: '#/components/schemas/AdminReturn' AdminExportProductResponse: type: object description: The details of the product export. x-schemaName: AdminExportProductResponse required: - transaction_id properties: transaction_id: type: string title: transaction_id description: The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-products/:transaction-id` AdminFile: type: object description: A file's details. x-schemaName: AdminFile required: - id - url properties: id: type: string title: id description: The file's ID. url: type: string title: url description: The file's URL. AdminFileListResponse: type: object description: The list of uploaded files. x-schemaName: AdminFileListResponse required: - files properties: files: type: array description: The list of uploaded files. items: $ref: '#/components/schemas/AdminFile' AdminFileResponse: type: object description: A file's details. x-schemaName: AdminFileResponse required: - file properties: file: $ref: '#/components/schemas/AdminFile' AdminFulfillment: type: object description: The fulfillment's details. x-schemaName: AdminFulfillment required: - id - location_id - provider_id - shipping_option_id - provider - delivery_address - items - labels - packed_at - shipped_at - delivered_at - canceled_at - data - metadata - created_at - updated_at - deleted_at properties: id: type: string title: id description: The fulfillment's ID. location_id: type: string title: location_id description: The ID of the location the fulfillment's items are shipped from. provider_id: type: string title: provider_id description: The ID of the fulfillment provider handling this fulfillment. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this fulfillment is created for. provider: $ref: '#/components/schemas/AdminFulfillmentProvider' delivery_address: $ref: '#/components/schemas/AdminFulfillmentAddress' items: type: array description: The fulfillment's items. items: $ref: '#/components/schemas/AdminFulfillmentItem' labels: type: array description: The fulfillment's shipment labels. items: $ref: '#/components/schemas/AdminFulfillmentLabel' packed_at: type: string title: packed_at description: The date the fulfillment was packed at. shipped_at: type: string title: shipped_at description: The date the fulfillment was shipped at. delivered_at: type: string title: delivered_at description: The date the fulfillment was delivered at. canceled_at: type: string title: canceled_at description: The date the fulfillment was canceled at. data: type: object description: The fulfillment's data, useful for the third-party provider handling the fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The fulfillment's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the fulfillment was created at. updated_at: type: string format: date-time title: updated_at description: The date the fulfillment was updated at. deleted_at: type: string format: date-time title: deleted_at description: The date the fulfillment was deleted at. AdminFulfillmentAddress: type: object description: An address's details. x-schemaName: AdminFulfillmentAddress required: - id - fulfillment_id - company - first_name - last_name - address_1 - address_2 - city - country_code - province - postal_code - phone - metadata - created_at - updated_at - deleted_at properties: id: type: string title: id description: The address's ID. fulfillment_id: type: string title: fulfillment_id description: The ID of the fulfillment that the address belongs to. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the address was deleted. AdminFulfillmentItem: type: object description: The details of a fulfillment's item. x-schemaName: AdminFulfillmentItem required: - id - title - quantity - sku - barcode - line_item_id - inventory_item_id - fulfillment_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. quantity: type: number title: quantity description: The item's quantity to be fulfilled. sku: type: string title: sku description: The item's SKU. barcode: type: string title: barcode description: The item's barcode. line_item_id: type: string title: line_item_id description: The ID of the order's line item to be fulfilled. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item of the underlying product variant. fulfillment_id: type: string title: fulfillment_id description: The ID of the fulfillment the item belongs to. created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the item was deleted. AdminFulfillmentLabel: type: object description: The details of a fulfillmet's shipment label. x-schemaName: AdminFulfillmentLabel required: - id - tracking_number - tracking_url - label_url - fulfillment_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The label's ID. tracking_number: type: string title: tracking_number description: The label's tracking number. tracking_url: type: string title: tracking_url description: The label's tracking URL. label_url: type: string title: label_url description: The label's URL. fulfillment_id: type: string title: fulfillment_id description: The ID of the fulfillment the label is associated with. created_at: type: string format: date-time title: created_at description: The date the label was created. updated_at: type: string format: date-time title: updated_at description: The date the label was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the label was deleted. AdminFulfillmentProvider: type: object description: The fulfillment provider's details. x-schemaName: AdminFulfillmentProvider required: - id - is_enabled properties: id: type: string title: id description: The provider's ID. is_enabled: type: boolean title: is_enabled description: The provider's is enabled. AdminFulfillmentProviderListResponse: type: object description: The paginated list of fulfillment providers. x-schemaName: AdminFulfillmentProviderListResponse required: - limit - offset - count - fulfillment_providers properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items. fulfillment_providers: type: array description: The list of fulfillment providers. items: $ref: '#/components/schemas/AdminFulfillmentProvider' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminFulfillmentProviderOption: type: object description: The fulfillment option's details. x-schemaName: AdminFulfillmentProviderOption required: - id - is_return properties: id: type: string title: id description: The fulfillment option's ID. is_return: type: boolean title: is_return description: Whether the fulfillment option is used for returns. AdminFulfillmentProviderOptionsListResponse: type: object description: The paginated list of fulfillment options. x-schemaName: AdminFulfillmentProviderOptionsListResponse required: - limit - offset - count - fulfillment_options properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. fulfillment_options: type: array description: The list of fulfillment options. items: $ref: '#/components/schemas/AdminFulfillmentProviderOption' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminFulfillmentResponse: type: object description: A fulfillment's details. x-schemaName: AdminFulfillmentResponse required: - fulfillment properties: fulfillment: $ref: '#/components/schemas/AdminFulfillment' AdminFulfillmentSet: type: object description: The service zone's fulfillment set. x-schemaName: AdminFulfillmentSet required: - id - name - type - location - service_zones - created_at - updated_at - deleted_at properties: id: type: string title: id description: The fulfillment set's ID. name: type: string title: name description: The fulfillment set's name. type: type: string title: type description: The fulfillment set's type. location: $ref: '#/components/schemas/AdminStockLocation' service_zones: type: array description: The fulfillment set's service zones. items: $ref: '#/components/schemas/AdminServiceZone' created_at: type: string format: date-time title: created_at description: The fulfillment set's created at. updated_at: type: string format: date-time title: updated_at description: The fulfillment set's updated at. deleted_at: type: string format: date-time title: deleted_at description: The fulfillment set's deleted at. AdminFulfillmentSetDeleteResponse: type: object description: The deletion details. x-schemaName: AdminFulfillmentSetDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The fulfillment set's ID. object: type: string title: object description: The name of the deleted object. default: fulfillment_set deleted: type: boolean title: deleted description: Whether the fulfillment set was deleted. AdminFulfillmentSetResponse: type: object description: The fulfillment set's details. x-schemaName: AdminFulfillmentSetResponse required: - fulfillment_set properties: fulfillment_set: $ref: '#/components/schemas/AdminFulfillmentSet' AdminGeoZone: type: object description: The geo zone's geo zones. x-schemaName: AdminGeoZone required: - id - type - country_code - province_code - city - postal_expression - created_at - updated_at - deleted_at properties: id: type: string title: id description: The geo zone's ID. type: type: string description: The geo zone's type. enum: - country - province - city - zip country_code: type: string title: country_code description: The geo zone's country code. province_code: type: string title: province_code description: The geo zone's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 city: type: string title: city description: The geo zone's city. postal_expression: type: object description: The geo zone's postal expression. created_at: type: string format: date-time title: created_at description: The geo zone's created at. updated_at: type: string format: date-time title: updated_at description: The geo zone's updated at. deleted_at: type: string format: date-time title: deleted_at description: The geo zone's deleted at. AdminGiftCard: type: object description: The gift card's details. x-schemaName: AdminGiftCard required: - line_item - customer - invitation - id - code - status - value - currency_code - customer_id - reference_id - note - reference - expires_at - created_at - updated_at properties: line_item: $ref: '#/components/schemas/AdminOrderLineItem' customer: $ref: '#/components/schemas/AdminCustomer' id: type: string title: id description: The gift card's ID. code: type: string title: code description: The gift card's code. status: type: string description: The gift card's status. enum: - pending - redeemed value: type: number title: value description: The gift card's amount. currency_code: type: string title: currency_code description: The gift card's currency code. example: usd customer_id: type: string title: customer_id description: The ID of the customer associated with the gift card. reference_id: type: string title: reference_id description: The gift card's reference ID. note: type: string title: note description: The gift card's note. reference: type: string title: reference description: The gift card's reference. expires_at: type: string title: expires_at description: The date the gift card expires at. invitation: $ref: '#/components/schemas/AdminGiftCardInvitation' created_at: type: string format: date-time title: created_at description: The date the gift card was created at. updated_at: type: string format: date-time title: updated_at description: The date the gift card was updated at. AdminGiftCardInvitation: type: object description: The gift card invitation details. required: - gift_card - id - code - status - expires_at - email properties: id: type: string title: id description: The invitation's ID. email: type: string title: email description: The invitation's email. format: email code: type: string title: code description: The invitation's code. status: type: string description: The invitation's status. enum: - pending - accepted - rejected expires_at: type: string title: expires_at description: The date the invitation expires at. gift_card: type: object x-schemaName: AdminGiftCardInvitation AdminGiftCardResponse: type: object description: The gift card's details. x-schemaName: AdminGiftCardResponse required: - gift_card properties: gift_card: $ref: '#/components/schemas/AdminGiftCard' AdminGiftCardsResponse: type: object description: The paginated list of gift cards. x-schemaName: AdminGiftCardsResponse required: - limit - offset - count - gift_cards properties: limit: type: number title: limit description: The maximum number of gift cards to return. offset: type: number title: offset description: The number of gift cards to skip before retrieving the results. count: type: number title: count description: The total number of gift cards available. gift_cards: type: array description: The list of gift cards. items: $ref: '#/components/schemas/AdminGiftCard' AdminImportProductRequest: type: object description: The import's details. x-schemaName: AdminImportProductRequest required: - file properties: file: type: object description: A File to upload. externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/API/File description: Learn more about the File API title: file AdminImportProductResponse: type: object description: The import process's details. x-schemaName: AdminImportProductResponse required: - transaction_id - summary properties: transaction_id: type: string title: transaction_id description: The ID of the workflow execution's transaction. This is useful to confirm the import using the `/admin/products/:transaction-id/import` API route. summary: type: object description: The import's summary. required: - toCreate - toUpdate properties: toCreate: type: number title: toCreate description: The number of products that will be created by this import. toUpdate: type: number title: toUpdate description: The number of products that will be updated by this import. AdminInventoryItem: type: object description: The inventory item's details. x-schemaName: AdminInventoryItem required: - id - requires_shipping properties: id: type: string title: id description: The inventory item's ID. sku: type: string title: sku description: The inventory item's sku. origin_country: type: string title: origin_country description: The inventory item's origin country. hs_code: type: string title: hs_code description: The inventory item's HS code. requires_shipping: type: boolean title: requires_shipping description: Whether the inventory item requires shipping. mid_code: type: string title: mid_code description: The inventory item's MID code. material: type: string title: material description: The inventory item's material. weight: type: number title: weight description: The inventory item's weight. length: type: number title: length description: The inventory item's length. height: type: number title: height description: The inventory item's height. width: type: number title: width description: The inventory item's width. title: type: string title: title description: The inventory item's title. description: type: string title: description description: The inventory item's description. thumbnail: type: string title: thumbnail description: The thumbnail URL of the inventory item. metadata: type: object description: Custom key-value pairs, used to store additional information about the inventory item. location_levels: type: array description: The inventory item's location levels. items: $ref: '#/components/schemas/AdminInventoryLevel' AdminInventoryItemResponse: type: object description: The inventory item's details. x-schemaName: AdminInventoryItemResponse required: - inventory_item properties: inventory_item: $ref: '#/components/schemas/AdminInventoryItem' AdminInventoryLevel: type: object description: The location level's location levels. x-schemaName: AdminInventoryLevel required: - id - created_at - updated_at - deleted_at - inventory_item_id - location_id - stocked_quantity - reserved_quantity - incoming_quantity - metadata - available_quantity properties: id: type: string title: id description: The location level's ID. created_at: type: string format: date-time title: created_at description: The location level's created at. updated_at: type: string format: date-time title: updated_at description: The location level's updated at. deleted_at: type: string format: date-time title: deleted_at description: The location level's deleted at. inventory_item_id: type: string title: inventory_item_id description: The location level's inventory item id. location_id: type: string title: location_id description: The location level's location id. stocked_quantity: type: number title: stocked_quantity description: The location level's stocked quantity. reserved_quantity: type: number title: reserved_quantity description: The location level's reserved quantity. incoming_quantity: type: number title: incoming_quantity description: The location level's incoming quantity. metadata: type: object description: The location level's metadata. inventory_item: type: object available_quantity: type: number title: available_quantity description: The location level's available quantity. AdminInvite: type: object description: The invite's details. x-schemaName: AdminInvite required: - id - email - accepted - token - expires_at - created_at - updated_at properties: id: type: string title: id description: The invite's ID. email: type: string title: email description: The invite's email. format: email accepted: type: boolean title: accepted description: Whether the invite has been accepted. token: type: string title: token description: The invite's token. expires_at: type: string title: expires_at description: The invite's expiry date. format: date-time metadata: type: object description: The invite's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the invite was created. updated_at: type: string format: date-time title: updated_at description: The date the invite was updated. AdminInviteResponse: type: object description: The invite's details. x-schemaName: AdminInviteResponse required: - invite properties: invite: $ref: '#/components/schemas/AdminInvite' AdminLinkPriceListProducts: type: object description: The products removal details. properties: remove: type: array description: The products to remove from the price list. items: type: string title: remove description: The ID of a product. x-schemaName: AdminLinkPriceListProducts AdminNotification: type: object description: The notification's details. x-schemaName: AdminNotification required: - id - to - channel - template - provider_id - created_at properties: id: type: string title: id description: The notification's ID. to: type: string title: to description: Where to send the notification to. For example, if `channel` is `email`, this can be an email number. channel: type: string title: channel description: Through which channel is the notification sent through. example: email template: type: string title: template description: The ID of the template in a third-party service used as the notification's shape. data: type: object description: Data payload to send with the notification. trigger_type: type: string title: trigger_type description: What triggered this notification. example: order.created resource_id: type: string title: resource_id description: The ID of the associated resource. For example, if the notification was triggered because an order was created, this would be the ID of the order. resource_type: type: string title: resource_type description: The type of the resource that triggered the notification. example: order receiver_id: type: string title: receiver_id description: The ID of the user or customer that's receiving this notification. original_notification_id: type: string title: original_notification_id description: The ID of the original notification, if this notification is resent. external_id: type: string title: external_id description: The ID of the notification in an external or third-party system. provider_id: type: string title: provider_id description: The ID of the provider used to send the notification. created_at: type: string format: date-time title: created_at description: The date the notification was created. AdminNotificationListResponse: type: object description: The paginated list of notifications. x-schemaName: AdminNotificationListResponse required: - limit - offset - count - notifications properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items. notifications: type: array description: The list of notifications. items: $ref: '#/components/schemas/AdminNotification' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminNotificationResponse: type: object description: The notification's details. x-schemaName: AdminNotificationResponse required: - notification properties: notification: $ref: '#/components/schemas/AdminNotification' AdminOrder: type: object description: The order's details. x-schemaName: AdminOrder required: - payment_collections - items - shipping_methods - status - currency_code - id - version - region_id - customer_id - sales_channel_id - email - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: payment_collections: type: array description: The order's payment collections. items: $ref: '#/components/schemas/AdminPaymentCollection' fulfillments: type: array description: The order's fulfillments. items: $ref: '#/components/schemas/AdminOrderFulfillment' sales_channel: $ref: '#/components/schemas/AdminSalesChannel' customer: $ref: '#/components/schemas/AdminCustomer' shipping_address: $ref: '#/components/schemas/AdminOrderAddress' billing_address: $ref: '#/components/schemas/AdminOrderAddress' id: type: string title: id description: The order's ID. version: type: number title: version description: The order's version. region_id: type: string title: region_id description: The ID of the region associated with the order. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel the order is placed in. email: type: string title: email description: The email of the customer that placed the order. format: email currency_code: type: string title: currency_code description: The order's currency code. display_id: type: number title: display_id description: The order's display ID. items: type: array description: The order's items. items: $ref: '#/components/schemas/AdminOrderLineItem' shipping_methods: type: array description: The order's shipping methods. items: $ref: '#/components/schemas/AdminOrderShippingMethod' payment_status: type: string description: The order's payment status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - captured - partially_captured - partially_refunded - refunded - requires_action fulfillment_status: type: string description: The order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The total of the order's items including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The total of the order's items excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The tax total of the order's items excluding promotions. item_total: type: number title: item_total description: The total of the order's items including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The total of the order's items excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the order's items including promotions. original_total: type: number title: original_total description: The order's total excluding promotions, including taxes. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The order's tax total, excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The order's tax total including promotions. discount_total: type: number title: discount_total description: The order's discount or promotions total. discount_tax_total: type: number title: discount_tax_total description: The tax total of order's discount or promotion. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The tax total of the order's gift card. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The tax total of the order's shipping. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The tax total of the order's shipping excluding promotions. status: type: string title: status description: The order's status. region: $ref: '#/components/schemas/AdminRegion' credit_lines: type: array description: The order's credit lines. items: $ref: '#/components/schemas/OrderCreditLine' AdminOrderAddress: type: object description: An order address. x-schemaName: AdminOrderAddress required: - id - metadata - created_at - updated_at properties: id: type: string title: id description: The address's ID. customer_id: type: string title: customer_id description: The ID of the customer this address belongs to. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us country: $ref: '#/components/schemas/AdminRegionCountry' province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. AdminOrderChange: type: object description: The order change's details. x-schemaName: AdminOrderChange required: - order - claim - return_order - exchange - actions - status - id - version - metadata - created_at - updated_at - order_id - canceled_at - return_id - exchange_id - claim_id - requested_by - requested_at - confirmed_by - confirmed_at - declined_by - declined_reason - declined_at - canceled_by properties: id: type: string title: id description: The order change's ID. version: type: number title: version description: The order change's version. This will be the order's version when the change is applied. change_type: type: string description: The order change's type. enum: - return - exchange - claim - edit order_id: type: string title: order_id description: The ID of the order this change applies on. return_id: type: string title: return_id description: The ID of the associated return. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. claim_id: type: string title: claim_id description: The ID of the associated claim. order: $ref: '#/components/schemas/AdminOrder' return_order: $ref: '#/components/schemas/AdminReturn' exchange: $ref: '#/components/schemas/AdminExchange' claim: $ref: '#/components/schemas/AdminClaim' actions: type: array description: The order change's actions. items: $ref: '#/components/schemas/AdminOrderChangeAction' status: type: string description: The order change's status. enum: - canceled - requested - pending - confirmed - declined requested_by: type: string title: requested_by description: The ID of the user that requested the change. requested_at: type: string title: requested_at description: The date the order change was requested. format: date-time confirmed_by: type: string title: confirmed_by description: The ID of the user that confirmed the order change. confirmed_at: type: string title: confirmed_at description: The date the order change was confirmed. format: date-time declined_by: type: string title: declined_by description: The ID of the user that declined the order change. declined_reason: type: string title: declined_reason description: The reason the order change was declined. metadata: type: object description: The order change's metadata, can hold custom key-value pairs. declined_at: type: string title: declined_at description: The date the order change was declined. format: date-time canceled_by: type: string title: canceled_by description: The ID of the user that canceled the order change. canceled_at: type: string title: canceled_at description: The date the order change was canceled. format: date-time created_at: type: string format: date-time title: created_at description: The date the order change was created. updated_at: type: string format: date-time title: updated_at description: The date the order change was updated. AdminOrderChangeAction: type: object description: The order change action's details. x-schemaName: AdminOrderChangeAction required: - order_change - order - id - created_at - updated_at - order_id - internal_note - return_id - exchange_id - claim_id - order_change_id - reference - reference_id - action - details properties: id: type: string title: id description: The action's ID. order_change_id: type: string title: order_change_id description: The ID of the order change that the action belongs to. order_change: type: object order_id: type: string title: order_id description: The ID of the order the associated change is for. return_id: type: string title: return_id description: The ID of the associated return. claim_id: type: string title: claim_id description: The ID of the associated claim. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. order: $ref: '#/components/schemas/AdminOrder' reference: type: string title: reference description: The name of the table this action applies on. enum: - claim - exchange - return - order_shipping_method reference_id: type: string title: reference_id description: The ID of the record in the referenced table. action: type: string description: The applied action. enum: - CANCEL_RETURN_ITEM - FULFILL_ITEM - DELIVER_ITEM - CANCEL_ITEM_FULFILLMENT - ITEM_ADD - ITEM_REMOVE - ITEM_UPDATE - RECEIVE_DAMAGED_RETURN_ITEM - RECEIVE_RETURN_ITEM - RETURN_ITEM - SHIPPING_ADD - SHIPPING_REMOVE - SHIP_ITEM - WRITE_OFF_ITEM - REINSTATE_ITEM details: type: object description: The action's details. example: reference_id: 123 quantity: 1 internal_note: type: string title: internal_note description: A note that's viewed only by admin users. created_at: type: string format: date-time title: created_at description: The date the action was created. updated_at: type: string format: date-time title: updated_at description: The date the action was updated. AdminOrderChangesResponse: type: object description: The details of an order's changes. x-schemaName: AdminOrderChangesResponse required: - order_changes properties: order_changes: type: array description: An order's changes. items: $ref: '#/components/schemas/AdminOrderChange' AdminOrderEditPreviewResponse: type: object description: The preview of an order edit. x-schemaName: AdminOrderEditPreviewResponse required: - order_preview properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' AdminOrderEditResponse: type: object description: An order edit's details. x-schemaName: AdminOrderEditResponse required: - order_change properties: order_change: $ref: '#/components/schemas/AdminOrderChange' AdminOrderFulfillment: type: object description: The fulfillment's details. x-schemaName: AdminOrderFulfillment required: - id - location_id - packed_at - shipped_at - delivered_at - canceled_at - requires_shipping - data - provider_id - shipping_option_id - metadata - created_at - updated_at properties: id: type: string title: id description: The fulfillment's ID. location_id: type: string title: location_id description: The ID of the location the items are fulfilled from. packed_at: type: string title: packed_at description: The date the items were packed. format: date-time shipped_at: type: string title: shipped_at description: The date the items were shipped. format: date-time delivered_at: type: string title: delivered_at description: The date the items were delivered. format: date-time canceled_at: type: string title: canceled_at description: The date the items were canceled. format: date-time data: type: object description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property provider_id: type: string title: provider_id description: The ID of the fulfillment provider used to handle the fulfillment. shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. metadata: type: object description: The fulfillment's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the fulfillment was created. updated_at: type: string format: date-time title: updated_at description: The date the fulfillment was updated. requires_shipping: type: boolean title: requires_shipping description: Whether the fulfillment requires shipping. AdminOrderItem: type: object description: The order item's details. x-schemaName: AdminOrderItem required: - order_id - item_id - version - history - item properties: order_id: type: string title: order_id description: The ID of the order this item belongs to. item_id: type: string title: item_id description: The ID of the associated line item. version: type: number title: version description: The order item's version. history: type: object description: The order item's history. required: - version properties: version: type: object description: The version changes of the item. required: - from - to properties: from: type: number title: from description: The original version. to: type: number title: to description: The new version. item: $ref: '#/components/schemas/AdminOrderLineItem' AdminOrderLineItem: type: object description: The item's details. x-schemaName: AdminOrderLineItem required: - title - id - metadata - created_at - updated_at - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type_id - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The URL of the item's thumbnail. variant: $ref: '#/components/schemas/AdminProductVariant' variant_id: type: string title: variant_id description: The ID of the associated variant. product: $ref: '#/components/schemas/AdminProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The ID of the collection the item's product belongs to. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant SKU. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The values of the item variant's options. example: Color: Blue requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: $ref: '#/components/schemas/BaseOrderLineItemTaxLine' adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/BaseOrderLineItemAdjustment' detail: type: object created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the item, excluding promotions. item_total: type: number title: item_total description: The total taxes of the item, including promotions. item_subtotal: type: number title: item_subtotal description: The item's total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes of the item, including promotions. total: type: number title: total description: The item's total, including taxes and promotions. subtotal: type: number title: subtotal description: The item's subtotal excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the item including promotions. discount_total: type: number title: discount_total description: The total discount amount of the item. discount_tax_total: type: number title: discount_tax_total description: The total taxes applied on the discounted amount. refundable_total: type: number title: refundable_total description: The total refundable amount of the item's total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total refundable amount of the item's total for a single quantity. product_type_id: type: string title: product_type_id description: The ID of the associated product's type. AdminOrderPreview: type: object description: A preview of an order if a change, such as exchange, return, edit, or claim is applied on it. x-schemaName: AdminOrderPreview required: - return_requested_total - order_change - status - currency_code - id - version - region_id - customer_id - sales_channel_id - email - payment_collections - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: return_requested_total: type: number title: return_requested_total description: The total of the requested return. order_change: $ref: '#/components/schemas/AdminOrderChange' items: type: array description: The order's items. items: allOf: - type: object description: An order's item. x-schemaName: BaseOrderLineItem required: - id - title - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - metadata - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The URL of the item's thumbnail. variant: $ref: '#/components/schemas/BaseProductVariant' variant_id: type: string title: variant_id description: The ID of the associated variant. product: $ref: '#/components/schemas/AdminProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The title of the item's product. product_description: type: string title: product_description description: The description of the item's product. product_subtitle: type: string title: product_subtitle description: The subtitle of the item's product. product_type: type: string title: product_type description: The ID of type of the item's product. product_collection: type: string title: product_collection description: The ID of collection of the item's product. product_handle: type: string title: product_handle description: The handle of the item's product. variant_sku: type: string title: variant_sku description: The SKU of the item's variant. variant_barcode: type: string title: variant_barcode description: The barcode of the item's variant. variant_title: type: string title: variant_title description: The title of the item's variant. variant_option_values: type: object description: The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value. requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item's price includes taxes. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: $ref: '#/components/schemas/BaseOrderLineItemTaxLine' adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/BaseOrderLineItemAdjustment' detail: $ref: '#/components/schemas/BaseOrderItemDetail' created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The tax total of the item excluding promotions. item_total: type: number title: item_total description: The item's total for a single unit including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The item's total for a single unit excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total for a single unit of the item including promotions. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the item including promotions. discount_total: type: number title: discount_total description: The total of the item's discount / promotion. discount_tax_total: type: number title: discount_tax_total description: The tax total of the item's discount / promotion refundable_total: type: number title: refundable_total description: The total refundable amount of the item's total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total refundable amount of the item's total for a single unit. - type: object description: An order's item. properties: actions: type: array description: The actions applied on an item. items: type: object description: The action's details. x-schemaName: BaseOrderChangeAction shipping_methods: type: array description: The order's shipping methods. items: allOf: - type: object description: The shipping method's details. x-schemaName: BaseOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order this shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The data relevant for the fulfillment provider to process this shipment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments. items: $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment' original_total: oneOf: - type: string title: original_total description: The shipping method's total including taxes, excluding promotions. - type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: oneOf: - type: string title: original_subtotal description: The shipping method's total excluding taxes, including promotions. - type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: oneOf: - type: string title: original_tax_total description: The tax total of the shipping method excluding promotions. - type: number title: original_tax_total description: The tax total of the shipping method excluding promotions. total: oneOf: - type: string title: total description: The shipping method's total including taxes and promotions. - type: number title: total description: The shipping method's total including taxes and promotions. subtotal: oneOf: - type: string title: subtotal description: The shipping method's total excluding taxes, including promotions. - type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: oneOf: - type: string title: tax_total description: The tax total of the shipping method including promotions. - type: number title: tax_total description: The tax total of the shipping method including promotions. discount_total: oneOf: - type: string title: discount_total description: The total of the shipping method's promotion. - type: number title: discount_total description: The total of the shipping method's promotion. discount_tax_total: oneOf: - type: string title: discount_tax_total description: The tax total of the shipping method's promotion. - type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. - type: object description: The shipping method's details. properties: actions: type: array description: The actions applied on the shipping method. items: type: object description: The action's details. x-schemaName: BaseOrderChangeAction currency_code: type: string title: currency_code description: The order's currency code. version: type: number title: version description: The order's version when this preview is applied. id: type: string title: id description: The order's ID. region_id: type: string title: region_id description: The ID of the order's associated region. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel that the order was placed in. email: type: string title: email description: The email of the customer that placed the order. format: email display_id: type: number title: display_id description: The order's display ID. shipping_address: $ref: '#/components/schemas/AdminOrderAddress' billing_address: $ref: '#/components/schemas/AdminOrderAddress' payment_collections: type: array description: The order's payment collections. items: $ref: '#/components/schemas/AdminPaymentCollection' payment_status: type: string description: The order's payment status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - captured - partially_captured - partially_refunded - refunded - requires_action fulfillments: type: array description: The order's fulfillments. items: $ref: '#/components/schemas/AdminOrderFulfillment' fulfillment_status: type: string description: The order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The total of the order's items including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The total of the order's items excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The tax total of the order's items excluding promotions. item_total: type: number title: item_total description: The total of the order's items including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The total of the order's items excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the order's items including promotions. original_total: type: number title: original_total description: The order's total excluding promotions, including taxes. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The order's tax total, excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The order's tax total including promotions. discount_total: type: number title: discount_total description: The order's discount or promotions total. discount_tax_total: type: number title: discount_tax_total description: The tax total of order's discount or promotion. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The tax total of the order's gift card. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The tax total of the order's shipping. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The tax total of the order's shipping excluding promotions. customer: $ref: '#/components/schemas/AdminCustomer' sales_channel: $ref: '#/components/schemas/AdminSalesChannel' status: type: string title: status description: The order's status. region: $ref: '#/components/schemas/AdminRegion' credit_lines: type: array description: The order preview's credit lines. items: $ref: '#/components/schemas/OrderCreditLine' AdminOrderPreviewResponse: type: object description: The preview of an order. x-schemaName: AdminOrderPreviewResponse required: - order properties: order: $ref: '#/components/schemas/AdminOrderPreview' AdminOrderResponse: type: object description: An order's details. x-schemaName: AdminOrderResponse required: - order properties: order: $ref: '#/components/schemas/AdminOrder' AdminOrderReturnResponse: type: object description: The order return details. x-schemaName: AdminOrderReturnResponse required: - order - return properties: order: $ref: '#/components/schemas/Order' return: $ref: '#/components/schemas/AdminReturn' AdminOrderShippingMethod: type: object description: The shipping method's details. x-schemaName: AdminOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order the shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount includes applied taxes. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for fulfillment provider handling its fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments. items: $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment' original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The shipping method's total taxes excluding promotions. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The shipping method's tax total including promotions. discount_total: type: number title: discount_total description: The total discounts applied on the shipping method. discount_tax_total: type: number title: discount_tax_total description: The taxes applied on the discount amount. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. detail: $ref: '#/components/schemas/BaseOrderShippingDetail' AdminPayment: type: object description: The payment's details. x-schemaName: AdminPayment required: - id - amount - currency_code - provider_id properties: id: type: string title: id description: The payment's ID. amount: type: number title: amount description: The payment's amount. authorized_amount: type: number title: authorized_amount description: The amount authorized of the payment. currency_code: type: string title: currency_code description: The payment's currency code. provider_id: type: string title: provider_id description: The ID of the payment provider used to process this payment. data: type: object description: The payment's data, useful for processing by the payment provider. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment#whats-a-payment created_at: type: string format: date-time title: created_at description: The date the payment was created. updated_at: type: string format: date-time title: updated_at description: The date the payment was updated. captured_at: type: string format: date-time title: captured_at description: The date the payment was captured. canceled_at: type: string format: date-time title: canceled_at description: The date the payment was canceled. captured_amount: type: number title: captured_amount description: The captured amount of the payment. refunded_amount: type: number title: captured_amount description: The refunded amount of the payment. captures: type: array description: The details of payment captures. items: $ref: '#/components/schemas/BaseCapture' refunds: type: array description: The details of payment refunds. items: $ref: '#/components/schemas/AdminRefund' payment_collection: type: object payment_session: $ref: '#/components/schemas/AdminPaymentSession' AdminPaymentCollection: type: object description: The payment collection's details. x-schemaName: AdminPaymentCollection required: - payment_providers - id - currency_code - amount - status properties: id: type: string title: id description: The payment collection's ID. currency_code: type: string title: currency_code description: The payment collection's currency code. amount: type: number title: amount description: The total amount to be paid. authorized_amount: type: number title: authorized_amount description: The total authorized amount of the collection's payments. captured_amount: type: number title: captured_amount description: The total captured amount of the collection's payments. refunded_amount: type: number title: refunded_amount description: The total refunded amount of the collection's payments. completed_at: type: string format: date-time title: completed_at description: The date the payment collection was completed. created_at: type: string format: date-time title: created_at description: The date the payment collection was created. updated_at: type: string format: date-time title: updated_at description: The date the payment collection was updated. metadata: type: object description: The payment collection's metadata, can hold custom key-value pairs. status: type: string description: The payment collection's status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized payment_providers: type: array description: The payment provider used to process the collection's payments and sessions. items: $ref: '#/components/schemas/AdminPaymentProvider' payment_sessions: type: array description: The payment collection's payment sessions. items: $ref: '#/components/schemas/AdminPaymentSession' payments: type: array description: The payment collection's payments. items: $ref: '#/components/schemas/AdminPayment' AdminPaymentCollectionResponse: type: object description: The payment collection's details. x-schemaName: AdminPaymentCollectionResponse required: - payment_collection properties: payment_collection: $ref: '#/components/schemas/AdminPaymentCollection' AdminPaymentProvider: type: object description: The payment provider's details. x-schemaName: AdminPaymentProvider required: - is_enabled - id properties: id: type: string title: id description: The payment provider's ID. is_enabled: type: boolean title: is_enabled description: Whether the payment provider is enabled. AdminPaymentResponse: type: object description: The payment's details. x-schemaName: AdminPaymentResponse required: - payment properties: payment: $ref: '#/components/schemas/AdminPayment' AdminPaymentSession: type: object description: The payment session's details. x-schemaName: AdminPaymentSession properties: id: type: string title: id description: The payment session's ID. amount: type: number title: amount description: The payment session's amount. currency_code: type: string title: currency_code description: The payment session's currency code. example: usd provider_id: type: string title: provider_id description: The ID of the payment provider processing this session. data: type: object description: The payment session's data, useful for the payment provider processing the payment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property context: type: object description: The context around the payment, such as the customer's details. example: customer: id: cus_123 status: type: string description: The payment session's status. enum: - authorized - captured - canceled - pending - requires_more - error authorized_at: type: string title: authorized_at description: The date the payment session was authorized. format: date-time payment_collection: type: object payment: $ref: '#/components/schemas/BasePayment' required: - id - amount - currency_code - provider_id - data - status AdminPlugin: type: object description: The plugin's details. x-schemaName: AdminPlugin required: - name properties: name: type: string title: name description: The plugin's name. AdminPluginsListResponse: type: object description: The list of plugins. x-schemaName: AdminPluginsListResponse required: - plugins properties: plugins: type: array description: The list of plugins. items: $ref: '#/components/schemas/AdminPlugin' AdminPostCancelClaimReqSchema: type: object description: The details of canceling a claim. x-schemaName: AdminPostCancelClaimReqSchema properties: no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the claim's cancelation. AdminPostCancelExchangeReqSchema: type: object description: The details of canceling an exchange. x-schemaName: AdminPostCancelExchangeReqSchema properties: no_notification: type: boolean title: no_notification description: Whether to send a notification to the customer about the exchange's cancelation. AdminPostCancelReturnReqSchema: type: object description: The details of canceling a return. x-schemaName: AdminPostCancelReturnReqSchema properties: no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the return's cancelation. AdminPostClaimItemsReqSchema: type: object description: The details of the order items to add to the claim. x-schemaName: AdminPostClaimItemsReqSchema properties: items: type: array description: The item's details. items: type: object description: An item's details. required: - id - quantity properties: id: type: string title: id description: The ID of the order's item. quantity: type: number title: quantity description: The quantity of the order's item to add to the claim. reason: type: string description: The reason the item is claimed. enum: - missing_item - wrong_item - production_failure - other description: type: string title: description description: The item's description. internal_note: type: string title: internal_note description: A note that's only viewed by admin users. AdminPostClaimsAddItemsReqSchema: type: object description: The details of the outbound items to add to the claim. x-schemaName: AdminPostClaimsAddItemsReqSchema properties: items: type: array description: The outbound item's details. items: type: object description: An item's details. required: - variant_id - quantity properties: variant_id: type: string title: variant_id description: The ID of the associated product variant. quantity: type: number title: quantity description: The quantity to send to the customer. unit_price: type: number title: unit_price description: The item's unit price. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The item's metadata, can hold custom key-value pairs. AdminPostClaimsItemsActionReqSchema: type: object description: The details to update in the item. x-schemaName: AdminPostClaimsItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. reason_id: type: string title: reason_id description: The ID of the return reason associated with the item. internal_note: type: string title: internal_note description: A note that's only viewed by admin users. AdminPostClaimsShippingActionReqSchema: type: object description: The details to update in the shipping method. x-schemaName: AdminPostClaimsShippingActionReqSchema properties: custom_amount: type: number title: custom_amount description: The shipping method's custom amount. internal_note: type: string title: internal_note description: A note only viewed by admin users. metadata: type: object description: The claim's metadata, can hold custom key-value pairs. AdminPostClaimsShippingReqSchema: type: object description: The details of the shipping method used to ship outbound items. x-schemaName: AdminPostClaimsShippingReqSchema required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: Set a custom price for the shipping method. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note only viewed by admin users. metadata: type: object description: The claim's metadata, can hold custom key-value pairs. AdminPostExchangesAddItemsReqSchema: type: object description: The details of outbound items. x-schemaName: AdminPostExchangesAddItemsReqSchema properties: items: type: array description: The details of outbound items. items: type: object description: An item's details. required: - variant_id - quantity properties: variant_id: type: string title: variant_id description: The ID of the associated product variant. quantity: type: number title: quantity description: The item's quantity. unit_price: type: number title: unit_price description: The item's unit price. internal_note: type: string title: internal_note description: A note viewed only by admin users. allow_backorder: type: boolean title: allow_backorder description: Whether the item can be added even if it's not in stock. metadata: type: object description: The item's metadata, can hold custom key-value pairs. AdminPostExchangesItemsActionReqSchema: type: object description: The details to update in an outbound item. x-schemaName: AdminPostExchangesItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note only viewed by admin users. AdminPostExchangesRequestItemsReturnActionReqSchema: type: object description: The details to update in an inbound (returned) item. x-schemaName: AdminPostExchangesRequestItemsReturnActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. reason_id: type: string title: reason_id description: The ID of the associated return reason. metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. AdminPostExchangesReturnRequestItemsReqSchema: type: object description: The details of the inbound (return) items. x-schemaName: AdminPostExchangesReturnRequestItemsReqSchema properties: items: type: array description: The details of the inbound (return) items. items: type: object description: An item's details. required: - id - quantity properties: id: type: string title: id description: The ID of the order's item. quantity: type: number title: quantity description: The item's quantity. description: type: string title: description description: The item's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. reason_id: type: string title: reason_id description: The ID of the return reason to associate with the item. metadata: type: object description: The item's metadata, can hold custom key-value pairs. AdminPostExchangesShippingActionReqSchema: type: object description: The details of the shipping method to update. x-schemaName: AdminPostExchangesShippingActionReqSchema properties: custom_amount: type: number title: custom_amount description: The shipping method's custom amount. internal_note: type: string title: internal_note description: A note viewed by admin users only. metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. AdminPostExchangesShippingReqSchema: type: object description: The outbound shipping method's details. x-schemaName: AdminPostExchangesShippingReqSchema required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: Set a custom amount for the shipping method. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note viewed by admin users only. metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. AdminPostOrderClaimsReqSchema: type: object description: The claim's details. x-schemaName: AdminPostOrderClaimsReqSchema required: - type - order_id properties: type: type: string description: The claim's type. enum: - refund - replace order_id: type: string title: order_id description: The ID of the order the claim is created for. description: type: string title: description description: The claim's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. reason_id: type: string title: reason_id description: The ID of the associated return reason. metadata: type: object description: The claim's metadata, can hold custom key-value pairs. AdminPostOrderEditsAddItemsReqSchema: type: object description: The details of items to be edited. x-schemaName: AdminPostOrderEditsAddItemsReqSchema properties: items: type: array description: The details of items to be edited. items: type: object description: An item's details. required: - variant_id - quantity properties: variant_id: type: string title: variant_id description: The ID of the associated product variant. quantity: type: number title: quantity description: The item's quantity. unit_price: type: number title: unit_price description: The item's unit price. internal_note: type: string title: internal_note description: A note viewed only by admin users. allow_backorder: type: boolean title: allow_backorder description: Whether the item can be added even if there's no available invenotory quantity of the variant. metadata: type: object description: The item's metadata, can hold custom key-value pairs. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. AdminPostOrderEditsItemsActionReqSchema: type: object description: The details to update in the item. x-schemaName: AdminPostOrderEditsItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. unit_price: type: number title: unit_price description: The item's unit price. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. AdminPostOrderEditsReqSchema: type: object description: The order edit's details. x-schemaName: AdminPostOrderEditsReqSchema required: - order_id properties: order_id: type: string title: order_id description: The ID of the order this edit is for. description: type: string title: description description: The order edit's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The order edit's metadata, can hold custom key-value pairs. AdminPostOrderEditsShippingActionReqSchema: type: object description: The shipping method's details. x-schemaName: AdminPostOrderEditsShippingActionReqSchema properties: custom_amount: type: number title: custom_amount description: Set a custom price for the shipping method. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The order edit's metadata, can hold custom key-value pairs. AdminPostOrderEditsShippingReqSchema: type: object description: The shipping method's details. x-schemaName: AdminPostOrderEditsShippingReqSchema required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: Set a custom price for the shipping method. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. AdminPostOrderEditsUpdateItemQuantityReqSchema: type: object description: The order item's details to update. x-schemaName: AdminPostOrderEditsUpdateItemQuantityReqSchema required: - quantity properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. unit_price: type: number title: unit_price description: The item's unit price. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. AdminPostOrderExchangesReqSchema: type: object description: The exchange's details. x-schemaName: AdminPostOrderExchangesReqSchema required: - order_id properties: order_id: type: string title: order_id description: The ID of the order this exchange is created for. description: type: string title: description description: The exchange's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. AdminPostReceiveReturnsReqSchema: type: object description: The return receival details. x-schemaName: AdminPostReceiveReturnsReqSchema properties: internal_note: type: string title: internal_note description: A note viewed only by admin users. description: type: string title: description description: The return's description. metadata: type: object description: The return's metadata, can hold custom key-value pairs. AdminPostReturnsConfirmRequestReqSchema: type: object description: The confirmation's details. x-schemaName: AdminPostReturnsConfirmRequestReqSchema properties: no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the confirmation. AdminPostReturnsDismissItemsActionReqSchema: type: object description: The details to update of the damaged item. x-schemaName: AdminPostReturnsDismissItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. AdminPostReturnsReceiveItemsActionReqSchema: type: object description: The details of the received item. x-schemaName: AdminPostReturnsReceiveItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. AdminPostReturnsReceiveItemsReqSchema: type: object description: The items details. x-schemaName: AdminPostReturnsReceiveItemsReqSchema properties: items: type: array description: The items details. items: type: object description: An item's details. required: - id - quantity properties: id: type: string title: id description: The ID of the item in the order. quantity: type: number title: quantity description: The item's quantity. description: type: string title: description description: The item's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. AdminPostReturnsReqSchema: type: object description: The return's details. x-schemaName: AdminPostReturnsReqSchema required: - order_id properties: order_id: type: string title: order_id description: The ID of the order the return belongs to. location_id: type: string title: location_id description: The ID of the location the items are returned to. description: type: string title: description description: The return's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. no_notification: type: boolean title: no_notification description: Whether to send the customer a notification about the created return. metadata: type: object description: The return's metadata, can hold custom key-value pairs. AdminPostReturnsRequestItemsActionReqSchema: type: object description: The details to update in the item. x-schemaName: AdminPostReturnsRequestItemsActionReqSchema properties: quantity: type: number title: quantity description: The item's quantity. internal_note: type: string title: internal_note description: A note viewed only by admin users. reason_id: type: string title: reason_id description: The ID of the associated return reason. metadata: type: object description: The claim's metadata, can hold custom key-value pairs. AdminPostReturnsRequestItemsReqSchema: type: object description: The items' details. x-schemaName: AdminPostReturnsRequestItemsReqSchema properties: items: type: array description: The items' details. items: type: object description: An item's details. required: - id - quantity properties: id: type: string title: id description: The item's ID. quantity: type: number title: quantity description: The item's quantity. description: type: string title: description description: The item's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. reason_id: type: string title: reason_id description: The ID of the associated return reason. metadata: type: object description: The item's metadata, can hold custom key-value pairs. AdminPostReturnsReturnReqSchema: type: object description: The return's details. x-schemaName: AdminPostReturnsReturnReqSchema properties: location_id: type: string title: location_id description: The ID of the location to return items to. no_notification: type: boolean title: no_notification description: Whether the customer should receive notifications about updates to the return. metadata: type: object description: The return's metadata, can hold custom key-value pairs. AdminPostReturnsShippingActionReqSchema: type: object description: The shipping method's details. x-schemaName: AdminPostReturnsShippingActionReqSchema properties: custom_amount: type: number title: custom_amount description: Set a custom price for the shipping method. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The return's metadata, can hold custom key-value pairs. AdminPostReturnsShippingReqSchema: type: object description: The shipping method's details. x-schemaName: AdminPostReturnsShippingReqSchema required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: Set the price of the shipping method. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note viewed only by admin users. metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. AdminPrice: type: object description: The price's details. x-schemaName: AdminPrice required: - id - title - currency_code - amount - raw_amount - min_quantity - max_quantity - price_set_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The price's ID. title: type: string title: title description: The price's title. currency_code: type: string title: currency_code description: The price's currency code. example: usd amount: type: number title: amount description: The price's amount. raw_amount: type: object description: The price's raw amount. min_quantity: type: number title: min_quantity description: The minimum quantity that must be available in the cart for the price to be applied. max_quantity: type: number title: max_quantity description: The maximum quantity allowed to be available in the cart for the price to be applied. price_set_id: type: string title: price_set_id description: The ID of the associated price set. created_at: type: string format: date-time title: created_at description: The date the price was created. updated_at: type: string format: date-time title: updated_at description: The date the price was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price was deleted. AdminPriceList: type: object description: The price list's details. x-schemaName: AdminPriceList required: - id - title - description - rules - starts_at - ends_at - status - type - prices - created_at - updated_at - deleted_at properties: id: type: string title: id description: The price list's ID. title: type: string title: title description: The price list's title. description: type: string title: description description: The price list's description. rules: type: object description: The price list's rules. starts_at: type: string title: starts_at description: The date the price list starts. ends_at: type: string title: ends_at description: The date the price list ends. status: type: string description: The price list's status. enum: - draft - active type: type: string description: The price list's type. enum: - sale - override prices: type: array description: The price list's prices. items: $ref: '#/components/schemas/AdminPriceListPrice' created_at: type: string format: date-time title: created_at description: The date the price list was created. updated_at: type: string format: date-time title: updated_at description: The date the price list was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price list was deleted. AdminPriceListBatchResponse: type: object description: The details of the created, updated, and deleted prices in a price list. x-schemaName: AdminPriceListBatchResponse required: - created - updated - deleted properties: created: type: array description: The created prices. items: $ref: '#/components/schemas/AdminPrice' updated: type: array description: The updated prices. items: $ref: '#/components/schemas/AdminPrice' deleted: type: object description: The details of the deleted prices. required: - ids - object - deleted properties: ids: type: array description: The IDs of the deleted prices. items: type: string title: ids description: A price's ID. object: type: string title: object description: The name of the deleted object. default: price deleted: type: boolean title: deleted description: Whether the prices were deleted. AdminPriceListDeleteResponse: type: object description: The details of the deleted price list. x-schemaName: AdminPriceListDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The price list's ID. object: type: string title: object description: The name of the deleted object. default: price_list deleted: type: boolean title: deleted description: Whether the price list was deleted. AdminPriceListListResponse: type: object description: The paginated list of price lists. x-schemaName: AdminPriceListListResponse required: - limit - offset - count - price_lists properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. price_lists: type: array description: The list of price lists. items: $ref: '#/components/schemas/AdminPriceList' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminPriceListPrice: type: object description: The details of a price list's price. x-schemaName: AdminPriceListPrice required: - variant_id - rules - id - title - currency_code - amount - raw_amount - min_quantity - max_quantity - price_set_id - created_at - updated_at - deleted_at properties: variant_id: type: string title: variant_id description: The ID of the product variant this price list is for. rules: type: object description: The price's rules. id: type: string title: id description: The price's ID. title: type: string title: title description: The price's title. currency_code: type: string title: currency_code description: The price's currency code. example: usd amount: type: number title: amount description: The price's amount. raw_amount: type: object description: The price's raw amount. min_quantity: type: number title: min_quantity description: The minimum quantity that must be available in the cart for the price to be applied. max_quantity: type: number title: max_quantity description: The maximum quantity allowed to be available in the cart for the price to be applied. price_set_id: type: string title: price_set_id description: The ID of the price set this price belongs to. created_at: type: string format: date-time title: created_at description: The date the price was created. updated_at: type: string format: date-time title: updated_at description: The date the price was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price was deleted. AdminPriceListResponse: type: object description: The price list's details. x-schemaName: AdminPriceListResponse required: - price_list properties: price_list: $ref: '#/components/schemas/AdminPriceList' AdminPricePreference: type: object description: The price preference's details. x-schemaName: AdminPricePreference required: - id - attribute - value - is_tax_inclusive - created_at - updated_at - deleted_at properties: id: type: string title: id description: The price preference's ID. attribute: type: string title: attribute description: The price preference's attribute. example: region_id value: type: string title: value description: The price preference's value. example: reg_123 is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether prices matching this preference include taxes. created_at: type: string format: date-time title: created_at description: The date the price preference was created. updated_at: type: string format: date-time title: updated_at description: The date the price preference was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price preference was deleted. AdminPricePreferenceDeleteResponse: type: object description: The details of the deleted price preference. x-schemaName: AdminPricePreferenceDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The price preference's ID. object: type: string title: object description: The name of the deleted object. default: price_preference deleted: type: boolean title: deleted description: Whether the price preference was deleted. AdminPricePreferenceListResponse: type: object description: The paginated list of price preferences. x-schemaName: AdminPricePreferenceListResponse required: - limit - offset - count - price_preferences properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items. price_preferences: type: array description: The list of price preferences. items: $ref: '#/components/schemas/AdminPricePreference' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminPricePreferenceResponse: type: object description: The price preference's details. x-schemaName: AdminPricePreferenceResponse required: - price_preference properties: price_preference: $ref: '#/components/schemas/AdminPricePreference' AdminProduct: type: object description: The product's details. x-schemaName: AdminProduct required: - variants - type - options - images - length - title - status - description - id - created_at - updated_at - subtitle - thumbnail - handle - is_giftcard - width - weight - height - origin_country - hs_code - mid_code - material - collection_id - type_id - discountable - external_id - deleted_at properties: collection: $ref: '#/components/schemas/AdminCollection' categories: type: array description: The product's categories. items: $ref: '#/components/schemas/AdminProductCategory' sales_channels: type: array description: The sales channels that the product is available in. items: $ref: '#/components/schemas/AdminSalesChannel' variants: type: array description: The product's variants. items: $ref: '#/components/schemas/AdminProductVariant' type: $ref: '#/components/schemas/AdminProductType' tags: type: array description: The product's tags. items: $ref: '#/components/schemas/AdminProductTag' length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected options: type: array description: The product's options. items: $ref: '#/components/schemas/AdminProductOption' description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product was created. updated_at: type: string format: date-time title: updated_at description: The date the product was updated. handle: type: string title: handle description: The product's unique handle. subtitle: type: string title: subtitle description: The product's subtitle. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. thumbnail: type: string title: thumbnail description: The product's thumbnail. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. material: type: string title: material description: The product's material. collection_id: type: string title: collection_id description: The ID of the collection that the product belongs to. type_id: type: string title: type_id description: The ID of the product's type. images: type: array description: The product's images. items: $ref: '#/components/schemas/AdminProductImage' discountable: type: boolean title: discountable description: Whether discounts can be applied on the product. external_id: type: string title: external_id description: The ID of a product in an external system, such as an ERP or CMS. deleted_at: type: string format: date-time title: deleted_at description: The date the product was deleted. shipping_profile: $ref: '#/components/schemas/AdminShippingProfile' AdminProductCategory: type: object description: The product category's details. x-schemaName: AdminProductCategory required: - category_children - parent_category - name - description - id - created_at - updated_at - handle - deleted_at - is_active - is_internal - rank - parent_category_id properties: category_children: type: array description: The category's children. items: type: object parent_category: type: object products: type: array description: The category's products. items: type: object name: type: string title: name description: The category's name. description: type: string title: description description: The category's description. id: type: string title: id description: The category's ID. metadata: type: object description: The category's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the category was created. updated_at: type: string format: date-time title: updated_at description: The date the category was updated. handle: type: string title: handle description: The category's unique handle. deleted_at: type: string format: date-time title: deleted_at description: The date the category was deleted. is_active: type: boolean title: is_active description: Whether the category is active. If disabled, the category isn't shown in the storefront. is_internal: type: boolean title: is_internal description: Whether the category is internal. If enabled, the category is only seen by admin users. rank: type: number title: rank description: The category's rank among sibling categories. parent_category_id: type: string title: parent_category_id description: The ID of the category's parent. AdminProductCategoryDeleteResponse: type: object description: The details of deleting the category. x-schemaName: AdminProductCategoryDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product category's ID. object: type: string title: object description: The name of the deleted object. default: product_category deleted: type: boolean title: deleted description: Whether the product category was deleted. AdminProductCategoryListResponse: type: object description: The paginated list of product categories. x-schemaName: AdminProductCategoryListResponse required: - limit - offset - count - product_categories properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. product_categories: type: array description: The list of product categories. items: $ref: '#/components/schemas/AdminProductCategory' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminProductCategoryResponse: type: object description: The product category's details. x-schemaName: AdminProductCategoryResponse required: - product_category properties: product_category: $ref: '#/components/schemas/AdminProductCategory' AdminProductDeleteResponse: type: object description: The details of the product deletion. x-schemaName: AdminProductDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product's ID. object: type: string title: object description: The name of the deleted object. default: product deleted: type: boolean title: deleted description: Whether the product was deleted. AdminProductImage: type: object description: The image's details. x-schemaName: AdminProductImage properties: id: type: string title: id description: The image's ID. url: type: string title: url description: The image's URL. created_at: type: string format: date-time title: created_at description: The date the image was created. updated_at: type: string format: date-time title: updated_at description: The date the image was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the image was deleted. metadata: type: object description: The image's metadata, can hold custom key-value pairs. rank: type: number title: rank description: The image's rank among sibling images. required: - id - url - rank AdminProductOption: type: object description: The product option's details. x-schemaName: AdminProductOption required: - id - title properties: id: type: string title: id description: The product option's ID. title: type: string title: title description: The product option's title. product: type: object product_id: type: string title: product_id description: The ID of the product this option belongs to. values: type: array description: The product option's values. items: type: object metadata: type: object description: The product option's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product option was created. updated_at: type: string format: date-time title: updated_at description: The date the product option was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the product option was deleted. AdminProductOptionDeleteResponse: type: object description: The details of the product option deletion. x-schemaName: AdminProductOptionDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product option's ID. object: type: string title: object description: The name of the deleted object. default: product_option deleted: type: boolean title: deleted description: Whether the product option was deleted. parent: $ref: '#/components/schemas/AdminProduct' AdminProductOptionResponse: type: object description: The product option's details. x-schemaName: AdminProductOptionResponse required: - product_option properties: product_option: $ref: '#/components/schemas/AdminProductOption' AdminProductOptionValue: type: object description: The product option value's details. x-schemaName: AdminProductOptionValue required: - id - value properties: id: type: string title: id description: The value's ID. value: type: string title: value description: The value. option: $ref: '#/components/schemas/AdminProductOption' option_id: type: string title: option_id description: The ID of the option this value belongs to. metadata: type: object description: The value's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the value was created. updated_at: type: string format: date-time title: updated_at description: The date the value was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the value was deleted. AdminProductResponse: type: object description: The product's details. x-schemaName: AdminProductResponse required: - product properties: product: $ref: '#/components/schemas/AdminProduct' AdminProductTag: type: object description: The product tag's details. x-schemaName: AdminProductTag required: - id - value - created_at - updated_at properties: id: type: string title: id description: The tag's ID. value: type: string title: value description: The tag's value. created_at: type: string format: date-time title: created_at description: The date the tag was created. updated_at: type: string format: date-time title: updated_at description: The date the tag was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the tag was deleted. metadata: type: object description: The tag's metadata, can hold custom key-value pairs. AdminProductTagDeleteResponse: type: object description: The details of the product tag deletion. x-schemaName: AdminProductTagDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product tag's ID. object: type: string title: object description: The name of the deleted object. default: product_tag deleted: type: boolean title: deleted description: Whether the product tag was deleted. AdminProductTagListResponse: type: object description: The paginated list of product tags. x-schemaName: AdminProductTagListResponse required: - limit - offset - count - product_tags properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. product_tags: type: array description: The list of product tags. items: $ref: '#/components/schemas/AdminProductTag' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminProductTagResponse: type: object description: The product tag's details. x-schemaName: AdminProductTagResponse required: - product_tag properties: product_tag: $ref: '#/components/schemas/AdminProductTag' AdminProductType: type: object description: The product type's details. x-schemaName: AdminProductType required: - id - value - created_at - updated_at properties: id: type: string title: id description: The type's ID. value: type: string title: value description: The type's value. created_at: type: string format: date-time title: created_at description: The date the type was created. updated_at: type: string format: date-time title: updated_at description: The date the type was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the type was deleted. metadata: type: object description: The type's metadata, can hold custom key-value pairs. AdminProductTypeDeleteResponse: type: object description: The details of the product type deletion. x-schemaName: AdminProductTypeDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product type's ID. object: type: string title: object description: The name of the deleted object. default: product_type deleted: type: boolean title: deleted description: Whether the product type was deleted. AdminProductTypeListResponse: type: object description: The paginated list of product types. x-schemaName: AdminProductTypeListResponse required: - limit - offset - count - product_types properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. product_types: type: array description: The list of product types. items: $ref: '#/components/schemas/AdminProductType' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminProductTypeResponse: type: object description: The product type's details. x-schemaName: AdminProductTypeResponse required: - product_type properties: product_type: $ref: '#/components/schemas/AdminProductType' AdminProductVariant: type: object description: The product variant's details. x-schemaName: AdminProductVariant required: - prices - options - id - title - sku - barcode - ean - upc - allow_backorder - manage_inventory - hs_code - origin_country - mid_code - material - weight - length - height - width - created_at - updated_at - deleted_at properties: prices: type: array description: The variant's prices. items: $ref: '#/components/schemas/AdminPrice' id: type: string title: id description: The variant's ID. title: type: string title: title description: The variant's title. sku: type: string title: sku description: The variant's SKU. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's EAN code. upc: type: string title: upc description: The variant's UPC. allow_backorder: type: boolean title: allow_backorder description: Whether the variant can be ordered even if it's out of stock. manage_inventory: type: boolean title: manage_inventory description: Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter. hs_code: type: string title: hs_code description: The variant's HS code. origin_country: type: string title: origin_country description: The variant's origin country. mid_code: type: string title: mid_code description: The variant's MID code. material: type: string title: material description: The variant's material. weight: type: number title: weight description: The variant's weight. length: type: number title: length description: The variant's length. height: type: number title: height description: The variant's height. width: type: number title: width description: The variant's width. variant_rank: type: number title: variant_rank description: The variant's rank among its sibling variants. options: type: array description: The variant's option values. items: $ref: '#/components/schemas/AdminProductOptionValue' product: type: object product_id: type: string title: product_id description: The ID of the product that the variant belongs to. calculated_price: $ref: '#/components/schemas/BaseCalculatedPriceSet' created_at: type: string format: date-time title: created_at description: The date the variant was created. updated_at: type: string format: date-time title: updated_at description: The date the variant was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the variant was deleted. metadata: type: object description: The variant's metadata, can hold custom key-value pairs. inventory_items: type: array description: The variant's inventory items. items: $ref: '#/components/schemas/AdminProductVariantInventoryItemLink' AdminProductVariantDeleteResponse: type: object description: The details of the product variant's deletion. x-schemaName: AdminProductVariantDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The product variant's ID. object: type: string title: object description: The name of the deleted object. deleted: type: boolean title: deleted description: Whether the product variant was deleted. default: variant parent: $ref: '#/components/schemas/AdminProduct' AdminProductVariantInventoryBatchResponse: type: object description: The created, updated, and deleted associations between variants and inventory items. x-schemaName: AdminProductVariantInventoryBatchResponse required: - created - updated - deleted properties: created: oneOf: - $ref: '#/components/schemas/AdminProductVariantInventoryLink' - type: array description: The created associations between product variants and inventory items. items: type: object description: A created association between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryLink required: - productService - inventoryService properties: productService: type: object description: The product variant's details. required: - variant_id properties: variant_id: type: string title: variant_id description: The ID of the product variant. inventoryService: type: object description: The inventory item's details. required: - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item. updated: oneOf: - $ref: '#/components/schemas/AdminProductVariantInventoryLink' - type: array description: The updated associations between product variants and inventory items. items: type: object description: An updated association between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryLink required: - productService - inventoryService properties: productService: type: object description: The product variant's details. required: - variant_id properties: variant_id: type: string title: variant_id description: The ID of the product variant. inventoryService: type: object description: The inventory item's details. required: - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item. deleted: oneOf: - $ref: '#/components/schemas/AdminProductVariantInventoryLink' - type: array description: The deleted associations between product variants and inventory items. items: type: object description: An deleted association between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryLink required: - productService - inventoryService properties: productService: type: object description: The product variant's details. required: - variant_id properties: variant_id: type: string title: variant_id description: The ID of the product variant. inventoryService: type: object description: The inventory item's details. required: - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item. AdminProductVariantInventoryItemLink: type: object description: An association between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryItemLink required: - id - variant_id - inventory_item_id properties: id: type: string title: id description: The ID of the association. variant_id: type: string title: variant_id description: The associated product variant's ID. variant: type: object inventory_item_id: type: string title: inventory_item_id description: The associated inventory item's ID. inventory: $ref: '#/components/schemas/AdminInventoryItem' AdminProductVariantInventoryLink: type: object description: The details of an association between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryLink required: - Product - Inventory properties: Product: type: object description: The product variant's details. required: - variant_id properties: variant_id: type: string title: variant_id description: The ID of the product variant. Inventory: type: object description: The inventory item's details. required: - inventory_item_id properties: inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item. AdminProductVariantInventoryLinkDeleteResponse: type: object description: The details of the deleted associated between a product variant and an inventory item. x-schemaName: AdminProductVariantInventoryLinkDeleteResponse required: - id - object - deleted - parent properties: id: $ref: '#/components/schemas/AdminProductVariantInventoryLink' object: type: string title: object description: The name of the deleted object. default: variant-inventory-item-link deleted: type: boolean title: deleted description: Whether the association was deleted. parent: $ref: '#/components/schemas/AdminProductVariant' AdminProductVariantResponse: type: object description: The product variant's details. x-schemaName: AdminProductVariantResponse required: - variant properties: variant: $ref: '#/components/schemas/AdminProductVariant' AdminPromotion: type: object description: The promotion's details. x-schemaName: AdminPromotion required: - id - created_at - updated_at - deleted_at properties: application_method: $ref: '#/components/schemas/AdminApplicationMethod' rules: type: array description: The promotion's rules. items: $ref: '#/components/schemas/AdminPromotionRule' id: type: string title: id description: The promotion's ID. code: type: string title: code description: The promotion's code. example: OFF50 type: type: string description: The promotion's type. enum: - standard - buyget is_automatic: type: boolean title: is_automatic description: Whether the promotion is applied on a cart automatically if it matches the promotion's rules. campaign_id: type: string title: campaign_id description: The ID of the campaign this promotion belongs to. campaign: $ref: '#/components/schemas/AdminCampaign' created_at: type: string format: date-time title: created_at description: The date the promotion was created. updated_at: type: string format: date-time title: updated_at description: The date the promotion was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the promotion was deleted. status: type: string description: The promotion's status. enum: - draft - active - inactive AdminPromotionResponse: type: object description: The promotion's details. x-schemaName: AdminPromotionResponse required: - promotion properties: promotion: $ref: '#/components/schemas/AdminPromotion' AdminPromotionRule: type: object description: The promotion rule's details. x-schemaName: AdminPromotionRule required: - id - values properties: id: type: string title: id description: The promotion rule's ID. description: type: string title: description description: The promotion rule's description. attribute: type: string title: attribute description: The promotion rule's attribute. example: customer_group_id operator: type: string description: The rule's operator. enum: - gt - lt - eq - ne - in - lte - gte values: type: array description: The rule's values. example: - cusgroup_123 items: $ref: '#/components/schemas/BasePromotionRuleValue' AdminRedeemGiftCard: type: object description: The details of the gift card to redeem. x-schemaName: AdminRedeemGiftCard required: - customer_id properties: customer_id: type: string title: customer_id description: The ID of the customer that the gift card belongs to. The gift card's value will be added to the customer's store credit account. AdminRefund: type: object description: The refund's details. x-schemaName: AdminRefund required: - id - amount - created_at - payment properties: id: type: string title: id description: The refund's ID. amount: type: number title: amount description: The refund's amount. refund_reason_id: type: string title: refund_reason_id description: The ID of the refund reason. note: type: string title: note description: More details about the refund. created_at: type: string format: date-time title: created_at description: The date the refund was created. created_by: type: string title: created_by description: The ID of the user that created the refund. payment: $ref: '#/components/schemas/BasePayment' refund_reason: $ref: '#/components/schemas/RefundReason' AdminRefundReason: type: object description: The refund reason's details. x-schemaName: AdminRefundReason required: - id - label - metadata - created_at - updated_at properties: id: type: string title: id description: The refund reason's ID. label: type: string title: label description: The refund reason's label. description: type: string title: description description: The refund reason's description. metadata: type: object description: The refund reason's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the refund reason was created. updated_at: type: string format: date-time title: updated_at description: The date the refund reason was updated. AdminRegion: type: object description: The region's details. x-schemaName: AdminRegion required: - name - currency_code - id properties: id: type: string title: id description: The region's ID. name: type: string title: name description: The region's name. currency_code: type: string title: currency_code description: The region's currency code. example: usd automatic_taxes: type: boolean title: automatic_taxes description: Whether taxes are applied automatically during checkout. countries: type: array description: The region's countries. items: $ref: '#/components/schemas/AdminRegionCountry' payment_providers: type: array description: The region's payment providers. items: $ref: '#/components/schemas/AdminPaymentProvider' metadata: type: object description: The region's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the region was created. updated_at: type: string format: date-time title: updated_at description: The date the region was updated. AdminRegionCountry: type: object description: The country's details. x-schemaName: AdminRegionCountry required: - id properties: id: type: string title: id description: The country's ID. iso_2: type: string title: iso_2 description: The country's iso 2. example: us iso_3: type: string title: iso_3 description: The country's iso 3. example: usa num_code: type: string title: num_code description: The country's num code. example: 840 name: type: string title: name description: The country's name. display_name: type: string title: display_name description: The country's display name. AdminRegionResponse: type: object description: The region's details. x-schemaName: AdminRegionResponse required: - region properties: region: $ref: '#/components/schemas/AdminRegion' AdminRemoveDraftOrderPromotions: type: object description: The promotion codes to remove from the draft order. x-schemaName: AdminRemoveDraftOrderPromotions required: - promo_codes properties: promo_codes: type: array description: The promotion codes to remove from the draft order. items: type: string title: promo_codes description: A promotion code to remove from the draft order. AdminReservation: type: object description: The reservation's details. x-schemaName: AdminReservation required: - id - line_item_id - location_id - quantity - external_id - description - inventory_item_id properties: id: type: string title: id description: The reservation's ID. line_item_id: type: string title: line_item_id description: The ID of the line item this reservation is for. location_id: type: string title: location_id description: The ID of the location the quantity is reserved from. quantity: type: number title: quantity description: The reservation's quantity. external_id: type: string title: external_id description: An ID in an external system description: type: string title: description description: The reservation's description. inventory_item_id: type: string title: inventory_item_id description: The ID of the inventory item this reservation is associated with. inventory_item: $ref: '#/components/schemas/AdminInventoryItem' metadata: type: object description: The reservation's metadata, can hold custom key-value pairs. created_by: type: string title: created_by description: The ID of the user that created this reservation. deleted_at: type: string format: date-time title: deleted_at description: The date this reservation was deleted. created_at: type: string format: date-time title: created_at description: The date this reservation was created. updated_at: type: string format: date-time title: updated_at description: The date this reservation was updated. AdminReservationResponse: type: object description: The reservation's details. x-schemaName: AdminReservationResponse required: - reservation properties: reservation: $ref: '#/components/schemas/AdminReservation' AdminReturn: type: object description: The return's details. x-schemaName: AdminReturn required: - items - id - order_id - order_version - display_id - received_at - created_at - canceled_at properties: id: type: string title: id description: The return's ID. status: type: string description: The return's status. enum: - canceled - requested - received - partially_received refund_amount: type: number title: refund_amount description: The amount refunded by this return. order_id: type: string title: order_id description: The ID of the associated order. items: type: array description: The return's items. items: $ref: '#/components/schemas/AdminReturnItem' created_at: type: string format: date-time title: created_at description: The date the return was created. canceled_at: type: string title: canceled_at description: The date the return was canceled. format: date-time exchange_id: type: string title: exchange_id description: The return's exchange id. location_id: type: string title: location_id description: The return's location id. claim_id: type: string title: claim_id description: The return's claim id. order_version: type: number title: order_version description: The return's order version. display_id: type: number title: display_id description: The return's display id. no_notification: type: boolean title: no_notification description: Whether the customer should receive notifications about the return's updates. received_at: type: string title: received_at description: The date the return was received. AdminReturnItem: type: object description: The return item's details. x-schemaName: AdminReturnItem required: - id - quantity - received_quantity - damaged_quantity - item_id - return_id properties: id: type: string title: id description: The return item's ID. quantity: type: number title: quantity description: The return item's quantity. received_quantity: type: number title: received_quantity description: The received quantity of the item. This quantity is added to the stocked inventory quantity of the item. damaged_quantity: type: number title: damaged_quantity description: The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item. reason_id: type: string title: reason_id description: The ID of the return reason associated with the item. note: type: string title: note description: A note about why the item was returned. item_id: type: string title: item_id description: The ID of the associated order item. return_id: type: string title: return_id description: The ID of the return this return item belongs to. metadata: type: object description: The return item's metadata, can hold custom key-value pairs. AdminReturnPreviewResponse: type: object description: The details of a return and a preview of the order once the return is applied. x-schemaName: AdminReturnPreviewResponse required: - order_preview - return properties: order_preview: $ref: '#/components/schemas/AdminOrderPreview' return: $ref: '#/components/schemas/AdminReturn' AdminReturnReason: type: object description: The return reason's details. x-schemaName: AdminReturnReason required: - id - value - label - created_at - updated_at properties: id: type: string title: id description: The return reason's ID. value: type: string title: value description: The return reason's value. label: type: string title: label description: The return reason's label. description: type: string title: description description: The return reason's description. metadata: type: object description: The return reason's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the return reason was created. updated_at: type: string format: date-time title: updated_at description: The date the return reason was updated. AdminReturnReasonDeleteResponse: type: object description: The details of the return reason deletion. x-schemaName: AdminReturnReasonDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The return reason's ID. object: type: string title: object description: The name of the deleted object. default: return_reason deleted: type: boolean title: deleted description: Whether the return reason was deleted. AdminReturnReasonListResponse: type: object description: The paginated list of return reasons. x-schemaName: AdminReturnReasonListResponse required: - limit - offset - count - return_reasons properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. return_reasons: type: array description: The list of return reasons. items: $ref: '#/components/schemas/AdminReturnReason' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminReturnReasonResponse: type: object description: The return reason's details. x-schemaName: AdminReturnReasonResponse required: - return_reason properties: return_reason: $ref: '#/components/schemas/AdminReturnReason' AdminReturnResponse: type: object description: The return's details. x-schemaName: AdminReturnResponse required: - return properties: return: $ref: '#/components/schemas/AdminReturn' AdminRevokeApiKey: type: object description: The details of revoking the API key. x-schemaName: AdminRevokeApiKey properties: revoke_in: type: number title: revoke_in description: The time in seconds to revoke the API key after. If not set, the API key is revoked immediately. AdminRuleAttributeOption: type: object description: The details of a potential rule attribute. x-schemaName: AdminRuleAttributeOption required: - id - value - label - operators properties: id: type: string title: id description: The rule attribute's ID, which is a rule's `attribute` it refers to. example: customer_group value: type: string title: value description: The rule attribute's value. example: customer.groups.id label: type: string title: label description: The rule attribute option's label. example: Customer Group operators: type: array description: The attribute's operators. items: $ref: '#/components/schemas/BaseRuleOperatorOptions' AdminRuleValueOption: type: object description: The details of a potential rule value. x-schemaName: AdminRuleValueOption required: - value - label properties: value: type: string title: value description: The rule value's value. example: reg_123 label: type: string title: label description: The rule value's label. example: Europe Region AdminSalesChannel: type: object description: The sales channel's details. x-schemaName: AdminSalesChannel required: - id - name - description - is_disabled - metadata - created_at - updated_at - deleted_at properties: id: type: string title: id description: The sales channel's ID. name: type: string title: name description: The sales channel's name. description: type: string title: description description: The sales channel's description. is_disabled: type: boolean title: is_disabled description: Whether the sales channel is disabled. metadata: type: object description: The sales channel's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the sales channel was created. updated_at: type: string format: date-time title: updated_at description: The date the sales channel was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the sales channel was deleted. AdminSalesChannelDeleteResponse: type: object description: The details of deleting a sales channel. x-schemaName: AdminSalesChannelDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The sales channel's ID. object: type: string title: object description: The name of the deleted object. default: sales-channel deleted: type: boolean title: deleted description: Whether the sales channel was deleted. AdminSalesChannelResponse: type: object description: The sales channel's details. x-schemaName: AdminSalesChannelResponse required: - sales_channel properties: sales_channel: $ref: '#/components/schemas/AdminSalesChannel' AdminServiceZone: type: object description: The shipping option's service zone. x-schemaName: AdminServiceZone required: - id - name - fulfillment_set_id - fulfillment_set - geo_zones - shipping_options - created_at - updated_at - deleted_at properties: id: type: string title: id description: The service zone's ID. name: type: string title: name description: The service zone's name. fulfillment_set_id: type: string title: fulfillment_set_id description: The service zone's fulfillment set id. fulfillment_set: type: object geo_zones: type: array description: The service zone's geo zones. items: $ref: '#/components/schemas/AdminGeoZone' shipping_options: type: array description: The service zone's shipping options. items: $ref: '#/components/schemas/AdminShippingOption' created_at: type: string format: date-time title: created_at description: The service zone's created at. updated_at: type: string format: date-time title: updated_at description: The service zone's updated at. deleted_at: type: string format: date-time title: deleted_at description: The service zone's deleted at. AdminServiceZoneDeleteResponse: type: object description: The details of the service zone deletion. x-schemaName: AdminServiceZoneDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The service zone's ID. object: type: string title: object description: The name of the deleted object. default: service_zone deleted: type: boolean title: deleted description: Whether the service zone was deleted. parent: $ref: '#/components/schemas/AdminFulfillmentSet' AdminServiceZoneResponse: type: object description: The service zone's details. x-schemaName: AdminServiceZoneResponse required: - service_zone properties: service_zone: $ref: '#/components/schemas/AdminServiceZone' AdminShippingOption: type: object description: The shipping option's details. x-schemaName: AdminShippingOption required: - id - name - price_type - service_zone_id - service_zone - provider_id - provider - shipping_option_type_id - type - shipping_profile_id - shipping_profile - rules - prices - data - metadata - created_at - updated_at - deleted_at properties: id: type: string title: id description: The shipping option's ID. name: type: string title: name description: The shipping option's name. price_type: type: string description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider. enum: - calculated - flat service_zone_id: type: string title: service_zone_id description: The ID of the service zone this option belongs to. service_zone: type: object provider_id: type: string title: provider_id description: The ID of the provider handling fulfillments created from this shipping option. provider: $ref: '#/components/schemas/AdminFulfillmentProvider' shipping_option_type_id: type: string title: shipping_option_type_id description: The ID of the associated shipping option type. type: $ref: '#/components/schemas/AdminShippingOptionType' shipping_profile_id: type: string title: shipping_profile_id description: The ID of the associated shipping profile. shipping_profile: $ref: '#/components/schemas/AdminShippingProfile' rules: type: array description: The shipping option's rules. items: $ref: '#/components/schemas/AdminShippingOptionRule' prices: type: array description: The shipping option's prices. If the `price_type` is `calculated`, this array will be empty since the price is calculated by the fulfillment provider during checkout. items: $ref: '#/components/schemas/AdminShippingOptionPrice' data: type: object description: The shipping option's data, useful for the fulfillment provider handling fulfillments created from this option. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The shipping option's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the shipping option was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping option was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the shipping option was deleted. AdminShippingOptionDeleteResponse: type: object description: The details of the shipping option's deletion. x-schemaName: AdminShippingOptionDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The shipping option's ID. object: type: string title: object description: The name of the deleted object. default: shipping_option deleted: type: boolean title: deleted description: Whether the shipping option was deleted. AdminShippingOptionPrice: type: object description: The details of the shipping option's price. x-schemaName: AdminShippingOptionPrice required: - price_rules - rules_count - id - title - currency_code - amount - raw_amount - min_quantity - max_quantity - price_set_id - created_at - updated_at - deleted_at properties: price_rules: type: array description: The price's rules. items: $ref: '#/components/schemas/AdminShippingOptionPriceRule' rules_count: type: number title: rules_count description: The number of rules the price has. id: type: string title: id description: The price's ID. title: type: string title: title description: The price's title. currency_code: type: string title: currency_code description: The price's currency code. example: usd amount: type: number title: amount description: The price's amount. raw_amount: type: object description: The price's raw amount. min_quantity: type: number title: min_quantity description: The minimum quantity required in the cart for this price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity that the cart's items must not surpass for this price to apply. price_set_id: type: string title: price_set_id description: The ID of the price set this price belongs to. created_at: type: string format: date-time title: created_at description: The date the price was created. updated_at: type: string format: date-time title: updated_at description: The date the price was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price was deleted. AdminShippingOptionPriceRule: type: object description: The details of a shipping option price's rule. x-schemaName: AdminShippingOptionPriceRule required: - id - value - operator - attribute - price_id - priority - created_at - updated_at - deleted_at properties: id: type: string title: id description: The price rule's ID. value: oneOf: - type: string title: value description: The price rule's value. - type: number title: value description: The price rule's value. description: The price rule's value. operator: type: string description: The price rule's operator. enum: - gt - lt - eq - ne - in - lte - gte - nin attribute: type: string title: attribute description: The price rule's attribute. price_id: type: string title: price_id description: The ID of the price this rule applies to. priority: type: number title: priority description: The price rule's priority. created_at: type: string format: date-time title: created_at description: The date the price rule was created. updated_at: type: string format: date-time title: updated_at description: The date the price rule was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the price rule was deleted. AdminShippingOptionResponse: type: object description: The shipping option's details. x-schemaName: AdminShippingOptionResponse required: - shipping_option properties: shipping_option: $ref: '#/components/schemas/AdminShippingOption' AdminShippingOptionRule: type: object description: The shipping option rule's details. x-schemaName: AdminShippingOptionRule required: - id - attribute - operator - value - shipping_option_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The shipping option rule's ID. attribute: type: string title: attribute description: The shipping option rule's attribute. example: is_return operator: type: string description: The rule's operator. enum: - gt - lt - eq - ne - in - lte - gte - nin value: type: string title: value shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this rule is for. created_at: type: string format: date-time title: created_at description: The date the shipping option rule was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping option rule was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the shipping option rule was deleted. AdminShippingOptionType: type: object description: The shipping option's details. x-schemaName: AdminShippingOptionType required: - id - label - description - code - shipping_option_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The shipping option's ID. created_at: type: string format: date-time title: created_at description: The date the shipping option was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping option was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the shipping option was deleted. label: type: string title: label description: The type's label. description: type: string title: description description: The type's description. code: type: string title: code description: The type's code. shipping_option_id: type: string title: shipping_option_id description: The type's shipping option id. AdminShippingProfile: type: object description: The shipping profile's details.. x-schemaName: AdminShippingProfile properties: id: type: string title: id description: The shipping profile's ID. name: type: string title: name description: The shipping profile's name. type: type: string title: type description: The shipping profile's type. metadata: type: object description: The shipping profile's metadata, holds custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the shipping profile was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping profile was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the shipping profile was deleted. required: - id - name - type - metadata - created_at - updated_at - deleted_at AdminShippingProfileDeleteResponse: type: object description: The details of the shipping profile's deletion. x-schemaName: AdminShippingProfileDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The shipping profile's ID. object: type: string title: object description: The name of the deleted object. default: shipping_profile deleted: type: boolean title: deleted description: Whether the shipping profile was deleted. AdminShippingProfileResponse: type: object description: The shipping profile's details. x-schemaName: AdminShippingProfileResponse required: - shipping_profile properties: shipping_profile: $ref: '#/components/schemas/AdminShippingProfile' AdminStockLocation: type: object description: The stock location's details. x-schemaName: AdminStockLocation required: - id - name - address_id properties: id: type: string title: id description: The location's ID. name: type: string title: name description: The location's name. address_id: type: string title: address_id description: The ID of the associated address. address: $ref: '#/components/schemas/AdminStockLocationAddress' sales_channels: type: array description: The sales channels associated with the location. items: $ref: '#/components/schemas/AdminSalesChannel' fulfillment_providers: type: array description: The fulfillment providers associated with the location. items: $ref: '#/components/schemas/AdminFulfillmentProvider' fulfillment_sets: type: array description: The fulfillment sets associated with the location. items: type: object AdminStockLocationAddress: type: object description: The details of the stock location address. x-schemaName: AdminStockLocationAddress properties: id: type: string title: id description: The address's ID. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. company: type: string title: company description: The address's company. country_code: type: string title: country_code description: The address's country code. example: us city: type: string title: city description: The address's city. phone: type: string title: phone description: The address's phone. postal_code: type: string title: postal_code description: The address's postal code. province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 required: - id - address_1 - address_2 - company - country_code - city - phone - postal_code - province AdminStockLocationDeleteResponse: type: object description: The details of the stock location's deletion. x-schemaName: AdminStockLocationDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The stock location's ID. object: type: string title: object description: The name of the deleted object. default: stock_location deleted: type: boolean title: deleted description: Whether the stock location was deleted. AdminStockLocationListResponse: type: object description: The paginated list of stock locations. x-schemaName: AdminStockLocationListResponse required: - limit - offset - count - stock_locations properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. stock_locations: type: array description: The list of stock locations. items: $ref: '#/components/schemas/AdminStockLocation' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminStockLocationResponse: type: object description: The stock location's details. x-schemaName: AdminStockLocationResponse required: - stock_location properties: stock_location: $ref: '#/components/schemas/AdminStockLocation' AdminStore: type: object description: The store's details. x-schemaName: AdminStore required: - id - name - supported_currencies - default_sales_channel_id - default_region_id - default_location_id - metadata - created_at - updated_at properties: id: type: string title: id description: The store's ID. name: type: string title: name description: The store's name. supported_currencies: type: array description: The store's supported currencies. items: $ref: '#/components/schemas/AdminStoreCurrency' default_sales_channel_id: type: string title: default_sales_channel_id description: The ID of the sales channel used by default in the store. default_region_id: type: string title: default_region_id description: The ID of the region used by default in the store. default_location_id: type: string title: default_location_id description: The ID of the stock location used by default in the store. metadata: type: object description: The store's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the store was created. updated_at: type: string format: date-time title: updated_at description: The date the store was updated. AdminStoreCreditAccount: type: object description: The store credit account's details. x-schemaName: AdminStoreCreditAccount required: - customer - transaction_groups - id - customer_id - currency_code - credits - debits - balance - metadata - created_at - updated_at properties: customer: $ref: '#/components/schemas/AdminCustomer' id: type: string title: id description: The store credit account's ID. customer_id: type: string title: customer_id description: The ID of the customer that the store credit account belongs to. currency_code: type: string title: currency_code description: The store credit account's currency code. example: usd credits: type: number title: credits description: The account's credits. debits: type: number title: debits description: The account's debits. balance: type: number title: balance description: The account's balance. transaction_groups: type: array description: The store credit account's transaction groups. items: $ref: '#/components/schemas/AdminTransactionGroup' metadata: type: object description: The store credit account's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the store credit account was created at. updated_at: type: string format: date-time title: updated_at description: The date the store credit account was updated at. AdminStoreCreditAccountResponse: type: object description: The store credit account's details. x-schemaName: AdminStoreCreditAccountResponse required: - store_credit_account properties: store_credit_account: $ref: '#/components/schemas/AdminStoreCreditAccount' AdminStoreCreditAccountsResponse: type: object description: The paginated list of store credit accounts. x-schemaName: AdminStoreCreditAccountsResponse required: - limit - offset - count - store_credit_accounts properties: limit: type: number title: limit description: The maximum number of store credit accounts to return. offset: type: number title: offset description: The number of store credit accounts to skip before retrieving the results. count: type: number title: count description: The total number of store credit accounts available. store_credit_accounts: type: array description: The list of store credit accounts. items: $ref: '#/components/schemas/AdminStoreCreditAccount' AdminStoreCurrency: type: object description: The details of a store's currency. x-schemaName: AdminStoreCurrency required: - id - currency_code - store_id - is_default - currency - created_at - updated_at - deleted_at properties: id: type: string title: id description: The currency's ID. currency_code: type: string title: currency_code description: The currency's code. example: usd store_id: type: string title: store_id description: The ID of the store this currency belongs to. is_default: type: boolean title: is_default description: Whether this currency is the default in the store. currency: $ref: '#/components/schemas/AdminCurrency' created_at: type: string format: date-time title: created_at description: The date the currency was created. updated_at: type: string format: date-time title: updated_at description: The date the currency was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the currency was deleted. AdminStoreListResponse: type: object description: The paginated list of stores. x-schemaName: AdminStoreListResponse required: - limit - offset - count - stores properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. stores: type: array description: The list of stores. items: $ref: '#/components/schemas/AdminStore' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminStoreResponse: type: object description: The store's details. x-schemaName: AdminStoreResponse required: - store properties: store: $ref: '#/components/schemas/AdminStore' AdminTaxProvider: type: object description: The tax provider's details. x-schemaName: AdminTaxProvider required: - id - is_enabled properties: id: type: string title: id description: The tax provider's ID. example: tp_taxjar_taxjar is_enabled: type: boolean title: is_enabled description: Whether the tax provider is enabled in the Medusa application. AdminTaxRate: type: object description: The tax rate's details. x-schemaName: AdminTaxRate required: - id - rate - code - name - metadata - tax_region_id - is_combinable - is_default - created_at - updated_at - deleted_at - created_by - tax_region - rules properties: id: type: string title: id description: The tax rate's ID. rate: type: number title: rate description: The rate to charge. example: 10 code: type: string title: code description: The code the tax rate is identified by. name: type: string title: name description: The tax rate's name. metadata: type: object description: The tax rate's metadata, can hold custom key-value pairs. tax_region_id: type: string title: tax_region_id description: The ID of the tax region this rate belongs to. is_combinable: type: boolean title: is_combinable description: Whether the tax rate should be combined with parent rates. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates is_default: type: boolean title: is_default description: Whether this tax rate is the default in the tax region. created_at: type: string format: date-time title: created_at description: The date the tax rate was created. updated_at: type: string format: date-time title: updated_at description: The date the tax rate was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the tax rate was deleted. created_by: type: string title: created_by description: The ID of the user that created the tax rate. tax_region: $ref: '#/components/schemas/AdminTaxRegion' rules: type: array description: The tax rate's rules. items: $ref: '#/components/schemas/AdminTaxRateRule' AdminTaxRateDeleteResponse: type: object description: The details of the tax rate deletion. x-schemaName: AdminTaxRateDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The tax rate's ID. object: type: string title: object description: The name of the deleted object. default: tax_rate deleted: type: boolean title: deleted description: Whether the tax rate was deleted. AdminTaxRateResponse: type: object description: The tax rate's details. x-schemaName: AdminTaxRateResponse required: - tax_rate properties: tax_rate: $ref: '#/components/schemas/AdminTaxRate' AdminTaxRateRule: type: object description: The tax rate rule's details. x-schemaName: AdminTaxRateRule required: - reference - reference_id properties: reference: type: string title: reference description: The name of the table this rule references. example: product_type reference_id: type: string title: reference_id description: The ID of a record in the table that this rule references. example: ptyp_1 AdminTaxRegion: type: object description: The tax region's details. x-schemaName: AdminTaxRegion required: - id - country_code - province_code - metadata - parent_id - created_at - updated_at - deleted_at - created_by - tax_rates - parent - children properties: id: type: string title: id description: The tax region's ID. country_code: type: string title: country_code description: The tax region's country code. example: us province_code: type: string title: province_code description: The tax region's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 metadata: type: object description: The tax region's metadata, can hold custom key-value pairs. parent_id: type: string title: parent_id description: The ID of the parent tax region. created_at: type: string format: date-time title: created_at description: The date the tax region was created. updated_at: type: string format: date-time title: updated_at description: The date the tax region was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the tax region was deleted. created_by: type: string title: created_by description: The ID of the user that created the tax region. tax_rates: type: array description: The tax region's rates. items: type: object parent: type: object children: type: array description: The tax region's children. items: type: object AdminTaxRegionDeleteResponse: type: object description: The details of the tax region deletion. x-schemaName: AdminTaxRegionDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The tax region's ID. object: type: string title: object description: The name of the deleted object. default: tax_region deleted: type: boolean title: deleted description: Whether the tax region was deleted. AdminTaxRegionResponse: type: object description: The tax region's details. x-schemaName: AdminTaxRegionResponse required: - tax_region properties: tax_region: $ref: '#/components/schemas/AdminTaxRegion' AdminTransaction: type: object description: The transaction's details. x-schemaName: AdminTransaction required: - account - id - account_id - transaction_group_id - type - amount - metadata - created_at - updated_at properties: id: type: string title: id description: The transaction's ID. account_id: type: string title: account_id description: The ID of the store credit account that the transaction belongs to. transaction_group_id: type: string title: transaction_group_id description: The ID of the transaction group that the transaction belongs to. type: type: string description: The transaction's type. enum: - credit - debit amount: type: number title: amount description: The transaction's amount. account: $ref: '#/components/schemas/AdminStoreCreditAccount' note: type: string title: note description: The transaction's note. reference: type: string title: reference description: The transaction's reference. reference_id: type: string title: reference_id description: The transaction's reference ID. metadata: type: object description: The transaction's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the transaction was created at. updated_at: type: string format: date-time title: updated_at description: The date the transaction was updated at. AdminTransactionGroup: type: object description: The transaction group's details. x-schemaName: AdminTransactionGroup required: - account - id - code - credits - debits - balance - metadata properties: id: type: string title: id description: The transaction group's ID. code: type: string title: code description: The transaction group's code. credits: type: number title: credits description: The transaction group's credits. debits: type: number title: debits description: The transaction group's debits. balance: type: number title: balance description: The transaction group's balance. account: type: object metadata: type: object description: The transaction group's metadata, can hold custom key-value pairs. AdminTransactionGroupsResponse: type: object description: The paginated list of transaction groups. x-schemaName: AdminTransactionGroupsResponse required: - limit - offset - count - transaction_groups properties: limit: type: number title: limit description: The maximum number of transaction groups to return. offset: type: number title: offset description: The number of transaction groups to skip before retrieving the results. count: type: number title: count description: The total number of transaction groups available. transaction_groups: type: array description: The list of transaction groups. items: $ref: '#/components/schemas/AdminTransactionGroup' AdminTransactionsResponse: type: object description: The paginated list of transactions. x-schemaName: AdminTransactionsResponse required: - limit - offset - count - transactions properties: limit: type: number title: limit description: The maximum number of transactions to return. offset: type: number title: offset description: The number of transactions to skip before retrieving the results. count: type: number title: count description: The total number of transactions available. transactions: type: array description: The list of transactions. items: $ref: '#/components/schemas/AdminTransaction' AdminTransferGiftCard: type: object description: The details of the gift card transfer request. x-schemaName: AdminTransferGiftCard required: - customer_id properties: customer_id: type: string title: customer_id description: The ID of the customer to transfer the gift card to. AdminTransferOrder: type: object description: The details of the request to transfer the order. x-schemaName: AdminTransferOrder required: - customer_id properties: customer_id: type: string title: customer_id description: The ID of the customer to transfer the order to. description: type: string title: description description: The description of the order transfer, which can be shown to the customer receiving the order transfer request. internal_note: type: string title: internal_note description: An internal note viewable only by admin users. AdminUpdateApiKey: type: object description: The details to update in an API key. x-schemaName: AdminUpdateApiKey required: - title properties: title: type: string title: title description: The API key's title. AdminUpdateCustomerGroup: type: object description: The details to update in a customer group. x-schemaName: AdminUpdateCustomerGroup properties: name: type: string title: name description: The customer group's name. metadata: type: object description: The customer group's metadata, can hold custom key-value pairs. AdminUpdateDraftOrder: type: object description: The data to update in the draft order. x-schemaName: AdminUpdateDraftOrder properties: email: type: string title: email description: The customer email associated with the draft order. format: email shipping_address: type: object description: The draft order's shipping address. properties: first_name: type: string title: first_name description: The shipping address's first name. last_name: type: string title: last_name description: The shipping address's last name. phone: type: string title: phone description: The shipping address's phone. company: type: string title: company description: The shipping address's company. address_1: type: string title: address_1 description: The first address line. address_2: type: string title: address_2 description: The second address line. city: type: string title: city description: The shipping address's city. country_code: type: string title: country_code description: The shipping address's country code. example: us province: type: string title: province description: The shipping address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The shipping address's postal code. metadata: type: object description: The shipping address's metadata, can hold custom key-value pairs. billing_address: type: object description: The draft order's billing address. properties: first_name: type: string title: first_name description: The billing address's first name. last_name: type: string title: last_name description: The billing address's last name. phone: type: string title: phone description: The billing address's phone. company: type: string title: company description: The billing address's company. address_1: type: string title: address_1 description: The first address line. address_2: type: string title: address_2 description: The second address line. city: type: string title: city description: The billing address's city. country_code: type: string title: country_code description: The billing address's country code. example: us province: type: string title: province description: The billing address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The billing address's postal code. metadata: type: object description: The billing address's metadata, can hold custom key-value pairs. metadata: type: object description: The draft order's metadata, can hold custom key-value pairs. customer_id: type: string title: customer_id description: The ID of the customer associated with the draft order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel associated with the draft order. AdminUpdateDraftOrderActionShippingMethod: type: object description: The updates to make on a changed shipping method. x-schemaName: AdminUpdateDraftOrderActionShippingMethod required: - shipping_option_id properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: The custom amount of the shipping method. If not provided, the shipping option's amount will be used. description: type: string title: description description: The shipping method's description. internal_note: type: string title: internal_note description: A note viewed only by admin users about the shipping method. metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. AdminUpdateDraftOrderItem: type: object description: The updates to make on a draft order's item. x-schemaName: AdminUpdateDraftOrderItem required: - quantity properties: quantity: type: number title: quantity description: The item's quantity. unit_price: type: number title: unit_price description: The item's unit price. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. internal_note: type: string title: internal_note description: A note viewed only by admin users about the item. AdminUpdateDraftOrderShippingMethod: type: object description: The updates to make on a draft order's shipping method. x-schemaName: AdminUpdateDraftOrderShippingMethod properties: shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. custom_amount: type: number title: custom_amount description: The custom amount of the shipping method. If not provided, the shipping option's amount will be used. internal_note: type: string title: internal_note description: A note viewed only by admin users about the shipping method. AdminUpdateGiftCardParams: type: object description: The details to update in the gift card. x-schemaName: AdminUpdateGiftCardParams properties: status: type: string description: The gift card's status. enum: - pending - redeemed value: type: number title: value description: The gift card's amount. customer_id: type: string title: customer_id description: The ID of the customer that the gift card belongs to. currency_code: type: string title: currency_code description: The gift card's currency code. example: usd note: type: string title: note description: The gift card's note. expires_at: type: string title: expires_at description: The date the gift card expires at. metadata: type: object description: The gift card's metadata. AdminUpdateOrder: type: object description: The details to update in the order. x-schemaName: AdminUpdateOrder properties: email: type: string title: email description: The order's email. format: email shipping_address: type: object description: The order's shipping address. properties: first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. billing_address: type: object description: The order's billing address. properties: first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. metadata: type: object description: The order's metadata, can hold custom key-value pairs. AdminUpdatePriceList: type: object description: the details to update in a price list. x-schemaName: AdminUpdatePriceList properties: title: type: string title: title description: The price list's title. description: type: string title: description description: The price list's description. starts_at: type: string title: starts_at description: The date the price list starts. ends_at: type: string title: ends_at description: The date the price list ends. status: type: string description: The price list's status. enum: - active - draft type: type: string description: The price list's type. enum: - sale - override rules: type: object description: The price list's rules. example: customer_group_id: - cusgrp_123 AdminUpdatePricePreference: type: object description: The details to update in the price preference. x-schemaName: AdminUpdatePricePreference properties: attribute: type: string title: attribute description: The price preference's attribute. example: region_id value: type: string title: value description: The price preference's value. example: reg_123 is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether prices are tax inclusive for this price preference. AdminUpdateProduct: type: object description: The product's details. x-schemaName: AdminUpdateProduct properties: title: type: string title: title description: The product's title. subtitle: type: string title: subtitle description: The product's subtitle. description: type: string title: description description: The product's description. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. discountable: type: boolean title: discountable description: Whether discounts can be applied on the product. images: type: array description: The product's images. items: type: object description: The image's details. required: - url properties: url: type: string title: url description: The image's URL. thumbnail: type: string title: thumbnail description: The product's thumbnail URL. handle: type: string title: handle description: The product's unique handle. status: type: string description: The product's status. enum: - draft - proposed - published - rejected type_id: type: string title: type_id description: The ID of the product's type. collection_id: type: string title: collection_id description: The ID of the product's collection. categories: type: array description: The product's categories. items: type: object description: The product's category. required: - id properties: id: type: string title: id description: The category's ID. tags: type: array description: The product's tags. items: type: object description: The product's tag. required: - id properties: id: type: string title: id description: The tag's ID. options: type: array description: The product's options. items: $ref: '#/components/schemas/AdminUpdateProductOption' variants: type: array description: The product's variants. You can add new variants or update existing ones, passing their IDs in the object. items: oneOf: - $ref: '#/components/schemas/AdminCreateProductVariant' - $ref: '#/components/schemas/AdminUpdateProductVariant' sales_channels: type: array description: The sales channels that the product is available in. items: type: object description: The sales channel's details. required: - id properties: id: type: string title: id description: The sales channel's ID. weight: type: number title: weight description: The product's weight. length: type: number title: length description: The product's length. height: type: number title: height description: The product's height. width: type: number title: width description: The product's width. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. origin_country: type: string title: origin_country description: The product's origin country. material: type: string title: material description: The product's material. metadata: type: object description: The product's metadata, can hold custom key-value pairs. external_id: type: string title: external_id description: The ID of the product in an external or third-party system. AdminUpdateProductOption: type: object description: The details to update in a product option. x-schemaName: AdminUpdateProductOption properties: title: type: string title: title description: The option's title. values: type: array description: The option's values. items: type: string title: values description: An option value. AdminUpdateProductVariant: type: object description: The properties to update of a product variant. x-schemaName: AdminUpdateProductVariant properties: title: type: string title: title description: The product variant's title. sku: type: string title: sku description: The product variant's SKU. ean: type: string title: ean description: The product variant's EAN. upc: type: string title: upc description: The product variant's UPC. barcode: type: string title: barcode description: The product variant's barcode. hs_code: type: string title: hs_code description: The product variant's HS code. mid_code: type: string title: mid_code description: The product variant's MID code. allow_backorder: type: boolean title: allow_backorder description: Whether customers can order the variant even if it's not in stock. manage_inventory: type: boolean title: manage_inventory description: Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock. variant_rank: type: number title: variant_rank description: The product variant's rank among its siblings. weight: type: number title: weight description: The product variant's weight. length: type: number title: length description: The product variant's length. height: type: number title: height description: The product variant's height. width: type: number title: width description: The product variant's width. origin_country: type: string title: origin_country description: The product variant's origin country. material: type: string title: material description: The product variant's material. metadata: type: object description: The product variant's metadata, can hold custom key-value pairs. prices: type: array description: The product variant's prices. items: $ref: '#/components/schemas/AdminCreateProductVariantPrice' options: type: object description: The product variant's options. AdminUpdatePromotionRule: type: object description: The properties to update in a buy rule. required: - id - values properties: id: type: string title: id description: The buy rule's ID. operator: type: string description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value. enum: - gte - lte - gt - lt - eq - ne - in description: type: string title: description description: The buy rule's description. attribute: type: string title: attribute description: The attribute to compare against when checking whether a promotion can be applied on a cart. example: items.product.id values: oneOf: - type: string title: values description: The attribute's value. example: prod_123 - type: array description: The allowed attribute values. items: type: string title: values description: An attribute value. example: prod_123 x-schemaName: AdminUpdatePromotionRule AdminUpdateReturnReason: type: object description: The details to update in a return reason. x-schemaName: AdminUpdateReturnReason properties: label: type: string title: label description: The return reason's label. value: type: string title: value description: The return reason's value. description: type: string title: description description: The return reason's description. metadata: type: object description: The return reason's metadata, can hold custom key-value pairs. required: - value - label AdminUpdateSalesChannel: type: object description: The properties to update in the sales channel. x-schemaName: AdminUpdateSalesChannel properties: name: type: string title: name description: The sales channel's name. description: type: string title: description description: The sales channel's description. is_disabled: type: boolean title: is_disabled description: Whether the sales channel is disabled. metadata: type: object description: The sales channel's metadata, can hold custom key-value pairs. AdminUpdateShippingOptionRule: type: object description: The properties to update in the shipping option rule. required: - id - operator - attribute - value properties: id: type: string title: id description: The rule's ID. operator: type: string description: The operator used to check whether a rule applies. enum: - in - eq - ne - gt - gte - lt - lte - nin attribute: type: string title: attribute description: The name of a property or table that the rule applies to. example: customer_group value: oneOf: - type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 - type: array description: Values of the attribute that enable this rule. items: type: string title: value description: A value of the attribute that enables this rule. example: cusgroup_123 x-schemaName: AdminUpdateShippingOptionRule AdminUpdateStockLocation: type: object description: The properties to update in a stock location. x-schemaName: AdminUpdateStockLocation properties: name: type: string title: name description: The stock location's name. address: type: object description: The stock location's address. Pass this property if you're creating a new address to associate with the location. required: - address_1 - country_code properties: address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. company: type: string title: company description: The address's company. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us phone: type: string title: phone description: The address's phone. postal_code: type: string title: postal_code description: The address's postal code. province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 address_id: type: string title: address_id description: The ID of an existing stock location address to associate the stock location with. metadata: type: object description: The stock location's metadata, can hold custom key-value pairs. AdminUpdateStore: type: object description: The properties to update in a store. x-schemaName: AdminUpdateStore properties: name: type: string title: name description: The store's name. supported_currencies: type: array description: The store's supported currencies. items: type: object description: A store currency. required: - currency_code properties: currency_code: type: string title: currency_code description: The currency's code. example: usd is_default: type: boolean title: is_default description: Whether the currency is the default in the store. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether prices using this currency are tax inclusive. default_sales_channel_id: type: string title: default_sales_channel_id description: The ID of the default sales channel in the store. default_region_id: type: string title: default_region_id description: The ID of the default region in the store. default_location_id: type: string title: default_location_id description: The ID of the default stock location in the store. metadata: type: object description: The store's metadata, can hold custom key-value pairs. AdminUpdateTaxRate: type: object description: The properties to update in the tax rate. x-schemaName: AdminUpdateTaxRate properties: rate: type: number title: rate description: The rate to charge. code: type: string title: code description: The code that the tax rate is identified by. rules: type: array description: The tax rate's rules. items: type: object description: A tax rate rule. required: - reference - reference_id properties: reference: type: string title: reference description: The name of the table this rule references. example: product_type reference_id: type: string title: reference_id description: The ID of the record in the table that the rule references. example: ptyp_123 name: type: string title: name description: The tax rate's name. is_default: type: boolean title: is_default description: Whether the tax rate is the default in the store. is_combinable: type: boolean title: is_combinable description: Whether the tax rate should be combined with parent rates. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates metadata: type: object description: The tax rate's metadata, can hold custom key-value pairs. AdminUpdateTaxRegion: type: object description: The details to update in a tax region. x-schemaName: AdminUpdateTaxRegion properties: province_code: type: string title: province_code description: The tax region's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 metadata: type: object description: The tax region's metadata, can hold custom key-value pairs. provider_id: type: string title: provider_id description: The ID of the tax provider to use when calculating taxes for this tax region. AdminUpdateUser: type: object description: The properties to update in a user. x-schemaName: AdminUpdateUser properties: first_name: type: string title: first_name description: The user's first name. last_name: type: string title: last_name description: The user's last name. avatar_url: type: string title: avatar_url description: The URL of the user's avatar. metadata: type: object description: The user's metadata, can hold custom key-value pairs. AdminUpdateVariantInventoryItem: type: object description: The properties to update of the variant's inventory item association. x-schemaName: AdminUpdateVariantInventoryItem required: - required_quantity properties: required_quantity: type: number title: required_quantity description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`. AdminUpsertStockLocationAddress: type: object description: The details of the stock location address to create. x-schemaName: AdminUpsertStockLocationAddress required: - address_1 - country_code properties: address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. company: type: string title: company description: The address's company. country_code: type: string title: country_code description: The address's country code. example: usd city: type: string title: city description: The address's city. phone: type: string title: phone description: The address's phone. postal_code: type: string title: postal_code description: The address's postal code. province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 AdminUser: type: object description: The user's details. x-schemaName: AdminUser required: - id - email - first_name - last_name - avatar_url - metadata - created_at - updated_at - deleted_at properties: id: type: string title: id description: The user's ID. email: type: string title: email description: The user's email. format: email first_name: type: string title: first_name description: The user's first name. last_name: type: string title: last_name description: The user's last name. avatar_url: type: string title: avatar_url description: The URL of the user's avatar. metadata: type: object description: The user's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the user was created. updated_at: type: string format: date-time title: updated_at description: The date the user was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the user was deleted. AdminUserDeleteResponse: type: object description: The details of the deleted user. x-schemaName: AdminUserDeleteResponse required: - id - object - deleted properties: id: type: string title: id description: The user's ID. object: type: string title: object description: The name of the deleted object. default: user deleted: type: boolean title: deleted description: Whether the user was deleted. AdminUserListResponse: type: object description: The paginated list of users. x-schemaName: AdminUserListResponse required: - limit - offset - count - users properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. users: type: array description: The list of users. items: $ref: '#/components/schemas/AdminUser' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine AdminUserResponse: type: object description: The user's details. x-schemaName: AdminUserResponse required: - user properties: user: $ref: '#/components/schemas/AdminUser' AdminWorkflowExecution: type: object description: The workflows execution's details. x-schemaName: AdminWorkflowExecution required: - id - workflow_id - transaction_id - execution - context - state - created_at - updated_at properties: id: type: string title: id description: The workflow execution's ID. workflow_id: type: string title: workflow_id description: The ID of the workflow. transaction_id: type: string title: transaction_id description: The workflow execution's transaction ID. execution: $ref: '#/components/schemas/AdminWorkflowExecutionExecution' context: $ref: '#/components/schemas/WorkflowExecutionContext' state: type: string description: The workflow execution's state. enum: - not_started - invoking - waiting_to_compensate - compensating - done - reverted - failed created_at: type: string format: date-time title: created_at description: The date the workflow execution was created. updated_at: type: string format: date-time title: updated_at description: The date the workflow execution was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the workflow execution was deleted. AdminWorkflowExecutionExecution: type: object description: The workflow execution's steps details. x-schemaName: AdminWorkflowExecutionExecution required: - steps properties: steps: type: object description: The execution's steps. Each object key is a step ID, and the value is the object whose properties are shown below. required: - id - invoke - definition - compensate - depth - startedAt additionalProperties: type: object properties: id: type: string title: id description: The step's ID. invoke: type: object description: The state of the step's invokation function. x-schemaName: WorkflowExecutionFn required: - state - status properties: state: type: string description: The invokation step's state. enum: - failed - not_started - invoking - compensating - done - reverted - dormant - skipped - skipped_failure - timeout status: type: string description: The invokation step's state. enum: - idle - ok - waiting_response - temp_failure - permanent_failure definition: type: object description: The step's definition details. x-schemaName: WorkflowExecutionDefinition properties: async: type: boolean title: async description: Whether the step is async. compensateAsync: type: boolean title: compensateAsync description: Whether the compensation function of the step is async. noCompensation: type: boolean title: noCompensation description: Whether the step doesn't have a compensation function. continueOnPermanentFailure: type: boolean title: continueOnPermanentFailure description: Whether the workflow should continue executing even if its status is changed to failed. skipOnPermanentFailure: oneOf: - type: string title: skipOnPermanentFailure description: The ID of the step to skip to in case of a permanent failure. - type: boolean title: skipOnPermanentFailure description: Whether the workflow should skip subsequent steps in case of a permanent failure. maxRetries: type: number title: maxRetries description: The maximum number of times to retry the step. noWait: type: boolean title: noWait description: Whether the workflow shouldn't wait for the step to finish before moving to the next step. default: false retryInterval: type: number title: retryInterval description: The interval in seconds between retry attempts when the step fails. retryIntervalAwaiting: type: number title: retryIntervalAwaiting description: The interval in seconds to retry a step even if its status is `waiting_response`. saveResponse: type: boolean title: saveResponse description: Whether the step's response is stored. timeout: type: number title: timeout description: The maximum time in seconds to wait for this step to complete. If the step exceeds this time, the step's state is changed to `timeout`, but the step continues executing. compensate: type: object description: The state of the step's compensation function. x-schemaName: WorkflowExecutionFn required: - state - status properties: state: type: string description: The compensation function's state. enum: - failed - not_started - invoking - compensating - done - reverted - dormant - skipped - skipped_failure - timeout status: type: string description: The compensation function's status. enum: - idle - ok - waiting_response - temp_failure - permanent_failure depth: type: number title: depth description: The step's depth in the workflow's execution. startedAt: type: number title: startedAt description: The timestamp the step started executing. AdminWorkflowExecutionResponse: type: object description: The workflow execution's details. x-schemaName: AdminWorkflowExecutionResponse required: - workflow_execution properties: workflow_execution: $ref: '#/components/schemas/AdminWorkflowExecution' ApiKeyResponse: type: object description: The API key's details. x-schemaName: ApiKeyResponse required: - id - token - redacted - title - type - last_used_at - created_by - created_at - revoked_by - revoked_at properties: id: type: string title: id description: The API key's ID. token: type: string title: token description: The API key's token. redacted: type: string title: redacted description: The redacted form of the API key's token. This is useful when showing portion of the token. For example `sk_...123`. title: type: string title: title description: The API key's title. type: type: string description: The API key's type. `secret` API keys are used for authenticating admin users, and `publishable` API key are used for storefronts and similar clients to scope requests to sales channels. enum: - secret - publishable last_used_at: type: string title: last_used_at description: The date the API key was last used. format: date-time created_by: type: string title: created_by description: The ID of the user that created the API key. created_at: type: string title: created_at description: The date the API key was created. format: date-time revoked_by: type: string title: revoked_by description: The ID of the user that revoked the API key. revoked_at: type: string title: revoked_at description: The date the API key was revoked. format: date-time AuthAdminSessionResponse: type: object description: The authenticated user's details. x-schemaName: AuthAdminSessionResponse required: - user properties: user: title: user description: The logged-in user. $ref: '#/components/schemas/AdminUser' AuthCallbackResponse: type: object description: The authentication's details. x-schemaName: AuthCallbackResponse required: - location properties: location: type: string title: location description: The location to redirect the user to for further authentication with the third-party provider. AuthResponse: type: object description: The authentication's details. x-schemaName: AuthResponse required: - token properties: token: type: string title: token description: The JWT token used for registration or authentication. AuthStoreSessionResponse: type: object description: The authenticated customer's details. x-schemaName: AuthStoreSessionResponse required: - user properties: user: title: user description: The logged-in customer. $ref: '#/components/schemas/StoreCustomer' BaseCalculatedPriceSet: type: object description: The calculated price's details. x-schemaName: BaseCalculatedPriceSet required: - id - calculated_amount - original_amount - original_amount_with_tax - original_amount_without_tax - currency_code properties: id: type: string title: id description: The calculated price's ID. is_calculated_price_price_list: type: boolean title: is_calculated_price_price_list description: Whether the calculated price belongs to a price list. is_calculated_price_tax_inclusive: type: boolean title: is_calculated_price_tax_inclusive description: Whether the calculated price is tax inclusive. calculated_amount: type: number title: calculated_amount description: The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer. calculated_amount_with_tax: type: number title: calculated_amount_with_tax description: The calculated price's amount with taxes applied. calculated_amount_without_tax: type: number title: calculated_amount_without_tax description: The calculated price's amount without taxes applied. is_original_price_price_list: type: boolean title: is_original_price_price_list description: Whether the original price belongs to a price list. is_original_price_tax_inclusive: type: boolean title: is_original_price_tax_inclusive description: Whether the original price is tax inclusive. original_amount: type: number title: original_amount description: The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value. currency_code: type: string title: currency_code description: The calculated price's currency code. example: usd calculated_price: type: object description: The calculated price's details. original_price: type: object description: The original price's details. original_amount_with_tax: type: number title: original_amount_with_tax description: The amount of the original price with taxes applied. original_amount_without_tax: type: number title: original_amount_without_tax description: The amount of the original price without taxes. BaseCapture: type: object description: The details of a captured payment. x-schemaName: BaseCapture required: - id - amount - created_at - payment properties: id: type: string title: id description: The payment capture's ID. amount: type: number title: amount description: The captured amount. created_at: type: string format: date-time title: created_at description: The date the capture was created. created_by: type: string title: created_by description: The ID of the user that captured the payment. payment: type: object BaseCart: type: object description: The item's cart. x-schemaName: BaseCart required: - id - currency_code - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: id: type: string title: id description: The cart's ID. region: $ref: '#/components/schemas/BaseRegion' region_id: type: string title: region_id description: The cart's region id. customer_id: type: string title: customer_id description: The cart's customer id. sales_channel_id: type: string title: sales_channel_id description: The cart's sales channel id. email: type: string title: email description: The cart's email. format: email currency_code: type: string title: currency_code description: The cart's currency code. shipping_address: $ref: '#/components/schemas/BaseCartAddress' billing_address: $ref: '#/components/schemas/BaseCartAddress' items: type: array description: The cart's items. items: type: object shipping_methods: type: array description: The cart's shipping methods. items: $ref: '#/components/schemas/BaseCartShippingMethod' payment_collection: $ref: '#/components/schemas/BasePaymentCollection' metadata: type: object description: The cart's metadata. created_at: type: string format: date-time title: created_at description: The cart's created at. updated_at: type: string format: date-time title: updated_at description: The cart's updated at. original_item_total: type: number title: original_item_total description: The cart's original item total. original_item_subtotal: type: number title: original_item_subtotal description: The cart's original item subtotal. original_item_tax_total: type: number title: original_item_tax_total description: The cart's original item tax total. item_total: type: number title: item_total description: The cart's item total. item_subtotal: type: number title: item_subtotal description: The cart's item subtotal. item_tax_total: type: number title: item_tax_total description: The cart's item tax total. original_total: type: number title: original_total description: The cart's original total. original_subtotal: type: number title: original_subtotal description: The cart's original subtotal. original_tax_total: type: number title: original_tax_total description: The cart's original tax total. total: type: number title: total description: The cart's total. subtotal: type: number title: subtotal description: The cart's subtotal. tax_total: type: number title: tax_total description: The cart's tax total. discount_total: type: number title: discount_total description: The cart's discount total. discount_tax_total: type: number title: discount_tax_total description: The cart's discount tax total. gift_card_total: type: number title: gift_card_total description: The cart's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The cart's gift card tax total. shipping_total: type: number title: shipping_total description: The cart's shipping total. shipping_subtotal: type: number title: shipping_subtotal description: The cart's shipping subtotal. shipping_tax_total: type: number title: shipping_tax_total description: The cart's shipping tax total. original_shipping_total: type: number title: original_shipping_total description: The cart's original shipping total. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The cart's original shipping subtotal. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The cart's original shipping tax total. BaseCartAddress: type: object description: The cart's shipping address. x-schemaName: BaseCartAddress BaseCartLineItem: type: object description: The tax line's item. x-schemaName: BaseCartLineItem required: - id - title - quantity - requires_shipping - is_discountable - is_tax_inclusive - unit_price - cart - cart_id - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. quantity: type: number title: quantity description: The item's quantity. product: $ref: '#/components/schemas/BaseProduct' product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant: $ref: '#/components/schemas/BaseProductVariant' variant_id: type: string title: variant_id description: The item's variant id. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. tax_lines: type: array description: The item's tax lines. items: type: object adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/BaseLineItemAdjustment' cart: $ref: '#/components/schemas/BaseCart' cart_id: type: string title: cart_id description: The item's cart id. metadata: type: object description: The item's metadata. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. deleted_at: type: string format: date-time title: deleted_at description: The item's deleted at. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. BaseCartShippingMethod: type: object description: A cart's shipping method. x-schemaName: BaseCartShippingMethod required: - id - cart_id - name - amount - is_tax_inclusive - created_at - updated_at - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total properties: id: type: string title: id description: The shipping method's ID. cart_id: type: string title: cart_id description: The ID of the cart this shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for fulfillment handling by third-party services. externalDocs: url: https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/BaseShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments, such as applied promotions. items: $ref: '#/components/schemas/BaseShippingMethodAdjustment' created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes applied on the shipping method's amount including promotions. total: type: number title: total description: The shipping method's total amount including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total amount excluding taxes, including promotions. tax_total: type: number title: tax_total description: The total taxes applied on the shipping method's amount including promotions. discount_total: type: number title: discount_total description: The total amount discounted. discount_tax_total: type: number title: discount_tax_total description: The taxes applied on the discounted amount. BaseClaimItem: type: object description: The claim item's details. x-schemaName: BaseClaimItem required: - id - claim_id - order_id - item_id - quantity - reason - raw_quantity properties: id: type: string title: id description: The claim item's ID. claim_id: type: string title: claim_id description: The ID of the claim this item belongs to. order_id: type: string title: order_id description: The ID of the order this item belongs to. item_id: type: string title: item_id description: The ID of the item in the order. quantity: type: number title: quantity description: The quantity claimed. reason: type: string description: The claim's reason. enum: - missing_item - wrong_item - production_failure - other raw_quantity: type: object description: The quantity claimed. properties: value: oneOf: - type: string title: value description: The raw quantity's value. - type: number title: value description: The raw quantity's value. required: - value metadata: type: object description: The item's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the claim was created. updated_at: type: string format: date-time title: updated_at description: The date the claim was updated. BaseCollection: type: object description: The product collection's details. x-schemaName: BaseCollection required: - id - title - handle - created_at - updated_at - deleted_at - metadata properties: id: type: string title: id description: The collection's ID. title: type: string title: title description: The collection's title. handle: type: string title: handle description: The collection's handle. created_at: type: string format: date-time title: created_at description: The collection's creation date. updated_at: type: string format: date-time title: updated_at description: The collection's update date. deleted_at: type: string format: date-time title: deleted_at description: The collection's deletion date. products: type: array description: The collection's products. items: type: object metadata: type: object description: The collection's metadata, used to store custom key-value pairs. BaseExchangeItem: type: object description: The item's details. x-schemaName: BaseExchangeItem required: - id - exchange_id - order_id - item_id - quantity - created_at - updated_at properties: id: type: string title: id description: The item's ID. exchange_id: type: string title: exchange_id description: The ID of the exchange this item belongs to. order_id: type: string title: order_id description: The ID of the order this item belongs to. item_id: type: string title: item_id description: The ID of the item in the order. quantity: type: number title: quantity description: The item's quantity. metadata: type: object description: The item's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. BaseFulfillmentProvider: type: object description: The fulfillment provider's details. x-schemaName: BaseFulfillmentProvider required: - id - is_enabled properties: id: type: string title: id description: The provider's ID. is_enabled: type: boolean title: is_enabled description: Whether the provider is enabled. BaseLineItemAdjustment: type: object description: The adjustment's details. x-schemaName: BaseLineItemAdjustment required: - item - item_id - id - amount - cart_id - created_at - updated_at properties: item: type: object item_id: type: string title: item_id description: The ID of the item this adjustment applies on. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. cart_id: type: string title: cart_id description: The ID of the cart this adjustment belongs to. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion applied by this adjustment. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. BaseLineItemTaxLine: type: object description: The tax line's details x-schemaName: BaseLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: $ref: '#/components/schemas/BaseCartLineItem' item_id: type: string title: item_id description: The ID of the item the tax line applies on. total: type: number title: total description: The item's total, including taxes and promotions. subtotal: type: number title: subtotal description: The item's subtotal excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the associated tax rate. code: type: string title: code description: The code the tax rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. BaseOrder: type: object description: The order's details. x-schemaName: BaseOrder required: - id - version - region_id - customer_id - sales_channel_id - email - currency_code - status - items - shipping_methods - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: payment_collections: type: array description: The order's payment collections. items: $ref: '#/components/schemas/BasePaymentCollection' fulfillments: type: array description: The order's fulfillments. items: $ref: '#/components/schemas/BaseOrderFulfillment' shipping_address: $ref: '#/components/schemas/BaseOrderAddress' billing_address: $ref: '#/components/schemas/BaseOrderAddress' id: type: string title: id description: The order's ID. version: type: number title: version description: The order's version. region_id: type: string title: region_id description: The ID of the region associated with the order. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel the order is placed in. email: type: string title: email description: The email of the customer that placed the order. format: email currency_code: type: string title: currency_code description: The order's currency code. display_id: type: number title: display_id description: The order's display ID. items: type: array description: The order's items. items: $ref: '#/components/schemas/BaseOrderLineItem' shipping_methods: type: array description: The order's shipping methods. items: $ref: '#/components/schemas/BaseOrderShippingMethod' payment_status: type: string description: The order's payment status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - captured - partially_captured - partially_refunded - refunded - requires_action fulfillment_status: type: string description: The order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The total of the order's items including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The total of the order's items excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The tax total of the order's items excluding promotions. item_total: type: number title: item_total description: The total of the order's items including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The total of the order's items excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the order's items including promotions. original_total: type: number title: original_total description: The order's total excluding promotions, including taxes. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The order's tax total, excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The order's tax total including promotions. discount_total: type: number title: discount_total description: The order's discount or promotions total. discount_tax_total: type: number title: discount_tax_total description: The tax total of order's discount or promotion. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The tax total of the order's gift card. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The tax total of the order's shipping. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The tax total of the order's shipping excluding promotions. status: type: string title: status description: The order's status. BaseOrderAddress: type: object description: An order address. x-schemaName: BaseOrderAddress required: - id - metadata - created_at - updated_at properties: id: type: string title: id description: The address's ID. customer_id: type: string title: customer_id description: The ID of the customer this address belongs to. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. BaseOrderFulfillment: type: object description: The fulfillment's details. x-schemaName: BaseOrderFulfillment required: - id - location_id - packed_at - shipped_at - delivered_at - canceled_at - requires_shipping - data - provider_id - shipping_option_id - metadata - created_at - updated_at properties: id: type: string title: id description: The fulfillment's ID. location_id: type: string title: location_id description: The ID of the location the items are fulfilled from. packed_at: type: string title: packed_at description: The date the items were packed. format: date-time shipped_at: type: string title: shipped_at description: The date the items were shipped. format: date-time delivered_at: type: string title: delivered_at description: The date the items were delivered. format: date-time canceled_at: type: string title: canceled_at description: The date the items were canceled. format: date-time data: type: object description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property provider_id: type: string title: provider_id description: The ID of the fulfillment provider used to handle the fulfillment. shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. metadata: type: object description: The fulfillment's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the fulfillment was created. updated_at: type: string format: date-time title: updated_at description: The date the fulfillment was updated. requires_shipping: type: boolean title: requires_shipping description: Whether the fulfillment requires shipping. BaseOrderItemDetail: type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: the detail's ID. item_id: type: string title: id description: the ID of the associated line item. item: type: object quantity: type: number title: quantity description: The item's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The item's fulfilled quantity. delivered_quantity: type: number title: fulfilled_quantity description: The item's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The item's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The item's quantity that's requested to be returned. return_received_quantity: type: number title: return_received_quantity description: The item's quantity that's returned and added to the underlying variant's stocked quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The item's quantity that's returned but damaged. So, it's not added to the underlying variant's stocked quantity. written_off_quantity: type: number title: written_off_quantity description: The item's quantity that's removed from the order. metadata: type: object title: metadata description: The item's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the detail was created. updated_at: type: string format: date-time title: updated_at description: The date the detail was updated. BaseOrderLineItem: type: object description: The item's items. x-schemaName: BaseOrderLineItem required: - id - title - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type_id - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - metadata - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The URL of the item's thumbnail. variant: $ref: '#/components/schemas/BaseProductVariant' variant_id: type: string title: variant_id description: The ID of the associated variant. product: $ref: '#/components/schemas/BaseProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The ID of the collection the item's product belongs to. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant SKU. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The values of the item variant's options. example: Color: Blue requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: $ref: '#/components/schemas/BaseOrderLineItemTaxLine' adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/BaseOrderLineItemAdjustment' detail: $ref: '#/components/schemas/BaseOrderItemDetail' created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the item, excluding promotions. item_total: type: number title: item_total description: The total taxes of the item, including promotions. item_subtotal: type: number title: item_subtotal description: The item's total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes of the item, including promotions. total: type: number title: total description: The item's total, including taxes and promotions. subtotal: type: number title: subtotal description: The item's subtotal excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the item including promotions. discount_total: type: number title: discount_total description: The total discount amount of the item. discount_tax_total: type: number title: discount_tax_total description: The total taxes applied on the discounted amount. refundable_total: type: number title: refundable_total description: The total refundable amount of the item's total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total refundable amount of the item's total for a single quantity. product_type_id: type: string title: product_type_id description: The ID of the associated product's type. BaseOrderLineItemAdjustment: type: object description: The adjustment's details. x-schemaName: BaseOrderLineItemAdjustment properties: item: type: object item_id: type: string title: item_id description: The ID of the item this adjustment applies to. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The ID of the associated order. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion that this applies on the order's item. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. required: - item - item_id - id - amount - order_id - created_at - updated_at BaseOrderLineItemTaxLine: type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine properties: item: type: object item_id: type: string title: item_id description: The ID of the associated line item. total: type: number title: total description: The tax line's total including promotions. subtotal: type: number title: subtotal description: The tax line's subtotal excluding promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate the tax line. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at BaseOrderShippingDetail: type: object description: Details of changes to a shipping method. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The ID of the new changes to the shipping method. shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method. shipping_method: type: object claim_id: type: string title: claim_id description: The ID of the associated claim. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. return_id: type: string title: return_id description: The ID of the associated return. created_at: type: string format: date-time title: created_at description: The date the shipping method change was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method change was updated. BaseOrderShippingMethod: type: object description: The shipping method's details. x-schemaName: BaseOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order the shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount includes applied taxes. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for fulfillment provider handling its fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments. items: $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment' original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The shipping method's total taxes excluding promotions. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The shipping method's tax total including promotions. discount_total: type: number title: discount_total description: The total discounts applied on the shipping method. discount_tax_total: type: number title: discount_tax_total description: The taxes applied on the discount amount. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. detail: $ref: '#/components/schemas/BaseOrderShippingDetail' BaseOrderShippingMethodAdjustment: type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method this adjustment applies on. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The ID of the associated order. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion applied by this adjustment. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at BaseOrderShippingMethodTaxLine: type: object description: The tax line's details. x-schemaName: BaseOrderShippingMethodTaxLine properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method this tax line belongs to. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider handling the tax calculation. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at BaseOrderSummary: type: object description: The order's summary details. x-schemaName: BaseOrderSummary required: - pending_difference - current_order_total - original_order_total - transaction_total - paid_total - refunded_total - accounting_total properties: paid_total: type: number title: paid_total description: The total amount paid. refunded_total: type: number title: refunded_total description: The total amount refunded. pending_difference: type: number title: pending_difference description: The difference pending to be processed. If negative, the customer needs a refund. Otherwise, additional payment is required from the customer. current_order_total: type: number title: current_order_total description: The order's current total, could be the total after a change in the order. original_order_total: type: number title: original_order_total description: The order's original total. transaction_total: type: number title: transaction_total description: The total of the transactions made on the order. accounting_total: type: number title: accounting_total description: The order's total without the credit-line total. BaseOrderTransaction: type: object description: An order transaction's details. x-schemaName: BaseOrderTransaction required: - id - order_id - amount - currency_code - reference - reference_id - metadata - created_at - updated_at properties: id: type: string title: id description: The transaction's ID. order_id: type: string title: order_id description: The ID of the order this transaction belongs to. amount: type: number title: amount description: The transaction's amount. currency_code: type: string title: currency_code description: The transaction's currency code. example: usd reference: type: string title: reference description: The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`. enum: - capture - refund reference_id: type: string title: reference_id description: The ID of the referenced record in the referenced table. metadata: type: object description: The transaction's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date that the transaction was created. updated_at: type: string format: date-time title: updated_at description: The date that the transaction was updated. BasePayment: type: object description: The payment's details. x-schemaName: BasePayment required: - id - amount - currency_code - provider_id properties: id: type: string title: id description: The payment's ID. amount: type: number title: amount description: The payment's amount. authorized_amount: type: number title: authorized_amount description: The amount authorized of the payment. currency_code: type: string title: currency_code description: The payment's currency code. provider_id: type: string title: provider_id description: The ID of the payment provider used to process this payment. data: type: object description: The payment's data, useful for processing by the payment provider. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment#whats-a-payment created_at: type: string format: date-time title: created_at description: The date the payment was created. updated_at: type: string format: date-time title: updated_at description: The date the payment was updated. captured_at: type: string format: date-time title: captured_at description: The date the payment was captured. canceled_at: type: string format: date-time title: canceled_at description: The date the payment was canceled. captured_amount: type: number title: captured_amount description: The captured amount of the payment. refunded_amount: type: number title: captured_amount description: The refunded amount of the payment. captures: type: array description: The details of payment captures. items: $ref: '#/components/schemas/BaseCapture' refunds: type: array description: The details of payment refunds. items: $ref: '#/components/schemas/BaseRefund' payment_collection: type: object payment_session: type: object BasePaymentCollection: type: object description: The payment collection's details. x-schemaName: BasePaymentCollection required: - id - currency_code - amount - status - payment_providers properties: id: type: string title: id description: The payment collection's ID. currency_code: type: string title: currency_code description: The payment collection's currency code. amount: type: number title: amount description: The total amount to be paid. authorized_amount: type: number title: authorized_amount description: The total authorized amount of the collection's payments. captured_amount: type: number title: captured_amount description: The total captured amount of the collection's payments. refunded_amount: type: number title: refunded_amount description: The total refunded amount of the collection's payments. completed_at: type: string format: date-time title: completed_at description: The date the payment collection was completed. created_at: type: string format: date-time title: created_at description: The date the payment collection was created. updated_at: type: string format: date-time title: updated_at description: The date the payment collection was updated. metadata: type: object description: The payment collection's metadata, can hold custom key-value pairs. status: type: string description: The payment collection's status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - completed - failed payment_providers: type: array description: The payment provider used to process the collection's payments and sessions. items: $ref: '#/components/schemas/BasePaymentProvider' payment_sessions: type: array description: The payment collection's payment sessions. items: $ref: '#/components/schemas/BasePaymentSession' payments: type: array description: The payment collection's payments. items: $ref: '#/components/schemas/BasePayment' BasePaymentProvider: type: object description: The payment provider's details. x-schemaName: BasePaymentProvider required: - id properties: id: type: string title: id description: The payment provider's ID. BasePaymentSession: type: object description: The payment session's details. x-schemaName: BasePaymentSession required: - id - amount - currency_code - provider_id - data - status properties: id: type: string title: id description: The payment session's ID. amount: type: number title: amount description: The payment session's amount. currency_code: type: string title: currency_code description: The payment session's currency code. example: usd provider_id: type: string title: provider_id description: The ID of the payment provider processing this session. data: type: object description: The payment session's data, useful for the payment provider processing the payment. externalDocs: url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property context: type: object description: The context around the payment, such as the customer's details. example: customer: id: cus_123 status: type: string description: The payment session's status. enum: - error - authorized - canceled - captured - pending - requires_more authorized_at: type: string title: authorized_at description: The date the payment session was authorized. format: date-time payment_collection: type: object payment: $ref: '#/components/schemas/BasePayment' BaseProduct: type: object description: The product's details. x-schemaName: BaseProduct required: - id - title - handle - subtitle - description - is_giftcard - status - thumbnail - width - weight - length - height - origin_country - hs_code - mid_code - material - collection_id - type_id - variants - options - images - discountable - external_id - created_at - updated_at - deleted_at properties: collection: $ref: '#/components/schemas/BaseCollection' categories: type: array description: The product's categories. items: $ref: '#/components/schemas/BaseProductCategory' variants: type: array description: The product's variants. items: type: object type: $ref: '#/components/schemas/BaseProductType' tags: type: array description: The product's tags. items: $ref: '#/components/schemas/BaseProductTag' length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected options: type: array description: The product's options. items: $ref: '#/components/schemas/BaseProductOption' description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product was created. updated_at: type: string format: date-time title: updated_at description: The date the product was updated. handle: type: string title: handle description: The product's unique handle. subtitle: type: string title: subtitle description: The product's subtitle. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. thumbnail: type: string title: thumbnail description: The product's thumbnail. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. material: type: string title: material description: The product's material. collection_id: type: string title: collection_id description: The ID of the collection that the product belongs to. type_id: type: string title: type_id description: The ID of the product's type. images: type: array description: The product's images. items: $ref: '#/components/schemas/BaseProductImage' discountable: type: boolean title: discountable description: Whether discounts can be applied on the product. external_id: type: string title: external_id description: The ID of a product in an external system, such as an ERP or CMS. deleted_at: type: string format: date-time title: deleted_at description: The date the product was deleted. BaseProductCategory: type: object description: The product category's details. x-schemaName: BaseProductCategory required: - id - name - description - handle - is_active - is_internal - rank - parent_category_id - parent_category - category_children - created_at - updated_at - deleted_at properties: category_children: type: array description: The category's children. items: $ref: '#/components/schemas/AdminProductCategory' parent_category: $ref: '#/components/schemas/AdminProductCategory' products: type: array description: The category's products. items: type: object name: type: string title: name description: The category's name. description: type: string title: description description: The category's description. id: type: string title: id description: The category's ID. metadata: type: object description: The category's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the category was created. updated_at: type: string format: date-time title: updated_at description: The date the category was updated. handle: type: string title: handle description: The category's unique handle. deleted_at: type: string format: date-time title: deleted_at description: The date the category was deleted. is_active: type: boolean title: is_active description: Whether the category is active. If disabled, the category isn't shown in the storefront. is_internal: type: boolean title: is_internal description: Whether the category is internal. If enabled, the category is only seen by admin users. rank: type: number title: rank description: The category's rank among sibling categories. parent_category_id: type: string title: parent_category_id description: The ID of the category's parent. BaseProductImage: type: object description: The image's details. x-schemaName: BaseProductImage properties: id: type: string title: id description: The image's ID. url: type: string title: url description: The image's URL. created_at: type: string format: date-time title: created_at description: The date the image was created. updated_at: type: string format: date-time title: updated_at description: The date the image was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the image was deleted. metadata: type: object description: The image's metadata, can hold custom key-value pairs. rank: type: number title: rank description: The image's rank among its sibling images. required: - id - url - rank BaseProductOption: type: object description: The product option's details. x-schemaName: BaseProductOption required: - id - title properties: id: type: string title: id description: The product option's ID. title: type: string title: title description: The product option's title. product: type: object product_id: type: string title: product_id description: The ID of the product this option belongs to. values: type: array description: The product option's values. items: $ref: '#/components/schemas/BaseProductOptionValue' metadata: type: object description: The product option's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product option was created. updated_at: type: string format: date-time title: updated_at description: The date the product option was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the product option was deleted. BaseProductOptionValue: type: object description: The product option value's details. x-schemaName: BaseProductOptionValue required: - id - value properties: id: type: string title: id description: The value's ID. value: type: string title: value description: The value. option: type: object option_id: type: string title: option_id description: The ID of the option this value belongs to. metadata: type: object description: The value's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the value was created. updated_at: type: string format: date-time title: updated_at description: The date the value was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the value was deleted. BaseProductTag: type: object description: The product tag's details. x-schemaName: BaseProductTag required: - id - value - created_at - updated_at properties: id: type: string title: id description: The tag's ID. value: type: string title: value description: The tag's value. created_at: type: string format: date-time title: created_at description: The date the tag was created. updated_at: type: string format: date-time title: updated_at description: The date the tag was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the tag was deleted. metadata: type: object description: The tag's metadata, can hold custom key-value pairs. BaseProductType: type: object description: The product type's details. x-schemaName: BaseProductType required: - id - value - created_at - updated_at properties: id: type: string title: id description: The type's ID. value: type: string title: value description: The type's value. created_at: type: string format: date-time title: created_at description: The date the type was created. updated_at: type: string format: date-time title: updated_at description: The date the type was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the type was deleted. metadata: type: object description: The type's metadata, can hold custom key-value pairs. BaseProductVariant: type: object description: The product variant's details. x-schemaName: BaseProductVariant required: - id - title - sku - barcode - ean - upc - allow_backorder - manage_inventory - hs_code - origin_country - mid_code - material - weight - length - height - width - options - created_at - updated_at - deleted_at properties: id: type: string title: id description: The variant's ID. title: type: string title: title description: The variant's title. sku: type: string title: sku description: The variant's SKU. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's EAN code. upc: type: string title: upc description: The variant's UPC. allow_backorder: type: boolean title: allow_backorder description: Whether the variant can be ordered even if it's out of stock. manage_inventory: type: boolean title: manage_inventory description: Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter. hs_code: type: string title: hs_code description: The variant's HS code. origin_country: type: string title: origin_country description: The variant's origin country. mid_code: type: string title: mid_code description: The variant's MID code. material: type: string title: material description: The variant's material. weight: type: number title: weight description: The variant's weight. length: type: number title: length description: The variant's length. height: type: number title: height description: The variant's height. width: type: number title: width description: The variant's width. variant_rank: type: number title: variant_rank description: The variant's rank among its sibling variants. options: type: array description: The variant's option values. items: $ref: '#/components/schemas/BaseProductOptionValue' product: $ref: '#/components/schemas/BaseProduct' product_id: type: string title: product_id description: The ID of the product that the variant belongs to. calculated_price: $ref: '#/components/schemas/BaseCalculatedPriceSet' created_at: type: string format: date-time title: created_at description: The date the variant was created. updated_at: type: string format: date-time title: updated_at description: The date the variant was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the variant was deleted. metadata: type: object description: The variant's metadata, can hold custom key-value pairs. BasePromotionRuleValue: type: object description: The rule value's details. x-schemaName: BasePromotionRuleValue required: - id properties: id: type: string title: id description: The value's ID. value: type: string title: value description: The value. BaseRefund: type: object description: The refund's details. x-schemaName: BaseRefund required: - id - amount - created_at - payment properties: id: type: string title: id description: The refund's ID. amount: type: number title: amount description: The refund's amount. refund_reason_id: type: string title: refund_reason_id description: The ID of the refund reason. note: type: string title: note description: More details about the refund. created_at: type: string format: date-time title: created_at description: The date the refund was created. created_by: type: string title: created_by description: The ID of the user that created the refund. payment: type: object refund_reason: $ref: '#/components/schemas/RefundReason' BaseRegion: type: object description: The region's details. x-schemaName: BaseRegion required: - id - name - currency_code properties: id: type: string title: id description: The region's ID. name: type: string title: name description: The region's name. currency_code: type: string title: currency_code description: The region's currency code. automatic_taxes: type: boolean title: automatic_taxes description: The region's automatic taxes. countries: type: array description: The region's countries. items: $ref: '#/components/schemas/BaseRegionCountry' payment_providers: type: array description: The region's payment providers. items: $ref: '#/components/schemas/AdminPaymentProvider' metadata: type: object description: The region's metadata. created_at: type: string format: date-time title: created_at description: The region's created at. updated_at: type: string format: date-time title: updated_at description: The region's updated at. BaseRegionCountry: type: object description: The country's details. x-schemaName: BaseRegionCountry properties: id: type: string title: id description: The country's ID. iso_2: type: string title: iso_2 description: The country's iso 2. example: us iso_3: type: string title: iso_3 description: The country's iso 3. example: usa num_code: type: string title: num_code description: The country's num code. example: 840 name: type: string title: name description: The country's name. display_name: type: string title: display_name description: The country's display name. required: - id BaseRuleOperatorOptions: type: object description: The operator's details. x-schemaName: BaseRuleOperatorOptions required: - id - value - label properties: id: type: string title: id description: The operator's ID. example: in value: type: string title: value description: The operator's value. example: in label: type: string title: label description: The operator's label. example: In BaseShippingMethodAdjustment: type: object description: The adjustment's details. x-schemaName: BaseShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - cart_id - created_at - updated_at properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method the adjustment is applied on. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. cart_id: type: string title: cart_id description: The ID of the associated cart. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion applied by this adjustment. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. BaseShippingMethodTaxLine: type: object description: The tax line's details. x-schemaName: BaseShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of this shipping method the tax line belongs to. total: type: number title: total description: The method's total including taxes and promotions. subtotal: type: number title: subtotal description: The method's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider that calculated the taxes. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. CampaignResponse: type: object description: The campaign's details. x-schemaName: CampaignResponse required: - id - name - description - currency - campaign_identifier - starts_at - ends_at - budget properties: id: type: string title: id description: The campaign's ID. name: type: string title: name description: The campaign's name. description: type: string title: description description: The campaign's description. currency: type: string title: currency description: The campaign's currency. campaign_identifier: type: string title: campaign_identifier description: The campaign's campaign identifier. starts_at: type: string title: starts_at description: The campaign's starts at. ends_at: type: string title: ends_at description: The campaign's ends at. budget: type: object description: The campaign's budget. required: - id - type - currency_code - limit - used properties: id: type: string title: id description: The budget's ID. type: type: string enum: - spend - usage currency_code: type: string title: currency_code description: The budget's currency code. limit: type: number title: limit description: The budget's limit. used: type: number title: used description: The budget's used. CreateAddress: type: object description: The address to create. x-schemaName: CreateAddress properties: customer_id: type: string title: customer_id description: The ID of the customer this address belongs to. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata, can hold custom key-value pairs. CustomerGroupInCustomerFilters: type: object description: Filter by customer groups to get their associated customers. x-schemaName: CustomerGroupInCustomerFilters required: - id - name - created_at - updated_at - deleted_at properties: id: oneOf: - type: string title: id description: Filter by a group's ID. - type: array description: Filter by group IDs. items: type: string title: id description: A group's ID. name: oneOf: - type: string title: name description: Filter by a group's name. - type: array description: Filter by group names. items: type: string title: name description: A group's name. created_at: type: object description: Filter by the group's creation date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). updated_at: type: object description: Filter by the group's update date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). deleted_at: type: object description: Filter by the group's deletion date. properties: $and: type: array description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters. items: type: object title: $and $or: type: array description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters. items: type: object title: $or $eq: oneOf: - type: string title: $eq description: Filter by an exact match. - type: array description: Filter by exact matches. items: type: string title: $eq description: Filter by an exact match. $ne: type: string title: $ne description: Filter by values not equal to this parameter. $in: type: array description: Filter by values in this array. items: type: string title: $in description: Filter by values in this array. $nin: type: array description: Filter by values not in this array. items: type: string title: $nin description: Filter by values not in this array. $not: oneOf: - type: string title: $not description: Filter by values not matching the conditions in this parameter. - type: object description: Filter by values not matching the conditions in this parameter. - type: array description: Filter by values not matching the conditions in this parameter. items: type: string title: $not description: Filter by values not matching the conditions in this parameter. $gt: type: string title: $gt description: Filter by values greater than this parameter. Useful for numbers and dates only. $gte: type: string title: $gte description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only. $lt: type: string title: $lt description: Filter by values less than this parameter. Useful for numbers and dates only. $lte: type: string title: $lte description: Filter by values less than or equal to this parameter. Useful for numbers and dates only. $like: type: string title: $like description: Apply a `like` filter. Useful for strings only. $re: type: string title: $re description: Apply a regex filter. Useful for strings only. $ilike: type: string title: $ilike description: Apply a case-insensitive `like` filter. Useful for strings only. $fulltext: type: string title: $fulltext description: Filter to apply on full-text properties. $overlap: type: array description: Filter arrays that have overlapping values with this parameter. items: type: string title: $overlap description: Filter arrays that have overlapping values with this parameter. $contains: type: array description: Filter arrays that contain some of the values of this parameter. items: type: string title: $contains description: Filter arrays that contain some of the values of this parameter. $contained: type: array description: Filter arrays that contain all values of this parameter. items: type: string title: $contained description: Filter arrays that contain all values of this parameter. $exists: type: boolean title: $exists description: Filter by whether a value for this parameter exists (not `null`). Error: title: Response Error type: object properties: code: type: string description: A slug code to indicate the type of the error. enum: - invalid_state_error - invalid_request_error - api_error - unknown_error message: type: string description: Description of the error that occurred. example: first_name must be a string type: type: string description: A slug indicating the type of the error. enum: - QueryRunnerAlreadyReleasedError - TransactionAlreadyStartedError - TransactionNotStartedError - conflict - unauthorized - payment_authorization_error - duplicate_error - not_allowed - invalid_data - not_found - database_error - unexpected_state - invalid_argument - unknown_error InventoryLevel: type: object description: The inventory level's details x-schemaName: InventoryLevel required: - id - inventory_item_id - location_id - stocked_quantity - reserved_quantity - available_quantity - incoming_quantity properties: id: type: string title: id description: The inventory level's ID. inventory_item_id: type: string title: inventory_item_id description: The ID of the associated inventory item. location_id: type: string title: location_id description: The ID of the associated location. stocked_quantity: type: number title: stocked_quantity description: The inventory level's stocked quantity. reserved_quantity: type: number title: reserved_quantity description: The inventory level's reserved quantity. available_quantity: type: number title: available_quantity description: The inventory level's available quantity. incoming_quantity: type: number title: incoming_quantity description: The inventory level's incoming quantity. metadata: type: object description: The inventory level's metadata, can hold custom key-value pairs. Order: type: object description: The order change's order. x-schemaName: Order required: - id - version - display_id - status - currency_code - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_subtotal - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: id: type: string title: id description: The order's ID. version: type: number title: version description: The order's version. order_change: type: object status: type: string description: The order's status. enum: - canceled - requires_action - pending - completed - draft - archived region_id: type: string title: region_id description: The ID of the region the order belongs to. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel the order was placed in. email: type: string title: email description: The email of the customer that placed the order. format: email currency_code: type: string title: currency_code description: The order's currency code. example: usd shipping_address: $ref: '#/components/schemas/OrderAddress' billing_address: $ref: '#/components/schemas/OrderAddress' items: type: array description: The order's items. items: $ref: '#/components/schemas/OrderLineItem' shipping_methods: type: array description: The order's shipping methods. items: $ref: '#/components/schemas/OrderShippingMethod' transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/OrderTransaction' summary: type: object description: The order's summary. properties: pending_difference: type: number title: pending_difference description: The remaining amount to be paid or refunded. current_order_total: type: number title: current_order_total description: The order's current total. original_order_total: type: number title: original_order_total description: The order's total before any changes. transaction_total: type: number title: transaction_total description: The total of the transactions (payments and refunds) made on the order. paid_total: type: number title: paid_total description: The total paid amount. refunded_total: type: number title: refunded_total description: The total refunded amount. credit_line_total: type: number title: credit_line_total description: The total credit line amount. accounting_total: type: number title: accounting_total description: The total amount for accounting purposes. raw_pending_difference: type: object description: The summary's raw pending difference. raw_current_order_total: type: object description: The summary's raw current order total. raw_original_order_total: type: object description: The summary's raw original order total. raw_transaction_total: type: object description: The summary's raw transaction total. raw_paid_total: type: object description: The summary's raw paid total. raw_refunded_total: type: object description: The summary's raw refunded total. raw_credit_line_total: type: object description: The summary's raw credit line total. raw_accounting_total: type: object description: The summary's raw accounting total. required: - pending_difference - current_order_total - original_order_total - transaction_total - paid_total - refunded_total - credit_line_total - accounting_total - raw_pending_difference - raw_current_order_total - raw_original_order_total - raw_transaction_total - raw_paid_total - raw_refunded_total - raw_credit_line_total - raw_accounting_total metadata: type: object description: The order's metadata, can hold custom key-value pairs. canceled_at: type: string format: date-time title: canceled_at description: The date the order was canceled. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The order items' total including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The order items' total excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The taxes total for order items, excluding promotions. item_total: type: number title: item_total description: The order items' total including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The order items' total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The tax total of the order items including promotions. original_total: type: number title: original_total description: The order's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The tax total of the order excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's subtotal excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the order including promotions. discount_subtotal: type: number title: discount_subtotal description: The total discount excluding taxes. discount_total: type: number title: discount_total description: The total discount including taxes. discount_tax_total: type: number title: discount_tax_total description: The tax total applied on the discount. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The order's gift card tax total. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The total taxes of the order's shipping including taxes. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The total taxes of the order's shipping excluding promotions. display_id: type: number title: display_id description: The order's display ID. credit_lines: type: array description: The order's credit lines, useful to add additional payment amounts for an order. items: $ref: '#/components/schemas/OrderCreditLine' is_draft_order: type: boolean title: is_draft_order description: Whether the order is a draft order. deleted_at: type: string format: date-time title: deleted_at description: The date the order was deleted. OrderAddress: type: object description: The address's details. x-schemaName: OrderAddress required: - id - created_at - updated_at properties: id: type: string title: id description: The address's ID. customer_id: type: string title: customer_id description: The ID of the customer the address belongs to. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. OrderChange: type: object description: The order change's details. x-schemaName: OrderChange required: - id - version - order_id - return_id - exchange_id - claim_id - order - return_order - exchange - claim - actions - status - requested_by - requested_at - confirmed_by - confirmed_at - declined_by - declined_reason - metadata - declined_at - canceled_by - canceled_at - created_at - updated_at properties: id: type: string title: id description: The order change's ID. version: type: number title: version description: The order change's version. This will be the order's version when the change is applied. change_type: type: string description: The order change's type. enum: - return - exchange - claim - edit order_id: type: string title: order_id description: The ID of the order this change applies on. return_id: type: string title: return_id description: The ID of the associated return. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. claim_id: type: string title: claim_id description: The ID of the associated claim. order: type: object return_order: type: object exchange: $ref: '#/components/schemas/OrderExchange' claim: $ref: '#/components/schemas/OrderClaim' actions: type: array description: The order change's actions. items: $ref: '#/components/schemas/OrderChangeAction' status: type: string description: The order change's status. enum: - canceled - requested - pending - confirmed - declined requested_by: type: string title: requested_by description: The ID of the user that requested the change. requested_at: type: string title: requested_at description: The date the order change was requested. format: date-time confirmed_by: type: string title: confirmed_by description: The ID of the user that confirmed the order change. confirmed_at: type: string title: confirmed_at description: The date the order change was confirmed. format: date-time declined_by: type: string title: declined_by description: The ID of the user that declined the order change. declined_reason: type: string title: declined_reason description: The reason the order change was declined. metadata: type: object description: The order change's metadata, can hold custom key-value pairs. declined_at: type: string title: declined_at description: The date the order change was declined. format: date-time canceled_by: type: string title: canceled_by description: The ID of the user that canceled the order change. canceled_at: type: string title: canceled_at description: The date the order change was canceled. format: date-time created_at: type: string format: date-time title: created_at description: The date the order change was created. updated_at: type: string format: date-time title: updated_at description: The date the order change was updated. OrderChangeAction: type: object description: The order change action's details. x-schemaName: OrderChangeAction required: - id - order_change_id - order_change - order_id - return_id - claim_id - exchange_id - order - reference - reference_id - action - details - internal_note - created_at - updated_at properties: id: type: string title: id description: The action's ID. order_change_id: type: string title: order_change_id description: The ID of the order change that the action belongs to. order_change: type: object order_id: type: string title: order_id description: The ID of the order the associated change is for. return_id: type: string title: return_id description: The ID of the associated return. claim_id: type: string title: claim_id description: The ID of the associated claim. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. order: $ref: '#/components/schemas/Order' reference: type: string title: reference description: The name of the table this action applies on. enum: - claim - exchange - return - order_shipping_method reference_id: type: string title: reference_id description: The ID of the record in the referenced table. action: type: string description: The applied action. enum: - CANCEL_RETURN_ITEM - FULFILL_ITEM - DELIVER_ITEM - CANCEL_ITEM_FULFILLMENT - ITEM_ADD - ITEM_REMOVE - ITEM_UPDATE - RECEIVE_DAMAGED_RETURN_ITEM - RECEIVE_RETURN_ITEM - RETURN_ITEM - SHIPPING_ADD - SHIPPING_REMOVE - SHIP_ITEM - WRITE_OFF_ITEM - REINSTATE_ITEM details: type: object description: The action's details. example: reference_id: 123 quantity: 1 internal_note: type: string title: internal_note description: A note that's viewed only by admin users. created_at: type: string format: date-time title: created_at description: The date the action was created. updated_at: type: string format: date-time title: updated_at description: The date the action was updated. OrderClaim: type: object description: The order change's claim. x-schemaName: OrderClaim required: - id - type - order_id - order_version - display_id - claim_items - additional_items - metadata properties: id: type: string title: id description: The claim's ID. order_id: type: string title: order_id description: The ID of the order associated with the claim. claim_items: type: array description: The order items targetted by the claim. items: $ref: '#/components/schemas/BaseClaimItem' additional_items: type: array description: The outbound or new items of the claim. items: $ref: '#/components/schemas/BaseClaimItem' return: type: object return_id: type: string title: return_id description: The ID of the associated return. no_notification: type: boolean title: no_notification description: Whether the customer should be notified about changes in the claim. refund_amount: type: number title: refund_amount description: The amount to be refunded. display_id: type: number title: display_id description: The claim's display ID. shipping_methods: type: array description: The claim's shipping methods. items: $ref: '#/components/schemas/OrderShippingMethod' transactions: type: array description: The claim's transactions. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions description: Learn more about transactions of orders and associated models. items: $ref: '#/components/schemas/OrderTransaction' metadata: type: object description: The claim's metadata, used to store custom key-value pairs. created_at: type: string format: date-time title: created_at description: The claim's creation date. updated_at: type: string format: date-time title: updated_at description: The claim's update date. type: type: string description: The claim's type. enum: - replace - refund order: $ref: '#/components/schemas/Order' order_version: type: number title: order_version description: The claim's order version. raw_refund_amount: oneOf: - type: string title: raw_refund_amount description: The claim's raw refund amount. - type: number title: raw_refund_amount description: The claim's raw refund amount. - type: string title: raw_refund_amount description: The claim's raw refund amount. - type: number title: raw_refund_amount description: The claim's raw refund amount. created_by: type: string title: created_by description: The ID of the user that created the claim. deleted_at: type: string format: date-time title: deleted_at description: The date the claim was deleted. canceled_at: type: string title: canceled_at description: The date the claim was canceled. format: date-time OrderCreditLine: type: object description: The credit line's details. x-schemaName: OrderCreditLine required: - id - order_id - order - amount - reference - reference_id - metadata - created_at - updated_at properties: id: type: string title: id description: The credit line's ID. order_id: type: string title: order_id description: The ID of the associated order. order: type: object reference: type: string title: reference description: The table that this credit line references. For example, `payment_collection`. reference_id: type: string title: reference_id description: The ID of the record in the referenced table. For example, `paycol_123`. metadata: type: object description: The credit line's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the credit line was created. updated_at: type: string format: date-time title: updated_at description: The date the credit line was updated. amount: type: number title: amount description: The credit line's amount. OrderExchange: type: object description: The order change's exchange. x-schemaName: OrderExchange required: - id - order_id - order_version - display_id - additional_items - metadata properties: order_id: type: string title: order_id description: The ID of the order the exchange is created for. additional_items: type: array description: The new items (outbound) sent by the exchange. items: $ref: '#/components/schemas/BaseExchangeItem' no_notification: type: boolean title: no_notification description: Whether to send the customer notifications when the exchange is updated. difference_due: type: number title: difference_due description: The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer. return: $ref: '#/components/schemas/Return' return_id: type: string title: return_id description: The ID of the associated exchange. id: type: string title: id description: The exchange's ID. display_id: type: number title: display_id description: The exchange's display ID. shipping_methods: type: array description: The shipping methods used to send the new (outbound) items. items: $ref: '#/components/schemas/OrderShippingMethod' transactions: type: array description: The exchange's transactions. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/transactions items: $ref: '#/components/schemas/OrderTransaction' metadata: type: object description: The exchange's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date that the exchange was created. updated_at: type: string format: date-time title: updated_at description: The date that the exchange was updated. order: $ref: '#/components/schemas/Order' order_version: type: number title: order_version description: The version of the order when the exchange is applied. raw_difference_due: oneOf: - type: string title: raw_difference_due description: The exchange's raw difference due. - type: number title: raw_difference_due description: The exchange's raw difference due. - type: string title: raw_difference_due description: The exchange's raw difference due. - type: number title: raw_difference_due description: The exchange's raw difference due. allow_backorder: type: boolean title: allow_backorder description: Whether variants that are out of stock can be added to the exchange as outbound items. created_by: type: string title: created_by description: The ID of the user that created the exchange. deleted_at: type: string format: date-time title: deleted_at description: The date the exchange was deleted. canceled_at: type: string title: canceled_at description: The date the exchange was canceled. format: date-time OrderItem: type: object description: The order item's detail. x-schemaName: OrderItem required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The item's ID. item_id: type: string title: item_id description: The ID of the associated line item. item: type: object quantity: type: number title: quantity description: The item's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The item's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The item's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The item's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The item's quantity that's requested to be returned. return_received_quantity: type: number title: return_received_quantity description: The item's quantity that's received through a return. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The item's quantity that's returned but dismissed because it's damaged. written_off_quantity: type: number title: written_off_quantity description: The item's quantity that's removed due to an order change. metadata: type: object description: The item's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. OrderLineItem: type: object description: The order line item's details. x-schemaName: OrderLineItem required: - id - title - requires_shipping - is_discountable - is_giftcard - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail URL. variant_id: type: string title: variant_id description: The ID of the associated variant. product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The ID of the associated product's type. product_collection: type: string title: product_collection description: The ID of the associated product's collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant SKU. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The associated variant's values for the associated product's options. example: Color: Red requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item's price includes taxes. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's price for a single quantity. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: $ref: '#/components/schemas/OrderLineItemTaxLine' adjustments: type: array description: The item's adjustments. items: $ref: '#/components/schemas/OrderLineItemAdjustment' detail: $ref: '#/components/schemas/OrderItem' created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes and promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the item excluding promotions. item_total: type: number title: item_total description: The item's total for a single quantity, including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The item's total for a single quantity, excluding taxes and including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes of a single quantity of the item, including promotions. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The total taxes of the item, including promotions. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The total taxes on the discounted amount. refundable_total: type: number title: refundable_total description: The total amount of the item that can be refunded. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total amount that can be refunded of a single quantity of the item. product_type_id: type: string title: product_type_id description: The ID of the associated product's type. is_giftcard: type: boolean title: is_giftcard description: Whether the item is a gift card. OrderLineItemAdjustment: type: object description: The line item adjustment's details. x-schemaName: OrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object item_id: type: string title: item_id description: The ID of the item this adjustment is for. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The ID of the associated order. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion applied by this adjustment. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. OrderLineItemTaxLine: type: object description: The line item tax line's details. x-schemaName: OrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object item_id: type: string title: item_id description: The ID of the line item that the tax line belongs to. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate the tax lines. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. OrderReturnItem: type: object description: The item's items. x-schemaName: OrderReturnItem required: - id - return_id - order_id - item_id - quantity properties: id: type: string title: id description: The return item's ID. quantity: type: number title: quantity description: The return item's quantity. received_quantity: type: number title: received_quantity description: The received quantity of the item. This quantity is added to the stocked inventory quantity of the item. reason_id: type: string title: reason_id description: The ID of the return reason associated with the item. item_id: type: string title: item_id description: The ID of the associated order item. return_id: type: string title: return_id description: The ID of the return this return item belongs to. metadata: type: object description: The return item's metadata, can hold custom key-value pairs. order_id: type: string title: order_id description: The ID of the order the return belongs to. created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. damaged_quantity: type: number title: damaged_quantity description: The item's damaged quantity. OrderShippingMethod: type: object description: The shipping method's details. x-schemaName: OrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - created_at - updated_at - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order that the shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount includes taxes. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for the fulfillment provider handling the fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/order/concepts#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: $ref: '#/components/schemas/OrderShippingMethodTaxLine' adjustments: type: array description: The shipping method's adjustments. items: $ref: '#/components/schemas/OrderShippingMethodAdjustment' created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's subtotal excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the shipping method excluding promotions. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The total taxes of the shipping method, including promotions. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The total taxes of the discount amount. OrderShippingMethodAdjustment: type: object description: The shipping method adjustment's details. x-schemaName: OrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method this adjustment is for. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The ID of the associated order. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the promotion this adjustment applies. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. OrderShippingMethodTaxLine: type: object description: The shipping method tax line's details. x-schemaName: OrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method that this tax line is for. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The rate to charge. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate taxes. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. OrderTransaction: type: object description: The transaction's details. x-schemaName: OrderTransaction required: - id - order_id - version - order - amount - currency_code - reference - reference_id - metadata - created_at - updated_at properties: id: type: string title: id description: The transaction's ID. order_id: type: string title: order_id description: The ID of the order this transaction belongs to. amount: type: number title: amount description: The transaction's amount. currency_code: type: string title: currency_code description: The transaction's currency code. example: usd reference: type: string title: reference description: The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`. enum: - capture - refund reference_id: type: string title: reference_id description: The ID of the referenced record in the referenced table. metadata: type: object description: The transaction's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date that the transaction was created. updated_at: type: string format: date-time title: updated_at description: The date that the transaction was updated. order: type: object version: type: number title: version description: The order version that the transaction belongs to. RefundReason: type: object description: The refund reason's details. x-schemaName: RefundReason required: - id - label - metadata - created_at - updated_at properties: id: type: string title: id description: The refund reason's ID. label: type: string title: label description: The refund reason's label. description: type: string title: description description: The refund reason's description. metadata: type: object description: The refund reason's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the refund reason was created. updated_at: type: string format: date-time title: updated_at description: The date the refund reason was updated. RefundReasonResponse: type: object description: The refund reason's details. x-schemaName: RefundReasonResponse required: - refund_reason properties: refund_reason: $ref: '#/components/schemas/AdminRefundReason' Return: type: object description: The return's details. x-schemaName: Return required: - id - status - order_id - items - display_id - metadata properties: id: type: string title: id description: The return's ID. status: type: string description: The return's status. enum: - canceled - requested - received - partially_received refund_amount: type: number title: refund_amount description: The amount refunded by this return. order_id: type: string title: order_id description: The ID of the associated order. items: type: array description: The return's items. items: $ref: '#/components/schemas/OrderReturnItem' shipping_methods: type: array description: The return's shipping methods. items: $ref: '#/components/schemas/OrderShippingMethod' transactions: type: array description: The return's transactions. items: $ref: '#/components/schemas/OrderTransaction' metadata: type: object description: The return's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the return was created. updated_at: type: string format: date-time title: updated_at description: The date the return was updated. canceled_at: type: string title: canceled_at description: The date the return was canceled. format: date-time raw_refund_amount: oneOf: - type: string title: raw_refund_amount description: The return order's raw refund amount. - type: number title: raw_refund_amount description: The return order's raw refund amount. - type: string title: raw_refund_amount description: The return order's raw refund amount. - type: number title: raw_refund_amount description: The return order's raw refund amount. order: $ref: '#/components/schemas/Order' exchange_id: type: string title: exchange_id description: The ID of the exchange this return belongs to, if any. exchange: type: object claim_id: type: string title: claim_id description: The ID of the claim this return belongs to, if any. claim: $ref: '#/components/schemas/OrderClaim' display_id: type: number title: display_id description: The return order's display ID. location_id: type: string title: location_id description: The ID of the stock location the items are returned to. no_notification: type: boolean title: no_notification description: Whether to notify the customer about changes in the return. created_by: type: string title: created_by description: The ID of the user that created the return. deleted_at: type: string format: date-time title: deleted_at description: The date the return was deleted. requested_at: type: string title: requested_at description: The date the return was requested. format: date-time received_at: type: string title: received_at description: The date the return was received. format: date-time StoreAcceptOrderTransfer: type: object description: The details of accepting the order transfer. x-schemaName: StoreAcceptOrderTransfer required: - token properties: token: type: string title: token description: The order transfer's token issued when the transfer was requested. StoreAddCartLineItem: type: object description: The details of the line item to add. x-schemaName: StoreAddCartLineItem required: - variant_id - quantity properties: variant_id: type: string title: variant_id description: The ID of the product variant to add to the cart. quantity: type: number title: quantity description: The item's quantity. metadata: type: object description: The item's metadata, can hold custom key-value pairs. StoreAddGiftCardToCart: type: object description: The details to add a gift card to the cart. x-schemaName: StoreAddGiftCardToCart required: - code properties: code: type: string title: code description: The gift card's code. StoreAddStoreCreditsToCart: type: object description: The details to add store credits to the cart. x-schemaName: StoreAddStoreCreditsToCart required: - amount properties: amount: type: number title: amount description: The amount of store credits to add to the cart. StoreCalculatedPrice: type: object description: The shipping option's calculated price. x-schemaName: StoreCalculatedPrice required: - id - calculated_amount - original_amount - original_amount_with_tax - original_amount_without_tax - currency_code properties: id: type: string title: id description: The ID of the price set from which the price was selected. is_calculated_price_price_list: type: boolean title: is_calculated_price_price_list description: Whether the calculated price belongs to a price list. is_calculated_price_tax_inclusive: type: boolean title: is_calculated_price_tax_inclusive description: Whether the calculated price is tax inclusive. externalDocs: url: https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing calculated_amount: type: number title: calculated_amount description: The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer. calculated_amount_with_tax: type: number title: calculated_amount_with_tax description: The `calculated_amount` with taxes applied. calculated_amount_without_tax: type: number title: calculated_amount_without_tax description: The `calculated_amount` without taxes applied. is_original_price_price_list: type: boolean title: is_original_price_price_list description: Whether the original price belongs to a price list. is_original_price_tax_inclusive: type: boolean title: is_original_price_tax_inclusive description: Whether the original price is tax inclusive. externalDocs: url: https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing original_amount: type: number title: original_amount description: The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value. currency_code: type: string title: currency_code description: The currency code of the calculated price, or `null` if there isn't a calculated price. calculated_price: type: object description: The calculated price's details. required: - id - price_list_id - price_list_type - min_quantity - max_quantity properties: id: type: string title: id description: The ID of the price. price_list_id: type: string title: price_list_id description: The ID of the associated price list. price_list_type: type: string title: price_list_type description: The price list's type. For example, `sale` or `override`. min_quantity: type: number title: min_quantity description: The minimum quantity required in the cart for the price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity required in the cart for the price to apply. original_price: type: object description: The origin price's details. required: - id - price_list_id - price_list_type - min_quantity - max_quantity properties: id: type: string title: id description: The ID of the price. price_list_id: type: string title: price_list_id description: The ID of the associated price list. price_list_type: type: string title: price_list_type description: The price list's type. For example, `sale` or `override`. min_quantity: type: number title: min_quantity description: The minimum quantity required in the cart for the price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity required in the cart for the price to apply. original_amount_with_tax: type: number title: original_amount_with_tax description: The original amount with taxes applied. original_amount_without_tax: type: number title: original_amount_without_tax description: The original amount without taxes. StoreCart: type: object description: The cart's details. x-schemaName: StoreCart required: - promotions - currency_code - id - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: id: type: string title: id description: The cart's ID. region: $ref: '#/components/schemas/StoreRegion' region_id: type: string title: region_id description: The ID of the region the cart belongs to. customer_id: type: string title: customer_id description: The ID of the customer the cart belongs to. sales_channel_id: type: string title: sales_channel_id description: The ID of the cart's sales channel. Only products that belong to the same sales channel can be added to the cart. The created order will be associated with the same sales channel. email: type: string title: email description: The email of the customer the cart belongs to. format: email currency_code: type: string title: currency_code description: The cart's currency code. example: usd shipping_address: $ref: '#/components/schemas/StoreCartAddress' billing_address: $ref: '#/components/schemas/StoreCartAddress' items: type: array description: The cart's items. items: $ref: '#/components/schemas/StoreCartLineItem' shipping_methods: type: array description: The cart's shipping methods. items: $ref: '#/components/schemas/StoreCartShippingMethod' payment_collection: $ref: '#/components/schemas/StorePaymentCollection' metadata: type: object description: The cart's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the cart was created. updated_at: type: string format: date-time title: updated_at description: The date the cart was updated. original_item_total: type: number title: original_item_total description: The cart items' total including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The cart items' total excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The cart items' tax total excluding promotions. item_total: type: number title: item_total description: The cart items' total including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The cart items' total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The cart items' tax total including promotions. original_total: type: number title: original_total description: The cart's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The cart's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The cart's tax total excluding promotions. total: type: number title: total description: The cart's total including taxes and promotions. subtotal: type: number title: subtotal description: The cart's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The cart's tax total including promotions. discount_total: type: number title: discount_total description: The cart's discount total. discount_tax_total: type: number title: discount_tax_total description: The tax total applied on the discounted amount. gift_card_total: type: number title: gift_card_total description: The total gift card amount applied on the cart. gift_card_tax_total: type: number title: gift_card_tax_total description: The total taxes applied on the gift card amount. shipping_total: type: number title: shipping_total description: The cart's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The cart's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The total taxes applied on the cart's shipping amount. original_shipping_total: type: number title: original_shipping_total description: The cart's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The cart's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The total taxes applied on the cart's shipping amount. promotions: type: array description: The cart's promotions. items: $ref: '#/components/schemas/StoreCartPromotion' StoreCartAddPromotion: type: object description: The promotion's details. required: - promo_codes properties: promo_codes: type: array description: Promotion codes to add to the cart. items: type: string title: promo_codes description: A promotion code. x-schemaName: StoreCartAddPromotion StoreCartAddress: type: object description: The address's details. x-schemaName: StoreCartAddress required: - id - created_at - updated_at properties: id: type: string title: id description: The address's ID. customer_id: type: string title: customer_id description: The ID of the customer the address belongs to. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string title: created_at description: The date the address was created. format: date-time updated_at: type: string title: updated_at description: The date the address was updated. format: date-time StoreCartLineItem: type: object description: The item's details. x-schemaName: StoreCartLineItem required: - cart - title - id - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - cart_id properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail URL. quantity: type: number title: quantity description: The item's quantity. product: $ref: '#/components/schemas/StoreProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The ID of the associated product's type. product_collection: type: string title: product_collection description: The ID of the associated product's collection. product_handle: type: string title: product_handle description: The item's product handle. variant: $ref: '#/components/schemas/StoreProductVariant' variant_id: type: string title: variant_id description: The ID of the associated product variant. variant_sku: type: string title: variant_sku description: The item's variant SKU. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The associated variant's value for the product's options. example: Color: Red requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item's price includes taxes. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The price of a single quantity of the item. tax_lines: type: array description: The item's tax lines. items: allOf: - type: object description: The tax line's details. x-schemaName: BaseLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object title: item description: The details of the item that the tax line belongs to. item_id: type: string title: item_id description: The ID of the line item this tax line belongs to. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The charged rate. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate the tax line. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. - type: object description: The tax line's details. required: - item properties: item: type: object title: item description: The details of the item that the tax line belongs to. description: The tax line's details adjustments: type: array description: The item's adjustments. items: allOf: - type: object description: The adjustment's details. x-schemaName: BaseLineItemAdjustment required: - item - item_id - id - amount - cart_id - created_at - updated_at properties: item: type: object title: item description: The details of the item that the adjustment belongs to. item_id: type: string title: item_id description: The ID of the item that the adjustment belongs to. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. cart_id: type: string title: cart_id description: The ID of the associated cart. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the applied promotion. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. - type: object description: The adjustment's details. required: - item properties: item: type: object title: item description: The details of the item that the adjustment belongs to. description: The adjustment's details. cart: type: object cart_id: type: string title: cart_id description: The ID of the cart that the line item belongs to. metadata: type: object description: The item's metadata, can hold custom key-value pairs. created_at: type: string title: created_at description: The date the item was created. format: date-time updated_at: type: string title: updated_at description: The date the item was updated. format: date-time deleted_at: type: string title: deleted_at description: The date the item was deleted. format: date-time original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the item excluding promotions. item_total: type: number title: original_tax_total description: The item's total including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The item's total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes of the item including promotions. total: type: number title: total description: The item's total including taxes and promotions. subtotal: type: number title: subtotal description: The item's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The total taxes of the item including promotions. discount_total: type: number title: discount_total description: The total discount of the item. discount_tax_total: type: number title: discount_tax_total description: The total taxes applied on the discounted amount. StoreCartPromotion: type: object description: The promotion's promotions. x-schemaName: StoreCartPromotion required: - id properties: id: type: string title: id description: The promotion's ID. code: type: string title: code description: The promotion's code. is_automatic: type: boolean title: is_automatic description: The promotion's is automatic. application_method: type: object description: The promotion's application method. required: - value - type - currency_code properties: value: type: string title: value description: The application method's value. type: type: string description: The application method's type. enum: - fixed - percentage currency_code: type: string title: currency_code description: The application method's currency code. StoreCartRemovePromotion: type: object description: The promotion code to remove from the cart. x-schemaName: StoreCartRemovePromotion required: - promo_codes properties: promo_codes: type: array description: The promotion code to remove from the cart. items: type: string title: promo_codes description: A promotion code to remove from the cart. StoreCartResponse: type: object description: The cart's details. x-schemaName: StoreCartResponse required: - cart properties: cart: $ref: '#/components/schemas/StoreCart' StoreCartShippingMethod: type: object description: A cart's shipping method. x-schemaName: StoreCartShippingMethod required: - id - cart_id - name - amount - is_tax_inclusive - created_at - updated_at - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total properties: id: type: string title: id description: The shipping method's ID. cart_id: type: string title: cart_id description: The ID of the cart this shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for fulfillment handling by third-party services. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/cart/concepts#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: allOf: - type: object description: The tax line's details x-schemaName: BaseShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object title: shipping_method description: The details of the method that the tax line belongs to. shipping_method_id: type: string title: shipping_method_id description: The ID of the shipping method this tax line belongs to. total: type: number title: total description: The method's total including taxes and promotions. subtotal: type: number title: subtotal description: The method's total excluding taxes, including promotions. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The ID of the applied tax rate. code: type: string title: code description: The code that the tax rate is identified by. rate: type: number title: rate description: The charged rate. provider_id: type: string title: provider_id description: The ID of the tax provider used to calculate the tax line. created_at: type: string format: date-time title: created_at description: The date the tax line was created. updated_at: type: string format: date-time title: updated_at description: The date the tax line was updated. - type: object description: The tax line's details. required: - shipping_method properties: shipping_method: type: object title: shipping_method description: The details of the method that the tax line belongs to. description: The tax line's details. adjustments: type: array description: The shipping method's adjustments, such as applied promotions. items: allOf: - type: object description: The adjustment's details. x-schemaName: BaseShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - cart_id - created_at - updated_at properties: shipping_method: type: object title: shipping_method description: The details of the method that the adjustment belongs to. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. cart_id: type: string title: cart_id description: The ID of the associated cart. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The ID of the applied promotion. provider_id: type: string title: provider_id description: The adjustment's provider ID. created_at: type: string format: date-time title: created_at description: The date the adjustment was created. updated_at: type: string format: date-time title: updated_at description: The date the adjustment was updated. - type: object description: The adjustment's details. required: - shipping_method properties: shipping_method: type: object title: shipping_method description: The details of the method that the adjustment belongs to. description: The adjustment's details. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes applied on the shipping method's amount including promotions. total: type: number title: total description: The shipping method's total amount including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total amount excluding taxes, including promotions. tax_total: type: number title: tax_total description: The total taxes applied on the shipping method's amount including promotions. discount_total: type: number title: discount_total description: The total amount discounted. discount_tax_total: type: number title: discount_tax_total description: The taxes applied on the discounted amount. StoreCartShippingOption: type: object description: The shipping option's details. x-schemaName: StoreCartShippingOption required: - id - name - price_type - service_zone_id - shipping_profile_id - provider_id - data - type - provider - amount - prices - calculated_price - insufficient_inventory properties: id: type: string title: id description: The shipping option's ID. name: type: string title: name description: The shipping option's name. price_type: type: string description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider. enum: - flat - calculated service_zone_id: type: string title: service_zone_id description: The ID of the service zone the shipping option belongs to. provider_id: type: string title: provider_id description: The ID of the fulfillment provider handling this option. provider: type: object description: The fulfillment provider's details. required: - id - is_enabled properties: id: type: string title: id description: The provider's ID. is_enabled: type: boolean title: is_enabled description: Whether the provider is enabled. type: type: object description: The shipping option type's details. required: - id - label - description - code properties: id: type: string title: id description: The type's ID. label: type: string title: label description: The type's label. description: type: string title: description description: The type's description. code: type: string title: code description: The type's code. shipping_profile_id: type: string title: shipping_profile_id description: The ID of the associated shipping profile. amount: type: number title: amount description: The shipping option's amount. data: type: object description: The shipping option's data, useful for the provider handling fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property prices: type: array description: The shipping option's prices. items: $ref: '#/components/schemas/StorePrice' calculated_price: $ref: '#/components/schemas/StoreCalculatedPrice' insufficient_inventory: type: boolean title: insufficient_inventory description: Whether the shipping option's location doesn't have sufficient quantity for any of the cart's items. StoreCollection: type: object description: The collection's details. x-schemaName: StoreCollection required: - title - id - metadata - created_at - updated_at - handle - deleted_at properties: id: type: string title: id description: The collection's ID. title: type: string title: title description: The collection's title. handle: type: string title: handle description: The collection's handle. created_at: type: string format: date-time title: created_at description: The date the collection was created. updated_at: type: string format: date-time title: updated_at description: The date the collection was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the collection was deleted. products: type: array description: The collection's products. items: type: object metadata: type: object description: The collection's metadata, can hold custom key-value pairs. StoreCollectionResponse: type: object description: The collection's details. x-schemaName: StoreCollectionResponse required: - collection properties: collection: $ref: '#/components/schemas/StoreCollection' StoreCreateCart: type: object description: The details of the cart to be created. x-schemaName: StoreCreateCart properties: region_id: type: string title: region_id description: The ID of the cart's region. This affects the prices and currency of the cart. shipping_address: $ref: '#/components/schemas/StoreCartAddress' billing_address: $ref: '#/components/schemas/StoreCartAddress' email: type: string title: email description: The email of the cart's customer. format: email currency_code: type: string title: currency_code description: The cart's currency code. If not provided, the region's currency is used. This affects prices in the cart, as well. example: usd items: type: array description: The cart's items. items: $ref: '#/components/schemas/StoreCartLineItem' sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel that cart is created in. Only products available in that sales channel can be added to the cart. If not provided, the store's default sales channel is associated with the cart instead. metadata: type: object description: The cart's metadata, can hold custom key-value pairs. StoreCreateCustomer: type: object description: The details of the customer to create. x-schemaName: StoreCreateCustomer required: - email properties: email: type: string title: email description: The customer's email. format: email company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata, can hold custom key-value pairs. StoreCreateGiftCardInvitation: type: object description: The details to create a gift card invitation. x-schemaName: StoreCreateGiftCardInvitation required: - email properties: email: type: string title: email description: The email address to send the gift card invitation to. format: email expires_at: type: string title: expires_at description: The date the gift card invitation expires. format: date-time StoreCreatePaymentCollection: type: object description: The details of the payment collection to create. x-schemaName: StoreCreatePaymentCollection required: - cart_id properties: cart_id: type: string title: cart_id description: The ID of the cart this payment collection is for. StoreCreateReturn: type: object description: The details of the return to create. x-schemaName: StoreCreateReturn required: - order_id - items - return_shipping properties: order_id: type: string title: order_id description: The ID of the order this return is created for. items: type: array description: The return's items. items: $ref: '#/components/schemas/StoreCreateReturnItem' return_shipping: $ref: '#/components/schemas/StoreCreateReturnShipping' note: type: string title: note description: A note with more details about the return. receive_now: type: boolean title: receive_now description: Whether to mark the return as received. location_id: type: string title: location_id description: The ID of the location that items are returned to. StoreCreateReturnItem: type: object description: The details of the line item to create. x-schemaName: StoreCreateReturnItem required: - id - quantity properties: id: type: string title: id description: The item's ID. quantity: type: number title: quantity description: The item's quantity. reason_id: type: string title: reason_id description: The ID of the associated return reason. note: type: string title: note description: A note with more details about the returned item. StoreCreateReturnShipping: type: object description: The return's shipping details. x-schemaName: StoreCreateReturnShipping required: - option_id properties: option_id: type: string title: option_id description: The ID of the shipping option to use. price: type: number title: price description: The shipping's price. StoreCurrency: type: object description: The currency's details. x-schemaName: StoreCurrency required: - code - symbol - symbol_native - name - decimal_digits - rounding - created_at - updated_at - deleted_at properties: code: type: string title: code description: The currency's code. example: usd symbol: type: string title: symbol description: The currency's symbol. symbol_native: type: string title: symbol_native description: The currency's symbol native. name: type: string title: name description: The currency's name. decimal_digits: type: number title: decimal_digits description: The currency's decimal digits. rounding: type: number title: rounding description: The currency's rounding. created_at: type: string format: date-time title: created_at description: The date the currency was created. updated_at: type: string format: date-time title: updated_at description: The date the currency was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the currency was deleted. StoreCurrencyListResponse: type: object description: The paginated list of currencies. x-schemaName: StoreCurrencyListResponse required: - limit - offset - count - currencies properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total count of items. currencies: type: array description: The list of currencies. items: $ref: '#/components/schemas/StoreCurrency' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine StoreCurrencyResponse: type: object description: The currency's details. x-schemaName: StoreCurrencyResponse required: - currency properties: currency: $ref: '#/components/schemas/StoreCurrency' StoreCustomer: type: object description: The customer's details. x-schemaName: StoreCustomer required: - addresses - id - email - company_name - first_name - last_name - default_billing_address_id - default_shipping_address_id properties: id: type: string title: id description: The customer's ID. email: type: string title: email description: The customer's email. format: email default_billing_address_id: type: string title: default_billing_address_id description: The ID of the address used for billing by default. default_shipping_address_id: type: string title: default_shipping_address_id description: The ID of the address used for shipping by default. company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. addresses: type: array description: The customer's addresses. items: $ref: '#/components/schemas/StoreCustomerAddress' phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the customer was created. updated_at: type: string format: date-time title: updated_at description: The date the customer was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the customer was deleted. StoreCustomerAddress: type: object description: The customer address's details x-schemaName: StoreCustomerAddress required: - id - address_name - is_default_shipping - is_default_billing - customer_id - company - first_name - last_name - address_1 - address_2 - city - country_code - province - postal_code - phone - metadata - created_at - updated_at properties: id: type: string title: id description: The address's ID. address_name: type: string title: address_name description: The address's name. is_default_shipping: type: boolean title: is_default_shipping description: Whether the address is used for shipping by default. is_default_billing: type: boolean title: is_default_billing description: Whether the address is used for billing by default. customer_id: type: string title: customer_id description: The ID of the customer the address belongs to. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: usd province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. StoreCustomerAddressListResponse: type: object description: The paginated list of customer addresses. x-schemaName: StoreCustomerAddressListResponse required: - limit - offset - count - addresses properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. addresses: type: array description: The list of addresses. items: $ref: '#/components/schemas/StoreCustomerAddress' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine StoreCustomerAddressResponse: type: object description: The address's details. x-schemaName: StoreCustomerAddressResponse required: - address properties: address: $ref: '#/components/schemas/StoreCustomerAddress' StoreCustomerResponse: type: object description: The customer's details. x-schemaName: StoreCustomerResponse required: - customer properties: customer: $ref: '#/components/schemas/StoreCustomer' StoreDeclineOrderTransferRequest: type: object description: The details of declining the order transfer request. x-schemaName: StoreDeclineOrderTransferRequest required: - token properties: token: type: string title: token description: The order transfer's token issued when the transfer was requested. StoreGiftCard: type: object description: The gift card's details. x-schemaName: StoreGiftCard required: - customer - line_item - invitation - id - code - status - value - currency_code - customer_id - reference_id - note - reference - expires_at - created_at - updated_at properties: customer: $ref: '#/components/schemas/StoreCustomer' code: type: string title: code description: The gift card's code. status: type: string description: The gift card's status. enum: - pending - redeemed value: type: number title: value description: The gift card's amount. customer_id: type: string title: customer_id description: The ID of the customer that the gift card belongs to. id: type: string title: id description: The gift card's ID. reference_id: type: string title: reference_id description: The gift card's reference ID. reference: type: string title: reference description: The gift card's reference. created_at: type: string format: date-time title: created_at description: The date the gift card was created. updated_at: type: string format: date-time title: updated_at description: The date the gift card was updated. currency_code: type: string title: currency_code description: The gift card's currency code. example: usd note: type: string title: note description: The gift card's note. expires_at: type: string title: expires_at description: The date the gift card expires. invitation: type: object line_item: $ref: '#/components/schemas/StoreOrderLineItem' StoreGiftCardInvitation: type: object description: The gift card invitation's details. x-schemaName: StoreGiftCardInvitation required: - id - email - status - gift_card properties: id: type: string title: id description: The gift card invitation's ID. email: type: string title: email description: The gift card invitation's email. format: email status: type: string title: status description: The gift card invitation's status. gift_card: $ref: '#/components/schemas/StoreGiftCard' StoreGiftCardInvitationResponse: type: object description: The gift card invitation's details. x-schemaName: StoreGiftCardInvitationResponse required: - gift_card_invitation properties: gift_card_invitation: $ref: '#/components/schemas/StoreGiftCardInvitation' StoreGiftCardResponse: type: object description: The gift card's details. x-schemaName: StoreGiftCardResponse required: - gift_card properties: gift_card: $ref: '#/components/schemas/StoreGiftCard' StoreInitializePaymentSession: type: object description: The payment session's details. required: - provider_id properties: provider_id: type: string title: provider_id description: The ID of the payment provider the customer chose. example: pp_stripe_stripe data: type: object description: Any data necessary for the payment provider to process the payment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property description: Learn more about the payment session's data property x-schemaName: StoreInitializePaymentSession StoreOrder: type: object description: The order's details. x-schemaName: StoreOrder required: - items - shipping_methods - status - currency_code - id - region_id - customer_id - sales_channel_id - email - payment_status - fulfillment_status - summary - created_at - updated_at - original_item_total - original_item_subtotal - original_item_tax_total - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - gift_card_total - gift_card_tax_total - shipping_total - shipping_subtotal - shipping_tax_total - original_shipping_total - original_shipping_subtotal - original_shipping_tax_total properties: id: type: string title: id description: The order's ID. region_id: type: string title: region_id description: The ID of the associated region. customer_id: type: string title: customer_id description: The ID of the customer that placed the order. sales_channel_id: type: string title: sales_channel_id description: The ID of the sales channel the order was placed in. email: type: string title: email description: The email of the customer that placed the order. format: email currency_code: type: string title: currency_code description: The order's currency code. example: usd display_id: type: number title: display_id description: The order's display ID. shipping_address: $ref: '#/components/schemas/StoreOrderAddress' billing_address: $ref: '#/components/schemas/StoreOrderAddress' items: type: array description: The order's items. items: $ref: '#/components/schemas/StoreOrderLineItem' shipping_methods: type: array description: The order's shipping methods. items: $ref: '#/components/schemas/StoreOrderShippingMethod' payment_collections: type: array description: The order's payment collections. items: $ref: '#/components/schemas/StorePaymentCollection' payment_status: type: string description: The order's payment status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized - captured - partially_captured - partially_refunded - refunded - requires_action fulfillments: type: array description: The order's fulfillments. items: $ref: '#/components/schemas/StoreOrderFulfillment' fulfillment_status: type: string description: The order's fulfillment status. enum: - canceled - not_fulfilled - partially_fulfilled - fulfilled - partially_shipped - shipped - partially_delivered - delivered summary: $ref: '#/components/schemas/BaseOrderSummary' metadata: type: object description: The order's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the order was created. updated_at: type: string format: date-time title: updated_at description: The date the order was updated. original_item_total: type: number title: original_item_total description: The order items' total including taxes, excluding promotions. original_item_subtotal: type: number title: original_item_subtotal description: The order items' total excluding taxes, including promotions. original_item_tax_total: type: number title: original_item_tax_total description: The total taxes applied on the order items, excluding promotions. item_total: type: number title: item_total description: The order items' total including taxes and promotions. item_subtotal: type: number title: item_subtotal description: The order items' total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes applied on the order's items, including promotions. original_total: type: number title: original_total description: The order's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The order's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the order excluding promotions. total: type: number title: total description: The order's total including taxes and promotions. subtotal: type: number title: subtotal description: The order's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax totals of the order including promotions. discount_total: type: number title: discount_total description: The order's discount total. discount_tax_total: type: number title: discount_tax_total description: The total taxes applied on the discounted amount. gift_card_total: type: number title: gift_card_total description: The order's gift card total. gift_card_tax_total: type: number title: gift_card_tax_total description: The total taxes applied on the gift card's amount. shipping_total: type: number title: shipping_total description: The order's shipping total including taxes and promotions. shipping_subtotal: type: number title: shipping_subtotal description: The order's shipping total excluding taxes, including promotions. shipping_tax_total: type: number title: shipping_tax_total description: The total taxes of the order's shipping including promotions. original_shipping_total: type: number title: original_shipping_total description: The order's shipping total including taxes, excluding promotions. original_shipping_subtotal: type: number title: original_shipping_subtotal description: The order's shipping total excluding taxes, including promotions. original_shipping_tax_total: type: number title: original_shipping_tax_total description: The total taxes of the order's shipping excluding promotions. customer: $ref: '#/components/schemas/StoreCustomer' transactions: type: array description: The order's transactions. items: $ref: '#/components/schemas/BaseOrderTransaction' status: type: string title: status description: The order's status. StoreOrderAddress: type: object description: An order address x-schemaName: StoreOrderAddress required: - id - metadata - created_at - updated_at properties: id: type: string title: id description: The address's ID. customer_id: type: string title: customer_id description: The ID of the customer this address belongs to. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. phone: type: string title: phone description: The address's phone. company: type: string title: company description: The address's company. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: us country: $ref: '#/components/schemas/StoreRegionCountry' province: type: string title: province description: The address's lower-case ISO 3166-2 province code. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. metadata: type: object description: The address's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the address was created. updated_at: type: string format: date-time title: updated_at description: The date the address was updated. StoreOrderFulfillment: type: object description: The fulfillment's details. x-schemaName: StoreOrderFulfillment required: - id - location_id - packed_at - shipped_at - delivered_at - canceled_at - requires_shipping - data - provider_id - shipping_option_id - metadata - created_at - updated_at properties: id: type: string title: id description: The fulfillment's ID. location_id: type: string title: location_id description: The ID of the location the items are fulfilled from. packed_at: type: string title: packed_at description: The date the items were packed. format: date-time shipped_at: type: string title: shipped_at description: The date the items were shipped. format: date-time delivered_at: type: string title: delivered_at description: The date the items were delivered. format: date-time canceled_at: type: string title: canceled_at description: The date the items were canceled. format: date-time data: type: object description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property provider_id: type: string title: provider_id description: The ID of the fulfillment provider used to handle the fulfillment. shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. metadata: type: object description: The fulfillment's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the fulfillment was created. updated_at: type: string format: date-time title: updated_at description: The date the fulfillment was updated. requires_shipping: type: boolean title: requires_shipping description: The fulfillment's requires shipping. StoreOrderLineItem: type: object description: The item's details. x-schemaName: StoreOrderLineItem required: - detail - title - id - metadata - created_at - updated_at - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type_id - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The URL of the item's thumbnail. variant: $ref: '#/components/schemas/StoreProductVariant' variant_id: type: string title: variant_id description: The ID of the associated variant. product: $ref: '#/components/schemas/StoreProduct' product_id: type: string title: product_id description: The ID of the associated product. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The ID of the collection the item's product belongs to. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant SKU. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The values of the item variant's options. example: Color: Blue requires_shipping: type: boolean title: requires_shipping description: Whether the item requires shipping. is_discountable: type: boolean title: is_discountable description: Whether the item is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the item is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The original price of the item before a promotion or sale. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem required: - id - title - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - metadata - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. variant: type: object description: The item's variant. x-schemaName: BaseProductVariant required: - id - title - sku - barcode - ean - upc - allow_backorder - manage_inventory - hs_code - origin_country - mid_code - material - weight - length - height - width - options - created_at - updated_at - deleted_at properties: id: type: string title: id description: The variant's ID. title: type: string title: title description: The variant's title. sku: type: string title: sku description: The variant's sku. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's ean. upc: type: string title: upc description: The variant's upc. allow_backorder: type: boolean title: allow_backorder description: The variant's allow backorder. manage_inventory: type: boolean title: manage_inventory description: The variant's manage inventory. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. hs_code: type: string title: hs_code description: The variant's hs code. origin_country: type: string title: origin_country description: The variant's origin country. mid_code: type: string title: mid_code description: The variant's mid code. material: type: string title: material description: The variant's material. weight: type: number title: weight description: The variant's weight. length: type: number title: length description: The variant's length. height: type: number title: height description: The variant's height. width: type: number title: width description: The variant's width. variant_rank: type: number title: variant_rank description: The variant's variant rank. options: type: array description: The variant's options. items: type: object description: The option's options. x-schemaName: BaseProductOptionValue product: type: object description: The variant's product. x-schemaName: BaseProduct product_id: type: string title: product_id description: The variant's product id. calculated_price: type: object description: The variant's calculated price. x-schemaName: BaseCalculatedPriceSet created_at: type: string format: date-time title: created_at description: The variant's created at. updated_at: type: string format: date-time title: updated_at description: The variant's updated at. deleted_at: type: string format: date-time title: deleted_at description: The variant's deleted at. metadata: type: object description: The variant's metadata. variant_id: type: string title: variant_id description: The item's variant id. product: type: object description: The item's product. x-schemaName: BaseProduct required: - id - title - handle - subtitle - description - is_giftcard - status - thumbnail - width - weight - length - height - origin_country - hs_code - mid_code - material - collection_id - type_id - variants - options - images - discountable - external_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The product's ID. title: type: string title: title description: The product's title. handle: type: string title: handle description: The product's handle. subtitle: type: string title: subtitle description: The product's subtitle. description: type: string title: description description: The product's description. is_giftcard: type: boolean title: is_giftcard description: The product's is giftcard. status: type: string description: The product's status. enum: - draft - proposed - published - rejected thumbnail: type: string title: thumbnail description: The product's thumbnail. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. length: type: number title: length description: The product's length. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's hs code. mid_code: type: string title: mid_code description: The product's mid code. material: type: string title: material description: The product's material. collection: type: object description: The product's collection. x-schemaName: BaseCollection collection_id: type: string title: collection_id description: The product's collection id. categories: type: array description: The product's categories. items: type: object description: The category's categories. x-schemaName: BaseProductCategory type: type: object description: The product's type. x-schemaName: BaseProduct type_id: type: string title: type_id description: The product's type id. tags: type: array description: The product's tags. items: type: object description: The tag's tags. x-schemaName: BaseProductTag variants: type: array description: The product's variants. items: type: object description: The variant's variants. x-schemaName: BaseProductVariant options: type: array description: The product's options. items: type: object description: The option's options. x-schemaName: BaseProductOption images: type: array description: The product's images. items: type: object description: The image's images. x-schemaName: BaseProductImage discountable: type: boolean title: discountable description: The product's discountable. external_id: type: string title: external_id description: The product's external id. created_at: type: string format: date-time title: created_at description: The product's created at. updated_at: type: string format: date-time title: updated_at description: The product's updated at. deleted_at: type: string format: date-time title: deleted_at description: The product's deleted at. metadata: type: object description: The product's metadata. product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. adjustments: type: array description: The item's adjustments. items: type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. detail: type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The detail's ID. item_id: type: string title: item_id description: The detail's item id. item: type: object description: The detail's item. x-schemaName: BaseOrderLineItem quantity: type: number title: quantity description: The detail's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The detail's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The detail's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The detail's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The detail's return requested quantity. return_received_quantity: type: number title: return_received_quantity description: The detail's return received quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The detail's return dismissed quantity. written_off_quantity: type: number title: written_off_quantity description: The detail's written off quantity. metadata: type: object description: The detail's metadata. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. metadata: type: object description: The item's metadata. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. refundable_total: type: number title: refundable_total description: The item's refundable total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The item's refundable total per unit. item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - item properties: item: type: object description: The tax line's item. x-schemaName: StoreOrderLineItem required: - detail - title - id - metadata - created_at - updated_at - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - refundable_total - refundable_total_per_unit properties: variant: type: object description: The item's variant. x-schemaName: StoreProductVariant required: - options - length - title - id - created_at - updated_at - width - weight - height - origin_country - hs_code - mid_code - material - deleted_at - sku - barcode - ean - upc - allow_backorder - manage_inventory properties: options: type: array description: The variant's options. items: type: object description: The option's options. x-schemaName: StoreProductOptionValue product: type: object description: The variant's product. x-schemaName: StoreProduct length: type: number title: length description: The variant's length. title: type: string title: title description: The variant's title. id: type: string title: id description: The variant's ID. metadata: type: object description: The variant's metadata. created_at: type: string format: date-time title: created_at description: The variant's created at. updated_at: type: string format: date-time title: updated_at description: The variant's updated at. product_id: type: string title: product_id description: The variant's product id. width: type: number title: width description: The variant's width. weight: type: number title: weight description: The variant's weight. height: type: number title: height description: The variant's height. origin_country: type: string title: origin_country description: The variant's origin country. hs_code: type: string title: hs_code description: The variant's hs code. mid_code: type: string title: mid_code description: The variant's mid code. material: type: string title: material description: The variant's material. deleted_at: type: string format: date-time title: deleted_at description: The variant's deleted at. sku: type: string title: sku description: The variant's sku. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's ean. upc: type: string title: upc description: The variant's upc. allow_backorder: type: boolean title: allow_backorder description: The variant's allow backorder. manage_inventory: type: boolean title: manage_inventory description: The variant's manage inventory. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. variant_rank: type: number title: variant_rank description: The variant's variant rank. calculated_price: type: object description: The variant's calculated price. x-schemaName: BaseCalculatedPriceSet product: type: object description: The item's product. x-schemaName: StoreProduct required: - variants - options - images - length - title - status - description - id - created_at - updated_at - subtitle - thumbnail - handle - is_giftcard - width - weight - height - origin_country - hs_code - mid_code - material - collection_id - type_id - discountable - external_id - deleted_at properties: collection: type: object description: The product's collection. x-schemaName: StoreCollection categories: type: array description: The product's categories. items: type: object description: The category's categories. x-schemaName: StoreProductCategory variants: type: array description: The product's variants. items: type: object description: The variant's variants. x-schemaName: StoreProductVariant type: type: object description: The product's type. x-schemaName: StoreProduct tags: type: array description: The product's tags. items: type: object description: The tag's tags. x-schemaName: StoreProductTag options: type: array description: The product's options. items: type: object description: The option's options. x-schemaName: StoreProductOption images: type: array description: The product's images. items: type: object description: The image's images. x-schemaName: StoreProductImage length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata. created_at: type: string format: date-time title: created_at description: The product's created at. updated_at: type: string format: date-time title: updated_at description: The product's updated at. subtitle: type: string title: subtitle description: The product's subtitle. thumbnail: type: string title: thumbnail description: The product's thumbnail. handle: type: string title: handle description: The product's handle. is_giftcard: type: boolean title: is_giftcard description: The product's is giftcard. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's hs code. mid_code: type: string title: mid_code description: The product's mid code. material: type: string title: material description: The product's material. collection_id: type: string title: collection_id description: The product's collection id. type_id: type: string title: type_id description: The product's type id. discountable: type: boolean title: discountable description: The product's discountable. external_id: type: string title: external_id description: The product's external id. deleted_at: type: string format: date-time title: deleted_at description: The product's deleted at. tax_lines: type: array description: The item's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - item properties: item: type: object description: The tax line's item. x-schemaName: StoreOrderLineItem adjustments: type: array description: The item's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - item properties: item: type: object description: The adjustment's item. x-schemaName: StoreOrderLineItem detail: allOf: - type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The detail's ID. item_id: type: string title: item_id description: The detail's item id. item: type: object description: The detail's item. x-schemaName: BaseOrderLineItem quantity: type: number title: quantity description: The detail's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The detail's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The detail's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The detail's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The detail's return requested quantity. return_received_quantity: type: number title: return_received_quantity description: The detail's return received quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The detail's return dismissed quantity. written_off_quantity: type: number title: written_off_quantity description: The detail's written off quantity. metadata: type: object description: The detail's metadata. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The item's detail. required: - item properties: item: type: object description: The detail's item. x-schemaName: StoreOrderLineItem title: type: string title: title description: The item's title. id: type: string title: id description: The item's ID. metadata: type: object description: The item's metadata. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. variant_id: type: string title: variant_id description: The item's variant id. product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. refundable_total: type: number title: refundable_total description: The item's refundable total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The item's refundable total per unit. description: The tax line's tax lines. adjustments: type: array description: The item's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem required: - id - title - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - detail - created_at - updated_at - metadata - original_total - original_subtotal - original_tax_total - item_total - item_subtotal - item_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - refundable_total - refundable_total_per_unit properties: id: type: string title: id description: The item's ID. title: type: string title: title description: The item's title. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. variant: type: object description: The item's variant. x-schemaName: BaseProductVariant required: - id - title - sku - barcode - ean - upc - allow_backorder - manage_inventory - hs_code - origin_country - mid_code - material - weight - length - height - width - options - created_at - updated_at - deleted_at properties: id: type: string title: id description: The variant's ID. title: type: string title: title description: The variant's title. sku: type: string title: sku description: The variant's sku. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's ean. upc: type: string title: upc description: The variant's upc. allow_backorder: type: boolean title: allow_backorder description: The variant's allow backorder. manage_inventory: type: boolean title: manage_inventory description: The variant's manage inventory. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. hs_code: type: string title: hs_code description: The variant's hs code. origin_country: type: string title: origin_country description: The variant's origin country. mid_code: type: string title: mid_code description: The variant's mid code. material: type: string title: material description: The variant's material. weight: type: number title: weight description: The variant's weight. length: type: number title: length description: The variant's length. height: type: number title: height description: The variant's height. width: type: number title: width description: The variant's width. variant_rank: type: number title: variant_rank description: The variant's variant rank. options: type: array description: The variant's options. items: type: object description: The option's options. x-schemaName: BaseProductOptionValue product: type: object description: The variant's product. x-schemaName: BaseProduct product_id: type: string title: product_id description: The variant's product id. calculated_price: type: object description: The variant's calculated price. x-schemaName: BaseCalculatedPriceSet created_at: type: string format: date-time title: created_at description: The variant's created at. updated_at: type: string format: date-time title: updated_at description: The variant's updated at. deleted_at: type: string format: date-time title: deleted_at description: The variant's deleted at. metadata: type: object description: The variant's metadata. variant_id: type: string title: variant_id description: The item's variant id. product: type: object description: The item's product. x-schemaName: BaseProduct required: - id - title - handle - subtitle - description - is_giftcard - status - thumbnail - width - weight - length - height - origin_country - hs_code - mid_code - material - collection_id - type_id - variants - options - images - discountable - external_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The product's ID. title: type: string title: title description: The product's title. handle: type: string title: handle description: The product's handle. subtitle: type: string title: subtitle description: The product's subtitle. description: type: string title: description description: The product's description. is_giftcard: type: boolean title: is_giftcard description: The product's is giftcard. status: type: string description: The product's status. enum: - draft - proposed - published - rejected thumbnail: type: string title: thumbnail description: The product's thumbnail. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. length: type: number title: length description: The product's length. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's hs code. mid_code: type: string title: mid_code description: The product's mid code. material: type: string title: material description: The product's material. collection: type: object description: The product's collection. x-schemaName: BaseCollection collection_id: type: string title: collection_id description: The product's collection id. categories: type: array description: The product's categories. items: type: object description: The category's categories. x-schemaName: BaseProductCategory type: type: object description: The product's type. x-schemaName: BaseProduct type_id: type: string title: type_id description: The product's type id. tags: type: array description: The product's tags. items: type: object description: The tag's tags. x-schemaName: BaseProductTag variants: type: array description: The product's variants. items: type: object description: The variant's variants. x-schemaName: BaseProductVariant options: type: array description: The product's options. items: type: object description: The option's options. x-schemaName: BaseProductOption images: type: array description: The product's images. items: type: object description: The image's images. x-schemaName: BaseProductImage discountable: type: boolean title: discountable description: The product's discountable. external_id: type: string title: external_id description: The product's external id. created_at: type: string format: date-time title: created_at description: The product's created at. updated_at: type: string format: date-time title: updated_at description: The product's updated at. deleted_at: type: string format: date-time title: deleted_at description: The product's deleted at. metadata: type: object description: The product's metadata. product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. tax_lines: type: array description: The item's tax lines. items: type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. adjustments: type: array description: The item's adjustments. items: type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. detail: type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The detail's ID. item_id: type: string title: item_id description: The detail's item id. item: type: object description: The detail's item. x-schemaName: BaseOrderLineItem quantity: type: number title: quantity description: The detail's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The detail's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The detail's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The detail's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The detail's return requested quantity. return_received_quantity: type: number title: return_received_quantity description: The detail's return received quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The detail's return dismissed quantity. written_off_quantity: type: number title: written_off_quantity description: The detail's written off quantity. metadata: type: object description: The detail's metadata. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. metadata: type: object description: The item's metadata. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. refundable_total: type: number title: refundable_total description: The item's refundable total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The item's refundable total per unit. item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - item properties: item: type: object description: The adjustment's item. x-schemaName: StoreOrderLineItem required: - detail - title - id - metadata - created_at - updated_at - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - refundable_total - refundable_total_per_unit properties: variant: type: object description: The item's variant. x-schemaName: StoreProductVariant required: - options - length - title - id - created_at - updated_at - width - weight - height - origin_country - hs_code - mid_code - material - deleted_at - sku - barcode - ean - upc - allow_backorder - manage_inventory properties: options: type: array description: The variant's options. items: type: object description: The option's options. x-schemaName: StoreProductOptionValue product: type: object description: The variant's product. x-schemaName: StoreProduct length: type: number title: length description: The variant's length. title: type: string title: title description: The variant's title. id: type: string title: id description: The variant's ID. metadata: type: object description: The variant's metadata. created_at: type: string format: date-time title: created_at description: The variant's created at. updated_at: type: string format: date-time title: updated_at description: The variant's updated at. product_id: type: string title: product_id description: The variant's product id. width: type: number title: width description: The variant's width. weight: type: number title: weight description: The variant's weight. height: type: number title: height description: The variant's height. origin_country: type: string title: origin_country description: The variant's origin country. hs_code: type: string title: hs_code description: The variant's hs code. mid_code: type: string title: mid_code description: The variant's mid code. material: type: string title: material description: The variant's material. deleted_at: type: string format: date-time title: deleted_at description: The variant's deleted at. sku: type: string title: sku description: The variant's sku. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's ean. upc: type: string title: upc description: The variant's upc. allow_backorder: type: boolean title: allow_backorder description: The variant's allow backorder. manage_inventory: type: boolean title: manage_inventory description: The variant's manage inventory. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. variant_rank: type: number title: variant_rank description: The variant's variant rank. calculated_price: type: object description: The variant's calculated price. x-schemaName: BaseCalculatedPriceSet product: type: object description: The item's product. x-schemaName: StoreProduct required: - variants - options - images - length - title - status - description - id - created_at - updated_at - subtitle - thumbnail - handle - is_giftcard - width - weight - height - origin_country - hs_code - mid_code - material - collection_id - type_id - discountable - external_id - deleted_at properties: collection: type: object description: The product's collection. x-schemaName: StoreCollection categories: type: array description: The product's categories. items: type: object description: The category's categories. x-schemaName: StoreProductCategory variants: type: array description: The product's variants. items: type: object description: The variant's variants. x-schemaName: StoreProductVariant type: type: object description: The product's type. x-schemaName: StoreProduct tags: type: array description: The product's tags. items: type: object description: The tag's tags. x-schemaName: StoreProductTag options: type: array description: The product's options. items: type: object description: The option's options. x-schemaName: StoreProductOption images: type: array description: The product's images. items: type: object description: The image's images. x-schemaName: StoreProductImage length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata. created_at: type: string format: date-time title: created_at description: The product's created at. updated_at: type: string format: date-time title: updated_at description: The product's updated at. subtitle: type: string title: subtitle description: The product's subtitle. thumbnail: type: string title: thumbnail description: The product's thumbnail. handle: type: string title: handle description: The product's handle. is_giftcard: type: boolean title: is_giftcard description: The product's is giftcard. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's hs code. mid_code: type: string title: mid_code description: The product's mid code. material: type: string title: material description: The product's material. collection_id: type: string title: collection_id description: The product's collection id. type_id: type: string title: type_id description: The product's type id. discountable: type: boolean title: discountable description: The product's discountable. external_id: type: string title: external_id description: The product's external id. deleted_at: type: string format: date-time title: deleted_at description: The product's deleted at. tax_lines: type: array description: The item's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - item properties: item: type: object description: The tax line's item. x-schemaName: StoreOrderLineItem adjustments: type: array description: The item's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - item properties: item: type: object description: The adjustment's item. x-schemaName: StoreOrderLineItem detail: allOf: - type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The detail's ID. item_id: type: string title: item_id description: The detail's item id. item: type: object description: The detail's item. x-schemaName: BaseOrderLineItem quantity: type: number title: quantity description: The detail's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The detail's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The detail's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The detail's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The detail's return requested quantity. return_received_quantity: type: number title: return_received_quantity description: The detail's return received quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The detail's return dismissed quantity. written_off_quantity: type: number title: written_off_quantity description: The detail's written off quantity. metadata: type: object description: The detail's metadata. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The item's detail. required: - item properties: item: type: object description: The detail's item. x-schemaName: StoreOrderLineItem title: type: string title: title description: The item's title. id: type: string title: id description: The item's ID. metadata: type: object description: The item's metadata. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. variant_id: type: string title: variant_id description: The item's variant id. product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. refundable_total: type: number title: refundable_total description: The item's refundable total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The item's refundable total per unit. description: The adjustment's details. detail: allOf: - $ref: '#/components/schemas/BaseOrderItemDetail' - type: object description: The item's detail. required: - item properties: item: type: object description: The detail's item. x-schemaName: StoreOrderLineItem required: - detail - title - id - metadata - created_at - updated_at - item_total - item_subtotal - item_tax_total - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - subtitle - thumbnail - variant_id - product_id - product_title - product_description - product_subtitle - product_type - product_collection - product_handle - variant_sku - variant_barcode - variant_title - variant_option_values - requires_shipping - is_discountable - is_tax_inclusive - unit_price - quantity - refundable_total - refundable_total_per_unit properties: variant: type: object description: The item's variant. x-schemaName: StoreProductVariant required: - options - length - title - id - created_at - updated_at - width - weight - height - origin_country - hs_code - mid_code - material - deleted_at - sku - barcode - ean - upc - allow_backorder - manage_inventory properties: options: type: array description: The variant's options. items: type: object description: The option's options. x-schemaName: StoreProductOptionValue product: type: object description: The variant's product. x-schemaName: StoreProduct length: type: number title: length description: The variant's length. title: type: string title: title description: The variant's title. id: type: string title: id description: The variant's ID. metadata: type: object description: The variant's metadata. created_at: type: string format: date-time title: created_at description: The variant's created at. updated_at: type: string format: date-time title: updated_at description: The variant's updated at. product_id: type: string title: product_id description: The variant's product id. width: type: number title: width description: The variant's width. weight: type: number title: weight description: The variant's weight. height: type: number title: height description: The variant's height. origin_country: type: string title: origin_country description: The variant's origin country. hs_code: type: string title: hs_code description: The variant's hs code. mid_code: type: string title: mid_code description: The variant's mid code. material: type: string title: material description: The variant's material. deleted_at: type: string format: date-time title: deleted_at description: The variant's deleted at. sku: type: string title: sku description: The variant's sku. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's ean. upc: type: string title: upc description: The variant's upc. allow_backorder: type: boolean title: allow_backorder description: The variant's allow backorder. manage_inventory: type: boolean title: manage_inventory description: The variant's manage inventory. inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. variant_rank: type: number title: variant_rank description: The variant's variant rank. calculated_price: type: object description: The variant's calculated price. x-schemaName: BaseCalculatedPriceSet product: type: object description: The item's product. x-schemaName: StoreProduct required: - variants - options - images - length - title - status - description - id - created_at - updated_at - subtitle - thumbnail - handle - is_giftcard - width - weight - height - origin_country - hs_code - mid_code - material - collection_id - type_id - discountable - external_id - deleted_at properties: collection: type: object description: The product's collection. x-schemaName: StoreCollection categories: type: array description: The product's categories. items: type: object description: The category's categories. x-schemaName: StoreProductCategory variants: type: array description: The product's variants. items: type: object description: The variant's variants. x-schemaName: StoreProductVariant type: type: object description: The product's type. x-schemaName: StoreProduct tags: type: array description: The product's tags. items: type: object description: The tag's tags. x-schemaName: StoreProductTag options: type: array description: The product's options. items: type: object description: The option's options. x-schemaName: StoreProductOption images: type: array description: The product's images. items: type: object description: The image's images. x-schemaName: StoreProductImage length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata. created_at: type: string format: date-time title: created_at description: The product's created at. updated_at: type: string format: date-time title: updated_at description: The product's updated at. subtitle: type: string title: subtitle description: The product's subtitle. thumbnail: type: string title: thumbnail description: The product's thumbnail. handle: type: string title: handle description: The product's handle. is_giftcard: type: boolean title: is_giftcard description: The product's is giftcard. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's hs code. mid_code: type: string title: mid_code description: The product's mid code. material: type: string title: material description: The product's material. collection_id: type: string title: collection_id description: The product's collection id. type_id: type: string title: type_id description: The product's type id. discountable: type: boolean title: discountable description: The product's discountable. external_id: type: string title: external_id description: The product's external id. deleted_at: type: string format: date-time title: deleted_at description: The product's deleted at. tax_lines: type: array description: The item's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderLineItemTaxLine required: - item - item_id - total - subtotal - id - code - rate - created_at - updated_at properties: item: type: object description: The tax line's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The tax line's item id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - item properties: item: type: object description: The tax line's item. x-schemaName: StoreOrderLineItem adjustments: type: array description: The item's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderLineItemAdjustment required: - item - item_id - id - amount - order_id - created_at - updated_at properties: item: type: object description: The adjustment's item. x-schemaName: BaseOrderLineItem item_id: type: string title: item_id description: The adjustment's item id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - item properties: item: type: object description: The adjustment's item. x-schemaName: StoreOrderLineItem detail: allOf: - type: object description: The item's detail. x-schemaName: BaseOrderItemDetail required: - id - item_id - item - quantity - fulfilled_quantity - delivered_quantity - shipped_quantity - return_requested_quantity - return_received_quantity - return_dismissed_quantity - written_off_quantity - metadata - created_at - updated_at properties: id: type: string title: id description: The detail's ID. item_id: type: string title: item_id description: The detail's item id. item: type: object description: The detail's item. x-schemaName: BaseOrderLineItem quantity: type: number title: quantity description: The detail's quantity. fulfilled_quantity: type: number title: fulfilled_quantity description: The detail's fulfilled quantity. delivered_quantity: type: number title: delivered_quantity description: The detail's delivered quantity. shipped_quantity: type: number title: shipped_quantity description: The detail's shipped quantity. return_requested_quantity: type: number title: return_requested_quantity description: The detail's return requested quantity. return_received_quantity: type: number title: return_received_quantity description: The detail's return received quantity. return_dismissed_quantity: type: number title: return_dismissed_quantity description: The detail's return dismissed quantity. written_off_quantity: type: number title: written_off_quantity description: The detail's written off quantity. metadata: type: object description: The detail's metadata. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The item's detail. required: - item properties: item: type: object description: The detail's item. x-schemaName: StoreOrderLineItem title: type: string title: title description: The item's title. id: type: string title: id description: The item's ID. metadata: type: object description: The item's metadata. created_at: type: string format: date-time title: created_at description: The item's created at. updated_at: type: string format: date-time title: updated_at description: The item's updated at. item_total: type: number title: item_total description: The item's item total. item_subtotal: type: number title: item_subtotal description: The item's item subtotal. item_tax_total: type: number title: item_tax_total description: The item's item tax total. original_total: type: number title: original_total description: The item's original total. original_subtotal: type: number title: original_subtotal description: The item's original subtotal. original_tax_total: type: number title: original_tax_total description: The item's original tax total. total: type: number title: total description: The item's total. subtotal: type: number title: subtotal description: The item's subtotal. tax_total: type: number title: tax_total description: The item's tax total. discount_total: type: number title: discount_total description: The item's discount total. discount_tax_total: type: number title: discount_tax_total description: The item's discount tax total. subtitle: type: string title: subtitle description: The item's subtitle. thumbnail: type: string title: thumbnail description: The item's thumbnail. variant_id: type: string title: variant_id description: The item's variant id. product_id: type: string title: product_id description: The item's product id. product_title: type: string title: product_title description: The item's product title. product_description: type: string title: product_description description: The item's product description. product_subtitle: type: string title: product_subtitle description: The item's product subtitle. product_type: type: string title: product_type description: The item's product type. product_collection: type: string title: product_collection description: The item's product collection. product_handle: type: string title: product_handle description: The item's product handle. variant_sku: type: string title: variant_sku description: The item's variant sku. variant_barcode: type: string title: variant_barcode description: The item's variant barcode. variant_title: type: string title: variant_title description: The item's variant title. variant_option_values: type: object description: The item's variant option values. requires_shipping: type: boolean title: requires_shipping description: The item's requires shipping. is_discountable: type: boolean title: is_discountable description: The item's is discountable. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The item's is tax inclusive. compare_at_unit_price: type: number title: compare_at_unit_price description: The item's compare at unit price. unit_price: type: number title: unit_price description: The item's unit price. quantity: type: number title: quantity description: The item's quantity. refundable_total: type: number title: refundable_total description: The item's refundable total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The item's refundable total per unit. description: The item's detail. created_at: type: string format: date-time title: created_at description: The date the item was created. updated_at: type: string format: date-time title: updated_at description: The date the item was updated. metadata: type: object description: The item's metadata, can hold custom key-value pairs. original_total: type: number title: original_total description: The item's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The item's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The total taxes of the item, excluding promotions. item_total: type: number title: item_total description: The total taxes of the item, including promotions. item_subtotal: type: number title: item_subtotal description: The item's total excluding taxes, including promotions. item_tax_total: type: number title: item_tax_total description: The total taxes of the item, including promotions. total: type: number title: total description: The item's total, including taxes and promotions. subtotal: type: number title: subtotal description: The item's subtotal excluding taxes, including promotions. tax_total: type: number title: tax_total description: The tax total of the item including promotions. discount_total: type: number title: discount_total description: The total discount amount of the item. discount_tax_total: type: number title: discount_tax_total description: The total taxes applied on the discounted amount. refundable_total: type: number title: refundable_total description: The total refundable amount of the item's total. refundable_total_per_unit: type: number title: refundable_total_per_unit description: The total refundable amount of the item's total for a single quantity. product_type_id: type: string title: product_type_id description: The ID of the associated product's type. StoreOrderResponse: type: object description: The order's details. x-schemaName: StoreOrderResponse required: - order properties: order: $ref: '#/components/schemas/StoreOrder' StoreOrderShippingMethod: type: object description: The shipping method's details. x-schemaName: StoreOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The ID of the order the shipping method belongs to. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the shipping method's amount includes applied taxes. shipping_option_id: type: string title: shipping_option_id description: The ID of the shipping option this method was created from. data: type: object description: The shipping method's data, useful for fulfillment provider handling its fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The shipping method's metadata, can hold custom key-value pairs. tax_lines: type: array description: The shipping method's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The shipping method's order id. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The shipping method's is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The shipping method's shipping option id. data: type: object description: The shipping method's data. metadata: type: object description: The shipping method's metadata. tax_lines: type: array description: The shipping method's tax lines. items: type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. adjustments: type: array description: The shipping method's adjustments. items: type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. original_total: type: number title: original_total description: The shipping method's original total. original_subtotal: type: number title: original_subtotal description: The shipping method's original subtotal. original_tax_total: type: number title: original_tax_total description: The shipping method's original tax total. total: type: number title: total description: The shipping method's total. detail: type: object description: The shipping method's detail. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The detail's ID. shipping_method_id: type: string title: shipping_method_id description: The detail's shipping method id. shipping_method: type: object description: The detail's shipping method. x-schemaName: BaseOrderShippingMethod claim_id: type: string title: claim_id description: The detail's claim id. exchange_id: type: string title: exchange_id description: The detail's exchange id. return_id: type: string title: return_id description: The detail's return id. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. subtotal: type: number title: subtotal description: The shipping method's subtotal. tax_total: type: number title: tax_total description: The shipping method's tax total. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The shipping method's created at. updated_at: type: string format: date-time title: updated_at description: The shipping method's updated at. shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - shipping_method properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: StoreOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: tax_lines: type: array description: The shipping method's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - shipping_method properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: StoreOrderShippingMethod adjustments: type: array description: The shipping method's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - shipping_method properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: StoreOrderShippingMethod detail: allOf: - type: object description: The shipping method's detail. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The detail's ID. shipping_method_id: type: string title: shipping_method_id description: The detail's shipping method id. shipping_method: type: object description: The detail's shipping method. x-schemaName: BaseOrderShippingMethod claim_id: type: string title: claim_id description: The detail's claim id. exchange_id: type: string title: exchange_id description: The detail's exchange id. return_id: type: string title: return_id description: The detail's return id. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The shipping method's detail. required: - shipping_method properties: shipping_method: type: object description: The detail's shipping method. x-schemaName: StoreOrderShippingMethod id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The shipping method's order id. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The shipping method's is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The shipping method's shipping option id. data: type: object description: The shipping method's data. metadata: type: object description: The shipping method's metadata. original_total: type: number title: original_total description: The shipping method's original total. original_subtotal: type: number title: original_subtotal description: The shipping method's original subtotal. original_tax_total: type: number title: original_tax_total description: The shipping method's original tax total. total: type: number title: total description: The shipping method's total. subtotal: type: number title: subtotal description: The shipping method's subtotal. tax_total: type: number title: tax_total description: The shipping method's tax total. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The shipping method's created at. updated_at: type: string format: date-time title: updated_at description: The shipping method's updated at. description: The tax line's details. adjustments: type: array description: The shipping method's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The shipping method's order id. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The shipping method's is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The shipping method's shipping option id. data: type: object description: The shipping method's data. metadata: type: object description: The shipping method's metadata. tax_lines: type: array description: The shipping method's tax lines. items: type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. adjustments: type: array description: The shipping method's adjustments. items: type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. original_total: type: number title: original_total description: The shipping method's original total. original_subtotal: type: number title: original_subtotal description: The shipping method's original subtotal. original_tax_total: type: number title: original_tax_total description: The shipping method's original tax total. total: type: number title: total description: The shipping method's total. detail: type: object description: The shipping method's detail. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The detail's ID. shipping_method_id: type: string title: shipping_method_id description: The detail's shipping method id. shipping_method: type: object description: The detail's shipping method. x-schemaName: BaseOrderShippingMethod claim_id: type: string title: claim_id description: The detail's claim id. exchange_id: type: string title: exchange_id description: The detail's exchange id. return_id: type: string title: return_id description: The detail's return id. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. subtotal: type: number title: subtotal description: The shipping method's subtotal. tax_total: type: number title: tax_total description: The shipping method's tax total. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The shipping method's created at. updated_at: type: string format: date-time title: updated_at description: The shipping method's updated at. shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - shipping_method properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: StoreOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: tax_lines: type: array description: The shipping method's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - shipping_method properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: StoreOrderShippingMethod adjustments: type: array description: The shipping method's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - shipping_method properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: StoreOrderShippingMethod detail: allOf: - type: object description: The shipping method's detail. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The detail's ID. shipping_method_id: type: string title: shipping_method_id description: The detail's shipping method id. shipping_method: type: object description: The detail's shipping method. x-schemaName: BaseOrderShippingMethod claim_id: type: string title: claim_id description: The detail's claim id. exchange_id: type: string title: exchange_id description: The detail's exchange id. return_id: type: string title: return_id description: The detail's return id. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The shipping method's detail. required: - shipping_method properties: shipping_method: type: object description: The detail's shipping method. x-schemaName: StoreOrderShippingMethod id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The shipping method's order id. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The shipping method's is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The shipping method's shipping option id. data: type: object description: The shipping method's data. metadata: type: object description: The shipping method's metadata. original_total: type: number title: original_total description: The shipping method's original total. original_subtotal: type: number title: original_subtotal description: The shipping method's original subtotal. original_tax_total: type: number title: original_tax_total description: The shipping method's original tax total. total: type: number title: total description: The shipping method's total. subtotal: type: number title: subtotal description: The shipping method's subtotal. tax_total: type: number title: tax_total description: The shipping method's tax total. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The shipping method's created at. updated_at: type: string format: date-time title: updated_at description: The shipping method's updated at. description: The adjustment's adjustments. original_total: type: number title: original_total description: The shipping method's total including taxes, excluding promotions. original_subtotal: type: number title: original_subtotal description: The shipping method's total excluding taxes, including promotions. original_tax_total: type: number title: original_tax_total description: The shipping method's total taxes excluding promotions. total: type: number title: total description: The shipping method's total including taxes and promotions. subtotal: type: number title: subtotal description: The shipping method's total excluding taxes, including promotions. tax_total: type: number title: tax_total description: The shipping method's tax total including promotions. discount_total: type: number title: discount_total description: The total discounts applied on the shipping method. discount_tax_total: type: number title: discount_tax_total description: The taxes applied on the discount amount. created_at: type: string format: date-time title: created_at description: The date the shipping method was created. updated_at: type: string format: date-time title: updated_at description: The date the shipping method was updated. detail: allOf: - $ref: '#/components/schemas/BaseOrderShippingDetail' - type: object description: The shipping method's detail. required: - shipping_method properties: shipping_method: type: object description: The detail's shipping method. x-schemaName: StoreOrderShippingMethod required: - id - order_id - name - amount - is_tax_inclusive - shipping_option_id - data - metadata - original_total - original_subtotal - original_tax_total - total - subtotal - tax_total - discount_total - discount_tax_total - created_at - updated_at properties: tax_lines: type: array description: The shipping method's tax lines. items: allOf: - type: object description: The tax line's tax lines. x-schemaName: BaseOrderShippingMethodTaxLine required: - shipping_method - shipping_method_id - total - subtotal - id - code - rate - created_at - updated_at properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The tax line's shipping method id. total: type: number title: total description: The tax line's total. subtotal: type: number title: subtotal description: The tax line's subtotal. id: type: string title: id description: The tax line's ID. description: type: string title: description description: The tax line's description. tax_rate_id: type: string title: tax_rate_id description: The tax line's tax rate id. code: type: string title: code description: The tax line's code. rate: type: number title: rate description: The tax line's rate. provider_id: type: string title: provider_id description: The tax line's provider id. created_at: type: string format: date-time title: created_at description: The tax line's created at. updated_at: type: string format: date-time title: updated_at description: The tax line's updated at. - type: object description: The tax line's tax lines. required: - shipping_method properties: shipping_method: type: object description: The tax line's shipping method. x-schemaName: StoreOrderShippingMethod adjustments: type: array description: The shipping method's adjustments. items: allOf: - type: object description: The adjustment's adjustments. x-schemaName: BaseOrderShippingMethodAdjustment required: - shipping_method - shipping_method_id - id - amount - order_id - created_at - updated_at properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: BaseOrderShippingMethod shipping_method_id: type: string title: shipping_method_id description: The adjustment's shipping method id. id: type: string title: id description: The adjustment's ID. code: type: string title: code description: The adjustment's code. amount: type: number title: amount description: The adjustment's amount. order_id: type: string title: order_id description: The adjustment's order id. description: type: string title: description description: The adjustment's description. promotion_id: type: string title: promotion_id description: The adjustment's promotion id. provider_id: type: string title: provider_id description: The adjustment's provider id. created_at: type: string format: date-time title: created_at description: The adjustment's created at. updated_at: type: string format: date-time title: updated_at description: The adjustment's updated at. - type: object description: The adjustment's adjustments. required: - shipping_method properties: shipping_method: type: object description: The adjustment's shipping method. x-schemaName: StoreOrderShippingMethod detail: allOf: - type: object description: The shipping method's detail. x-schemaName: BaseOrderShippingDetail required: - id - shipping_method_id - shipping_method - created_at - updated_at properties: id: type: string title: id description: The detail's ID. shipping_method_id: type: string title: shipping_method_id description: The detail's shipping method id. shipping_method: type: object description: The detail's shipping method. x-schemaName: BaseOrderShippingMethod claim_id: type: string title: claim_id description: The detail's claim id. exchange_id: type: string title: exchange_id description: The detail's exchange id. return_id: type: string title: return_id description: The detail's return id. created_at: type: string format: date-time title: created_at description: The detail's created at. updated_at: type: string format: date-time title: updated_at description: The detail's updated at. - type: object description: The shipping method's detail. required: - shipping_method properties: shipping_method: type: object description: The detail's shipping method. x-schemaName: StoreOrderShippingMethod id: type: string title: id description: The shipping method's ID. order_id: type: string title: order_id description: The shipping method's order id. name: type: string title: name description: The shipping method's name. description: type: string title: description description: The shipping method's description. amount: type: number title: amount description: The shipping method's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: The shipping method's is tax inclusive. shipping_option_id: type: string title: shipping_option_id description: The shipping method's shipping option id. data: type: object description: The shipping method's data. metadata: type: object description: The shipping method's metadata. original_total: type: number title: original_total description: The shipping method's original total. original_subtotal: type: number title: original_subtotal description: The shipping method's original subtotal. original_tax_total: type: number title: original_tax_total description: The shipping method's original tax total. total: type: number title: total description: The shipping method's total. subtotal: type: number title: subtotal description: The shipping method's subtotal. tax_total: type: number title: tax_total description: The shipping method's tax total. discount_total: type: number title: discount_total description: The shipping method's discount total. discount_tax_total: type: number title: discount_tax_total description: The shipping method's discount tax total. created_at: type: string format: date-time title: created_at description: The shipping method's created at. updated_at: type: string format: date-time title: updated_at description: The shipping method's updated at. description: Details of changes to a shipping method. StorePaymentCollection: type: object description: The payment collection's details. x-schemaName: StorePaymentCollection required: - payment_providers - id - currency_code - amount - status properties: id: type: string title: id description: The payment collection's ID. currency_code: type: string title: currency_code description: The payment collection's currency code. amount: type: number title: amount description: The total amount to be paid. authorized_amount: type: number title: authorized_amount description: The total authorized amount of the collection's payments. captured_amount: type: number title: captured_amount description: The total captured amount of the collection's payments. refunded_amount: type: number title: refunded_amount description: The total refunded amount of the collection's payments. completed_at: type: string format: date-time title: completed_at description: The date the payment collection was completed. created_at: type: string format: date-time title: created_at description: The date the payment collection was created. updated_at: type: string format: date-time title: updated_at description: The date the payment collection was updated. metadata: type: object description: The payment collection's metadata, can hold custom key-value pairs. status: type: string description: The payment collection's status. enum: - canceled - not_paid - awaiting - authorized - partially_authorized payment_providers: type: array description: The payment provider used to process the collection's payments and sessions. items: $ref: '#/components/schemas/StorePaymentProvider' payment_sessions: type: array description: The payment collection's payment sessions. items: $ref: '#/components/schemas/StorePaymentSession' payments: type: array description: The payment collection's payments. items: $ref: '#/components/schemas/BasePayment' StorePaymentCollectionResponse: type: object description: The payment collection's details. x-schemaName: StorePaymentCollectionResponse required: - payment_collection properties: payment_collection: $ref: '#/components/schemas/StorePaymentCollection' StorePaymentProvider: type: object description: The payment provider's details x-schemaName: StorePaymentProvider required: - id properties: id: type: string title: id description: The payment provider's ID. StorePaymentSession: type: object description: The payment session's details. x-schemaName: StorePaymentSession properties: id: type: string title: id description: The payment session's ID. amount: type: number title: amount description: The payment session's amount. currency_code: type: string title: currency_code description: The payment session's currency code. example: usd provider_id: type: string title: provider_id description: The ID of the payment provider processing this session. data: type: object description: The payment session's data, useful for the payment provider processing the payment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/payment/payment-session#data-property context: type: object description: The context around the payment, such as the customer's details. example: customer: id: cus_123 status: type: string description: The payment session's status. enum: - authorized - captured - canceled - pending - requires_more - error authorized_at: type: string title: authorized_at description: The date the payment session was authorized. format: date-time payment_collection: type: object payment: $ref: '#/components/schemas/BasePayment' required: - id - amount - currency_code - provider_id - data - status StorePrice: type: object description: The price's details. x-schemaName: StorePrice required: - id - currency_code - amount - min_quantity - max_quantity properties: id: type: string title: id description: The price's ID. currency_code: type: string title: currency_code description: The price's ISO 2 currency code. example: usd amount: type: number title: amount description: The price's amount. min_quantity: type: number title: min_quantity description: The minimum quantity required in the cart for the price to apply. max_quantity: type: number title: max_quantity description: The maximum quantity required in the cart for the price to apply. price_rules: type: array description: The price's rules. items: $ref: '#/components/schemas/StorePriceRule' StorePriceRule: type: object description: The price rule's details. x-schemaName: StorePriceRule required: - id - attribute - operator - value properties: id: type: string title: id description: The price rule's ID. attribute: type: string title: attribute description: The price rule's attribute. operator: type: string description: The price rule's operator. enum: - gt - lt - eq - lte - gte value: type: string title: value description: The price rule's value. StoreProduct: type: object description: The product's details. x-schemaName: StoreProduct required: - variants - options - images - length - title - status - description - id - created_at - updated_at - subtitle - thumbnail - handle - is_giftcard - width - weight - height - origin_country - hs_code - mid_code - material - collection_id - type_id - discountable - external_id - deleted_at properties: categories: type: array description: The product's categories. items: type: object type: $ref: '#/components/schemas/StoreProductType' length: type: number title: length description: The product's length. title: type: string title: title description: The product's title. status: type: string description: The product's status. enum: - draft - proposed - published - rejected options: type: array description: The product's options. items: $ref: '#/components/schemas/StoreProductOption' description: type: string title: description description: The product's description. id: type: string title: id description: The product's ID. metadata: type: object description: The product's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product was created. updated_at: type: string format: date-time title: updated_at description: The date the product was updated. variants: type: array description: The product's variants. items: $ref: '#/components/schemas/StoreProductVariant' handle: type: string title: handle description: The product's handle. subtitle: type: string title: subtitle description: The product's subtitle. is_giftcard: type: boolean title: is_giftcard description: Whether the product is a gift card. thumbnail: type: string title: thumbnail description: The product's thumbnail URL. width: type: number title: width description: The product's width. weight: type: number title: weight description: The product's weight. height: type: number title: height description: The product's height. origin_country: type: string title: origin_country description: The product's origin country. hs_code: type: string title: hs_code description: The product's HS code. mid_code: type: string title: mid_code description: The product's MID code. material: type: string title: material description: The product's material. collection: $ref: '#/components/schemas/StoreCollection' collection_id: type: string title: collection_id description: The ID of the collection that the product belongs to. type_id: type: string title: type_id description: The ID of the product's type. tags: type: array description: The product's tags. items: $ref: '#/components/schemas/StoreProductTag' images: type: array description: The product's images. items: $ref: '#/components/schemas/StoreProductImage' discountable: type: boolean title: discountable description: Whether the product can be discounted. external_id: type: string title: external_id description: The ID of the product in an external service or system. deleted_at: type: string format: date-time title: deleted_at description: The date the product was deleted. StoreProductCategory: type: object description: The category's details. x-schemaName: StoreProductCategory required: - id - name - description - handle - rank - parent_category_id - parent_category - category_children - created_at - updated_at - deleted_at properties: id: type: string title: id description: The category's ID. name: type: string title: name description: The category's name. description: type: string title: description description: The category's description. handle: type: string title: handle description: The category's handle. rank: type: number title: rank description: The category's rank. parent_category_id: type: string title: parent_category_id description: The ID of the category's parent. parent_category: type: object category_children: type: array description: The category's children. items: type: object metadata: type: object description: The category's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the category was created. updated_at: type: string format: date-time title: updated_at description: The date the category was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the category was deleted. products: type: array description: The category's products. items: $ref: '#/components/schemas/StoreProduct' StoreProductCategoryListResponse: type: object description: The paginated list of product categories. x-schemaName: StoreProductCategoryListResponse required: - limit - offset - count - product_categories properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items skipped before retrieving the returned items. count: type: number title: count description: The total number of items. product_categories: type: array description: The list of product categories. items: $ref: '#/components/schemas/StoreProductCategory' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine StoreProductCategoryResponse: type: object description: The product category's details. x-schemaName: StoreProductCategoryResponse required: - product_category properties: product_category: $ref: '#/components/schemas/StoreProductCategory' StoreProductImage: type: object description: The image's details. x-schemaName: StoreProductImage required: - id - url - rank properties: id: type: string title: id description: The image's ID. url: type: string title: url description: The image's URL. created_at: type: string format: date-time title: created_at description: The date the image was created. updated_at: type: string format: date-time title: updated_at description: The date the image was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the image was deleted. metadata: type: object description: The image's metadata, can hold custom key-value pairs. rank: type: number title: rank description: The image's rank among its sibling images StoreProductOption: type: object description: The product option's details. x-schemaName: StoreProductOption properties: id: type: string title: id description: The option's ID. title: type: string title: title description: The option's title. product: type: object product_id: type: string title: product_id description: The ID of the product this option belongs to. values: type: array description: The option's values. items: $ref: '#/components/schemas/StoreProductOptionValue' metadata: type: object description: The option's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product option was created. updated_at: type: string format: date-time title: updated_at description: The date the product option was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the product option was deleted. required: - title - id StoreProductOptionValue: type: object description: The product option value's details. x-schemaName: StoreProductOptionValue required: - value - id properties: id: type: string title: id description: The value's ID. value: type: string title: value description: The value. option: type: object option_id: type: string title: option_id description: The ID of the option this value belongs to. metadata: type: object description: The value's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the value was created. updated_at: type: string format: date-time title: updated_at description: The date the value was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the value was deleted. StoreProductResponse: type: object description: The product's details. x-schemaName: StoreProductResponse required: - product properties: product: $ref: '#/components/schemas/StoreProduct' StoreProductTag: type: object description: The tag's details. x-schemaName: StoreProductTag properties: id: type: string title: id description: The tag's ID. value: type: string title: value description: The tag's value. created_at: type: string format: date-time title: created_at description: The date the tag was created. updated_at: type: string format: date-time title: updated_at description: The date the tag was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the tag was deleted. metadata: type: object description: The tag's metadata, can hold custom key-value pairs. required: - id - value - created_at - updated_at StoreProductTagListResponse: type: object description: The paginated list of product tags. x-schemaName: StoreProductTagListResponse required: - limit - offset - count - product_tags properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items to skip before retrieving the returned items. count: type: number title: count description: The total number of items available. product_tags: type: array description: The list of product tags. items: $ref: '#/components/schemas/StoreProductTag' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine StoreProductTagResponse: type: object description: The product tag's details. x-schemaName: StoreProductTagResponse required: - product_tag properties: product_tag: $ref: '#/components/schemas/StoreProductTag' StoreProductType: type: object description: The product type's details. x-schemaName: StoreProductType required: - id - value - created_at - updated_at properties: id: type: string title: id description: The product type's ID. metadata: type: object description: The product type's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the product type was created. updated_at: type: string format: date-time title: updated_at description: The date the product type was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the product type was deleted. value: type: string title: value description: The type's value. StoreProductTypeListResponse: type: object description: The paginated list of product types. x-schemaName: StoreProductTypeListResponse required: - limit - offset - count - product_types properties: limit: type: number title: limit description: The maximum number of items returned. offset: type: number title: offset description: The number of items to skip before retrieving the returned items. count: type: number title: count description: The total number of items available. product_types: type: array description: The list of product types. items: $ref: '#/components/schemas/StoreProductType' estimate_count: type: number title: estimate_count description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate. x-featureFlag: index_engine StoreProductTypeResponse: type: object description: The product type's details. x-schemaName: StoreProductTypeResponse required: - product_type properties: product_type: $ref: '#/components/schemas/StoreProductType' StoreProductVariant: type: object description: The variant's details. x-schemaName: StoreProductVariant properties: options: type: array description: The variant's options. items: $ref: '#/components/schemas/StoreProductOptionValue' product: type: object length: type: number title: length description: The variant's length. title: type: string title: title description: The variant's title. metadata: type: object description: The variant's metadata, can hold custom key-value pairs. id: type: string title: id description: The variant's ID. width: type: number title: width description: The variant's width. weight: type: number title: weight description: The variant's weight. height: type: number title: height description: The variant's height. origin_country: type: string title: origin_country description: The variant's origin country. hs_code: type: string title: hs_code description: The variant's HS code. mid_code: type: string title: mid_code description: The variant's MID code. material: type: string title: material description: The variant's material. created_at: type: string format: date-time title: created_at description: The date the variant was created. updated_at: type: string format: date-time title: updated_at description: The date the variant was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the variant was deleted. product_id: type: string title: product_id description: The ID of the product this variant belongs to. sku: type: string title: sku description: The variant's SKU. barcode: type: string title: barcode description: The variant's barcode. ean: type: string title: ean description: The variant's EAN. upc: type: string title: upc description: The variant's UPC. allow_backorder: type: boolean title: allow_backorder description: Whether the variant can be ordered even if it's not in stock. manage_inventory: type: boolean title: manage_inventory description: Whether Medusa manages the variant's inventory. If disabled, the variant is always considered in stock. externalDocs: url: https://docs.medusajs.com/v2/resources/storefront-development/products/inventory description: 'Storefront guide: How to retrieve a product variant''s inventory details.' inventory_quantity: type: number title: inventory_quantity description: The variant's inventory quantity. This property is only available if you pass `+variants.inventory_quantity` in the `fields` query parameter. externalDocs: url: https://docs.medusajs.com/v2/resources/storefront-development/products/inventory description: 'Storefront guide: How to retrieve a product variant''s inventory details.' variant_rank: type: number title: variant_rank description: The variant's rank among its siblings. calculated_price: $ref: '#/components/schemas/BaseCalculatedPriceSet' required: - options - length - title - id - created_at - updated_at - width - weight - height - origin_country - hs_code - mid_code - material - deleted_at - sku - barcode - ean - upc - allow_backorder - manage_inventory StoreRegion: type: object description: The region's details. x-schemaName: StoreRegion required: - id - name - currency_code properties: id: type: string title: id description: The region's ID. name: type: string title: name description: The region's name. currency_code: type: string title: currency_code description: The region's currency code. example: usd automatic_taxes: type: boolean title: automatic_taxes description: Whether taxes are calculated automatically during checkout for carts that belong to this region. countries: type: array description: The region's countries. items: $ref: '#/components/schemas/BaseRegionCountry' payment_providers: type: array description: The region's payment providers. items: $ref: '#/components/schemas/AdminPaymentProvider' metadata: type: object description: The region's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the region was created. updated_at: type: string format: date-time title: updated_at description: The date the region was updated. StoreRegionCountry: type: object description: The country's details. x-schemaName: StoreRegionCountry required: - id properties: id: type: string title: id description: The country's ID. iso_2: type: string title: iso_2 description: The country's ISO 2. example: us iso_3: type: string title: iso_3 description: The country's ISO 3. example: usa num_code: type: string title: num_code description: The country's num code. example: 840 name: type: string title: name description: The country's name. display_name: type: string title: display_name description: The country's display name. StoreRemoveGiftCardFromCart: type: object description: The details to remove a gift card from the cart. x-schemaName: StoreRemoveGiftCardFromCart required: - code properties: code: type: string title: code description: The gift card code to remove from the cart. StoreRequestOrderTransfer: type: object description: The details of requesting the order transfer. x-schemaName: StoreRequestOrderTransfer properties: description: type: string title: description description: The transfer's description, which can be shown to the other customer receiving the request. StoreReturn: type: object description: The return's details. x-schemaName: StoreReturn required: - items - id - display_id - created_at - order_id - canceled_at - received_at properties: items: type: array description: The return's items. items: $ref: '#/components/schemas/StoreReturnItem' status: type: string description: The return's status. enum: - received - canceled - requested - open - partially_received id: type: string title: id description: The return's ID. display_id: type: number title: display_id description: The return's display ID. created_at: type: string format: date-time title: created_at description: The date the return was created. order_id: type: string title: order_id description: The ID of the order this return belongs to. location_id: type: string title: location_id description: The ID of the location the return items are being returned to. canceled_at: type: string title: canceled_at description: The date the return was canceled. exchange_id: type: string title: exchange_id description: The ID of the associated exchange. claim_id: type: string title: claim_id description: The ID of the associated claim. refund_amount: type: number title: refund_amount description: The amount to be refunded. received_at: type: string title: received_at description: The date the return items were received. StoreReturnItem: type: object description: The return item's details. x-schemaName: StoreReturnItem required: - id - quantity - received_quantity - damaged_quantity - item_id - return_id properties: id: type: string title: id description: The item's ID. quantity: type: number title: quantity description: The item's quantity. received_quantity: type: number title: received_quantity description: The item's received quantity. damaged_quantity: type: number title: damaged_quantity description: The item's damaged quantity. reason_id: type: string title: reason_id description: The ID of the item's reason. note: type: string title: note description: A note with more details on why the item is returned. item_id: type: string title: item_id description: The ID of the item in the order. return_id: type: string title: return_id description: The ID of the return this item belongs to. metadata: type: object description: The item's metadata, can hold custom key-value pairs. StoreReturnReason: type: object description: The return reason's details. x-schemaName: StoreReturnReason required: - id - value - label - created_at - updated_at properties: id: type: string title: id description: The return reason's ID. value: type: string title: value description: The return reason's value. label: type: string title: label description: The return reason's label. description: type: string title: description description: The return reason's description. metadata: type: object description: The return reason's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the return reason was created. updated_at: type: string format: date-time title: updated_at description: The date the return reason was updated. StoreReturnReasonResponse: type: object description: The return reason's details. x-schemaName: StoreReturnReasonResponse required: - return_reason properties: return_reason: $ref: '#/components/schemas/StoreReturnReason' StoreReturnResponse: type: object description: The return's details. x-schemaName: StoreReturnResponse required: - return properties: return: $ref: '#/components/schemas/StoreReturn' StoreShippingOption: type: object description: The shipping option's details. x-schemaName: StoreShippingOption required: - id - name - price_type - service_zone_id - provider_id - provider - shipping_option_type_id - type - shipping_profile_id - amount - is_tax_inclusive - data - metadata properties: id: type: string title: id description: The shipping option's ID. name: type: string title: name description: The shipping option's name. price_type: type: string description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider. enum: - flat - calculated service_zone_id: type: string title: service_zone_id description: The ID of the service zone the shipping option belongs to. provider_id: type: string title: provider_id description: The ID of the fulfillment provider handling this option. provider: $ref: '#/components/schemas/BaseFulfillmentProvider' shipping_option_type_id: type: string title: shipping_option_type_id description: The ID of the shipping option's type. type: $ref: '#/components/schemas/StoreShippingOptionType' shipping_profile_id: type: string title: shipping_profile_id description: The ID of the associated shipping profile. amount: type: number title: amount description: The shipping option's amount. is_tax_inclusive: type: boolean title: is_tax_inclusive description: Whether the amount includes taxes. data: type: object description: The shipping option's data, useful for the provider handling fulfillment. externalDocs: url: https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property metadata: type: object description: The shipping option's metadata, can hold custom key-value pairs. StoreShippingOptionListResponse: type: object description: The shipping option's details. x-schemaName: StoreShippingOptionListResponse required: - shipping_options properties: shipping_options: type: array description: The shipping option's shipping options. items: $ref: '#/components/schemas/StoreCartShippingOption' StoreShippingOptionResponse: type: object description: The shipping option's details. x-schemaName: StoreShippingOptionResponse required: - shipping_option properties: shipping_option: $ref: '#/components/schemas/StoreCartShippingOption' StoreShippingOptionType: type: object description: The shipping option type's details. x-schemaName: StoreShippingOptionType required: - id - label - description - code - shipping_option_id - created_at - updated_at - deleted_at properties: id: type: string title: id description: The type's ID. label: type: string title: label description: The type's label. description: type: string title: description description: The type's description. code: type: string title: code description: The type's code. shipping_option_id: type: string title: shipping_option_id description: The ID of the associated shipping option. created_at: type: string format: date-time title: created_at description: The date the type was created. updated_at: type: string format: date-time title: updated_at description: The date the type was updated. deleted_at: type: string format: date-time title: deleted_at description: The date the type was deleted. StoreStoreCreditAccount: type: object description: The store credit account's details. x-schemaName: StoreStoreCreditAccount required: - customer - transaction_groups - id - customer_id - currency_code - credits - debits - balance - metadata - created_at - updated_at properties: customer: $ref: '#/components/schemas/StoreCustomer' id: type: string title: id description: The store credit account's ID. customer_id: type: string title: customer_id description: The ID of the customer that the store credit account belongs to. currency_code: type: string title: currency_code description: The store credit account's currency code. example: usd credits: type: number title: credits description: The account's credits. debits: type: number title: debits description: The account's debits. balance: type: number title: balance description: The store credit account's balance. transaction_groups: type: array description: The store credit account's transaction groups. items: $ref: '#/components/schemas/StoreTransactionGroup' metadata: type: object description: The store credit account's metadata, can hold custom key-value pairs. created_at: type: string format: date-time title: created_at description: The date the store credit account was created. updated_at: type: string format: date-time title: updated_at description: The date the store credit account was updated. StoreStoreCreditAccountResponse: type: object description: The store credit account's details. x-schemaName: StoreStoreCreditAccountResponse required: - store_credit_account properties: store_credit_account: $ref: '#/components/schemas/StoreStoreCreditAccount' StoreStoreCreditAccountsResponse: type: object description: The paginated list of store credit accounts. x-schemaName: StoreStoreCreditAccountsResponse required: - limit - offset - count - store_credit_accounts properties: limit: type: number title: limit description: The maximum number of store credit accounts to return. offset: type: number title: offset description: The number of store credit accounts to skip before retrieving the results. count: type: number title: count description: The total number of store credit accounts available. store_credit_accounts: type: array description: The list of store credit accounts. items: $ref: '#/components/schemas/StoreStoreCreditAccount' StoreTransactionGroup: type: object description: The transaction group's details. required: - account - id - code - credits - debits - balance - metadata properties: id: type: string title: id description: The transaction group's ID. code: type: string title: code description: The transaction group's code. credits: type: number title: credits description: The transaction group's credits. debits: type: number title: debits description: The transaction group's debits. balance: type: number title: balance description: The transaction group's balance. account: type: object metadata: type: object description: The transaction group's metadata, can hold custom key-value pairs. x-schemaName: StoreTransactionGroup StoreUpdateCartLineItem: type: object description: The details to update in the line item. x-schemaName: StoreUpdateCartLineItem required: - quantity properties: quantity: type: number title: quantity description: The item's quantity. metadata: type: object description: The item's metadata, can hold custom key-value pairs. StoreUpdateCustomer: type: object description: The details to update in the customer. x-schemaName: StoreUpdateCustomer properties: company_name: type: string title: company_name description: The customer's company name. first_name: type: string title: first_name description: The customer's first name. last_name: type: string title: last_name description: The customer's last name. phone: type: string title: phone description: The customer's phone. metadata: type: object description: The customer's metadata, can hold custom key-value pairs. UpdateAddress: type: object description: The details to update in the address. x-schemaName: UpdateAddress required: - id properties: id: type: string title: id description: The ID of an existing address to update. customer_id: type: string title: customer_id description: The ID of the customer that this address belongs to. company: type: string title: company description: The address's company. first_name: type: string title: first_name description: The address's first name. last_name: type: string title: last_name description: The address's last name. address_1: type: string title: address_1 description: The address's first line. address_2: type: string title: address_2 description: The address's second line. city: type: string title: city description: The address's city. country_code: type: string title: country_code description: The address's country code. example: usd province: type: string title: province description: The address's ISO 3166-2 province code. Must be lower-case. example: us-ca externalDocs: url: https://en.wikipedia.org/wiki/ISO_3166-2 description: Learn more about ISO 3166-2 postal_code: type: string title: postal_code description: The address's postal code. phone: type: string title: phone description: The address's phone. metadata: type: object description: The address's metadata, can hold custom key-value pairs. UpdateCartData: type: object description: The details to update in a cart. x-schemaName: UpdateCartData properties: region_id: type: string title: region_id description: The ID of the associated region. This can affect the prices and currency code of the cart. customer_id: type: string title: customer_id description: The ID of the customer that the cart belongs to. sales_channel_id: type: string title: sales_channel_id description: The ID of the associated sales channel. Only products available in this channel can be added to the cart. email: type: string title: email description: The email of the customer that the cart belongs to. format: email currency_code: type: string title: currency_code description: The cart's currency code. example: usd shipping_address_id: type: string title: shipping_address_id description: The ID of the cart's shipping address. billing_address_id: type: string title: billing_address_id description: The ID of the cart's billing address. billing_address: oneOf: - $ref: '#/components/schemas/CreateAddress' - $ref: '#/components/schemas/UpdateAddress' shipping_address: oneOf: - $ref: '#/components/schemas/CreateAddress' - $ref: '#/components/schemas/UpdateAddress' metadata: type: object description: The cart's metadata, ca hold custom key-value pairs. WorkflowExecutionContext: type: object description: The workflow execution's context. x-schemaName: WorkflowExecutionContext required: - compensate - errors properties: data: type: object description: The context's data. properties: invoke: type: object description: The step's invokation details. required: - output additionalProperties: type: object properties: output: type: object description: The invokation's details. required: - output - compensateInput properties: output: description: the step's output compensateInput: description: the compensation function's input. payload: description: the payload of the transaction. required: - invoke compensate: type: object description: The context's compensate. errors: type: array description: The context's errors. items: type: object description: The error's details. properties: error: type: object description: The error's details. action: type: string title: action description: The error's action. handlerType: type: string title: handlerType description: The error's handler type. required: - error - action - handlerType responses: default_error: description: Default Error content: application/json: schema: $ref: '#/components/schemas/Error' example: code: unknown_error message: An unknown error occurred. type: unknown_error invalid_state_error: description: Invalid State Error content: application/json: schema: $ref: '#/components/schemas/Error' example: code: unknown_error message: The request conflicted with another request. You may retry the request with the provided Idempotency-Key. type: QueryRunnerAlreadyReleasedError invalid_request_error: description: Invalid Request Error content: application/json: schema: $ref: '#/components/schemas/Error' example: code: invalid_request_error message: Discount with code TEST already exists. type: duplicate_error not_found_error: description: Not Found Error content: application/json: schema: $ref: '#/components/schemas/Error' example: message: Entity with id 1 was not found type: not_found 400_error: description: Client Error content: application/json: schema: $ref: '#/components/schemas/Error' examples: not_allowed: $ref: '#/components/examples/not_allowed_error' invalid_data: $ref: '#/components/examples/invalid_data_error' 500_error: description: Server Error content: application/json: schema: $ref: '#/components/schemas/Error' examples: database: $ref: '#/components/examples/database_error' unexpected_state: $ref: '#/components/examples/unexpected_state_error' invalid_argument: $ref: '#/components/examples/invalid_argument_error' default_error: $ref: '#/components/examples/default_error' unauthorized: description: User is not authorized. Must log in first content: text/plain: schema: type: string default: Unauthorized example: Unauthorized incorrect_credentials: description: User does not exist or incorrect credentials content: text/plain: schema: type: string default: Unauthorized example: Unauthorized examples: not_allowed_error: summary: Not Allowed Error value: message: Discount must be set to dynamic type: not_allowed invalid_data_error: summary: Invalid Data Error value: message: first_name must be a string type: invalid_data multiple_errors: summary: Multiple Errors value: message: Provided request body contains errors. Please check the data and retry the request errors: - message: first_name must be a string type: invalid_data - message: Discount must be set to dynamic type: not_allowed database_error: summary: Database Error value: code: api_error message: An error occured while hashing password type: database_error unexpected_state_error: summary: Unexpected State Error value: message: cart.total must be defined type: unexpected_state invalid_argument_error: summary: Invalid Argument Error value: message: cart.total must be defined type: unexpected_state default_error: summary: Default Error value: code: unknown_error message: An unknown error occurred. type: unknown_error securitySchemes: api_token: type: http x-displayName: API Token scheme: bearer jwt_token: type: http x-displayName: JWT Token scheme: bearer cookie_auth: type: apiKey in: cookie name: connect.sid x-displayName: Cookie Session ID reset_password: type: http x-displayName: Reset Password Token scheme: bearer x-is-auth: false