Urban Outfitters Marketplace (UO MRKT) Integration

Urban Outfitters operates a curated third-party marketplace called UO MRKT for independent lifestyle and fashion brands. Seller integration is managed through EDI and third-party connectors such as ConnectPointz, SellerCloud, and e-tailize. Provides product catalog sync, inventory management, order routing, and shipment tracking for approved sellers.

OpenAPI Specification

urban-outfitters-marketplace-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Urban Outfitters Marketplace API
  description: >-
    Integration API for the Urban Outfitters curated third-party marketplace (UO MRKT).
    Independent brands and sellers can list products, manage inventory, receive orders,
    and update shipment tracking through EDI or third-party integration platforms
    such as ConnectPointz, SellerCloud, and e-tailize. This spec represents the
    conceptual API surface for marketplace sellers.
  version: '1.0.0'
  contact:
    name: Urban Outfitters Marketplace Support
    url: https://www.urbanoutfitters.com/mrkt-seller-form
  x-generated-from: documentation
externalDocs:
  description: Urban Outfitters Marketplace Seller Form
  url: https://www.urbanoutfitters.com/mrkt-seller-form
servers:
  - url: https://marketplace.urbanoutfitters.com/api
    description: Urban Outfitters Marketplace API
tags:
  - name: Products
    description: Seller product catalog management
  - name: Inventory
    description: Inventory level management
  - name: Orders
    description: Order retrieval and management
  - name: Shipments
    description: Shipment and fulfillment tracking
security:
  - apiKeyAuth: []
paths:
  /v1/products:
    get:
      operationId: listSellerProducts
      summary: Urban Outfitters List Seller Products
      description: >-
        Retrieve the authenticated seller's product listings on the
        Urban Outfitters marketplace.
      tags:
        - Products
      parameters:
        - name: status
          in: query
          description: Filter products by status
          schema:
            type: string
            enum:
              - active
              - inactive
              - pending_review
          example: "active"
        - name: limit
          in: query
          description: Maximum products to return
          schema:
            type: integer
            default: 50
          example: 50
        - name: offset
          in: query
          description: Pagination offset
          schema:
            type: integer
            default: 0
          example: 0
      responses:
        '200':
          description: Seller product listings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerProductListResponse'
              examples:
                listSellerProducts200Example:
                  summary: Default listSellerProducts 200 response
                  x-microcks-default: true
                  value:
                    total: 150
                    products:
                      - id: "seller-prod-001"
                        sku: "UO-BRAND-TEE-001"
                        name: "Indie Brand Graphic Tee"
                        price: 45.00
                        currency: "USD"
                        status: "active"
                        inventoryQuantity: 250
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    post:
      operationId: createSellerProduct
      summary: Urban Outfitters Create Seller Product
      description: >-
        Submit a new product listing to the Urban Outfitters marketplace for review.
      tags:
        - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SellerProductCreate'
            examples:
              createSellerProductRequestExample:
                summary: Default createSellerProduct request
                x-microcks-default: true
                value:
                  sku: "BRAND-NEW-ITEM-001"
                  name: "New Indie Brand Item"
                  description: "Handcrafted artisan product"
                  price: 55.00
                  currency: "USD"
                  category: "womens"
      responses:
        '201':
          description: Product listing created and submitted for review
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerProduct'
              examples:
                createSellerProduct201Example:
                  summary: Default createSellerProduct 201 response
                  x-microcks-default: true
                  value:
                    id: "seller-prod-002"
                    sku: "BRAND-NEW-ITEM-001"
                    name: "New Indie Brand Item"
                    status: "pending_review"
        '400':
          description: Invalid product data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /v1/inventory:
    put:
      operationId: updateInventory
      summary: Urban Outfitters Update Inventory
      description: >-
        Update inventory levels for one or more seller products on the
        Urban Outfitters marketplace.
      tags:
        - Inventory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryUpdate'
            examples:
              updateInventoryRequestExample:
                summary: Default updateInventory request
                x-microcks-default: true
                value:
                  updates:
                    - sku: "UO-BRAND-TEE-001"
                      quantity: 300
                    - sku: "UO-BRAND-JACKET-002"
                      quantity: 45
      responses:
        '200':
          description: Inventory updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryUpdateResponse'
              examples:
                updateInventory200Example:
                  summary: Default updateInventory 200 response
                  x-microcks-default: true
                  value:
                    updated: 2
                    failed: 0
                    results:
                      - sku: "UO-BRAND-TEE-001"
                        status: "updated"
                        quantity: 300
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /v1/orders:
    get:
      operationId: listOrders
      summary: Urban Outfitters List Marketplace Orders
      description: >-
        Retrieve orders from the Urban Outfitters marketplace for the
        authenticated seller.
      tags:
        - Orders
      parameters:
        - name: status
          in: query
          description: Filter by order status
          schema:
            type: string
            enum:
              - pending
              - acknowledged
              - shipped
              - delivered
              - cancelled
          example: "pending"
        - name: start_date
          in: query
          description: Filter orders from this date
          schema:
            type: string
            format: date
          example: "2025-01-01"
        - name: limit
          in: query
          description: Maximum orders to return
          schema:
            type: integer
            default: 20
          example: 20
      responses:
        '200':
          description: List of marketplace orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
              examples:
                listOrders200Example:
                  summary: Default listOrders 200 response
                  x-microcks-default: true
                  value:
                    total: 35
                    orders:
                      - id: "order-xyz789"
                        status: "pending"
                        createdAt: "2025-03-15T14:30:00Z"
                        items:
                          - sku: "UO-BRAND-TEE-001"
                            quantity: 2
                            price: 45.00
                        shippingAddress:
                          name: "Jane Smith"
                          city: "New York"
                          state: "NY"
                          country: "US"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /v1/orders/{order_id}/shipments:
    post:
      operationId: createShipment
      summary: Urban Outfitters Create Shipment
      description: >-
        Submit shipment tracking information for a fulfilled marketplace order.
      tags:
        - Shipments
      parameters:
        - name: order_id
          in: path
          required: true
          description: The order identifier
          schema:
            type: string
          example: "order-xyz789"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentCreate'
            examples:
              createShipmentRequestExample:
                summary: Default createShipment request
                x-microcks-default: true
                value:
                  carrier: "UPS"
                  trackingNumber: "1Z999AA10123456784"
                  estimatedDelivery: "2025-03-20"
      responses:
        '201':
          description: Shipment created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shipment'
              examples:
                createShipment201Example:
                  summary: Default createShipment 201 response
                  x-microcks-default: true
                  value:
                    id: "shipment-abc123"
                    orderId: "order-xyz789"
                    carrier: "UPS"
                    trackingNumber: "1Z999AA10123456784"
                    status: "shipped"
                    createdAt: "2025-03-17T09:00:00Z"
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Seller-API-Key
      description: Seller API key provided by Urban Outfitters marketplace onboarding

  schemas:
    SellerProduct:
      type: object
      description: A seller product listing on the Urban Outfitters marketplace
      properties:
        id:
          type: string
          description: Marketplace product identifier
          example: "seller-prod-001"
        sku:
          type: string
          description: Seller SKU / product identifier
          example: "UO-BRAND-TEE-001"
        name:
          type: string
          description: Product name
          example: "Indie Brand Graphic Tee"
        description:
          type: string
          description: Product description
          example: "Handcrafted screenprinted tee"
        price:
          type: number
          description: Product retail price
          example: 45.00
        currency:
          type: string
          description: Price currency
          example: "USD"
        category:
          type: string
          description: Product category
          example: "womens"
        status:
          type: string
          description: Listing status
          enum:
            - active
            - inactive
            - pending_review
            - rejected
          example: "active"
        inventoryQuantity:
          type: integer
          description: Available inventory
          example: 250
        imageUrls:
          type: array
          description: Product image URLs
          items:
            type: string
          example: ["https://cdn.seller.com/product-image-1.jpg"]

    SellerProductCreate:
      type: object
      description: Request body for creating a product listing
      required:
        - sku
        - name
        - price
        - currency
      properties:
        sku:
          type: string
          example: "BRAND-NEW-ITEM-001"
        name:
          type: string
          example: "New Product Name"
        description:
          type: string
          example: "Product description"
        price:
          type: number
          example: 55.00
        currency:
          type: string
          example: "USD"
        category:
          type: string
          example: "womens"

    SellerProductListResponse:
      type: object
      description: Paginated seller product listings
      properties:
        total:
          type: integer
          example: 150
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 50
        products:
          type: array
          items:
            $ref: '#/components/schemas/SellerProduct'

    InventoryUpdate:
      type: object
      description: Inventory update request
      required:
        - updates
      properties:
        updates:
          type: array
          description: List of SKU inventory updates
          items:
            type: object
            properties:
              sku:
                type: string
                example: "UO-BRAND-TEE-001"
              quantity:
                type: integer
                example: 300

    InventoryUpdateResponse:
      type: object
      description: Result of inventory update
      properties:
        updated:
          type: integer
          description: Number of successfully updated SKUs
          example: 2
        failed:
          type: integer
          description: Number of failed updates
          example: 0
        results:
          type: array
          description: Per-SKU update results
          items:
            type: object
            properties:
              sku:
                type: string
                example: "UO-BRAND-TEE-001"
              status:
                type: string
                example: "updated"
              quantity:
                type: integer
                example: 300

    Order:
      type: object
      description: A marketplace order from Urban Outfitters
      properties:
        id:
          type: string
          description: Order identifier
          example: "order-xyz789"
        status:
          type: string
          description: Order status
          enum:
            - pending
            - acknowledged
            - shipped
            - delivered
            - cancelled
          example: "pending"
        createdAt:
          type: string
          format: date-time
          description: Order creation time
          example: "2025-03-15T14:30:00Z"
        items:
          type: array
          description: Ordered items
          items:
            $ref: '#/components/schemas/OrderItem'
        shippingAddress:
          $ref: '#/components/schemas/ShippingAddress'
        total:
          type: number
          description: Order total
          example: 90.00
        currency:
          type: string
          example: "USD"

    OrderItem:
      type: object
      description: An item in a marketplace order
      properties:
        sku:
          type: string
          example: "UO-BRAND-TEE-001"
        quantity:
          type: integer
          example: 2
        price:
          type: number
          example: 45.00

    OrderListResponse:
      type: object
      description: Paginated list of marketplace orders
      properties:
        total:
          type: integer
          example: 35
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'

    ShippingAddress:
      type: object
      description: A shipping destination address
      properties:
        name:
          type: string
          example: "Jane Smith"
        address1:
          type: string
          example: "123 Main St"
        address2:
          type: string
          example: "Apt 4B"
        city:
          type: string
          example: "New York"
        state:
          type: string
          example: "NY"
        postalCode:
          type: string
          example: "10001"
        country:
          type: string
          example: "US"

    Shipment:
      type: object
      description: Shipment record for a fulfilled order
      properties:
        id:
          type: string
          description: Shipment identifier
          example: "shipment-abc123"
        orderId:
          type: string
          description: Associated order identifier
          example: "order-xyz789"
        carrier:
          type: string
          description: Shipping carrier
          example: "UPS"
        trackingNumber:
          type: string
          description: Carrier tracking number
          example: "1Z999AA10123456784"
        status:
          type: string
          description: Shipment status
          enum:
            - shipped
            - in_transit
            - delivered
          example: "shipped"
        createdAt:
          type: string
          format: date-time
          description: Shipment creation time
          example: "2025-03-17T09:00:00Z"
        estimatedDelivery:
          type: string
          format: date
          description: Estimated delivery date
          example: "2025-03-20"

    ShipmentCreate:
      type: object
      description: Request to create a shipment record
      required:
        - carrier
        - trackingNumber
      properties:
        carrier:
          type: string
          example: "UPS"
        trackingNumber:
          type: string
          example: "1Z999AA10123456784"
        estimatedDelivery:
          type: string
          format: date
          example: "2025-03-20"

    APIError:
      type: object
      description: API error response
      properties:
        error:
          type: string
          example: "unauthorized"
        message:
          type: string
          example: "Invalid API key."
        code:
          type: integer
          example: 401