Medusa Exchanges API

An exchange is the replacement of an item that the customer ordered with another. These API routes allow admin users to create and manage exchanges.

Operations 18

GET /admin/exchanges List Exchanges #
POST /admin/exchanges Create Exchange #
GET /admin/exchanges/{id} Get an Exchange #
POST /admin/exchanges/{id}/cancel Cancel an Exchange #
POST /admin/exchanges/{id}/inbound/items Add Inbound Items to an Exchange #
POST /admin/exchanges/{id}/inbound/items/{action_id} Update an Inbount Item of an Exchange #
DELETE /admin/exchanges/{id}/inbound/items/{action_id} Remove Inbound Item from Exchange #
POST /admin/exchanges/{id}/inbound/shipping-method Add an Inbound Shipping Method to an Exchange #
POST /admin/exchanges/{id}/inbound/shipping-method/{action_id} Update Inbound Shipping Method of an Exchange #
DELETE /admin/exchanges/{id}/inbound/shipping-method/{action_id} Remove Inbound Shipping Method from Exchange #
POST /admin/exchanges/{id}/outbound/items Add Outbound Items to Exchange #
POST /admin/exchanges/{id}/outbound/items/{action_id} Update Outbound Item of an Exchange #
DELETE /admin/exchanges/{id}/outbound/items/{action_id} Remove Outbound Item from Exchange #
POST /admin/exchanges/{id}/outbound/shipping-method Add Outbound Shipping Method to Exchange #
POST /admin/exchanges/{id}/outbound/shipping-method/{action_id} Update Outbound Shipping Method of Exchange #
DELETE /admin/exchanges/{id}/outbound/shipping-method/{action_id} Remove Outbound Shipping Method from Exchange #
POST /admin/exchanges/{id}/request Confirm an Exchange #
DELETE /admin/exchanges/{id}/request Cancel Exchange Request #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/medusa-exchanges-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

medusa-exchanges-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.19.0
  title: Medusa Admin Exchanges API
  license:
    name: MIT
    url: https://github.com/medusajs/medusa/blob/develop/LICENSE
  description: 'An exchange is the replacement of an item that the customer ordered with another.


    These API routes allow admin users to create and manage exchanges.

    '
servers:
- url: http://localhost:9000
- url: https://api.medusajs.com
tags:
- name: Exchanges
  description: 'An exchange is the replacement of an item that the customer ordered with another.


    These API routes allow admin users to 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'
paths:
  /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`).
          title: deleted_at
      - 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`).
          title: created_at
      - 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:

# --- truncated at 32 KB (324 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/medusa/refs/heads/main/openapi/medusa-exchanges-api-openapi.yml