Target API

Target provides partner APIs for product catalog access, inventory availability, order management, and store information. These APIs enable technology partners and affiliates to integrate with Target's retail platform. The Redsky aggregation platform powers client-managed REST APIs built on GraphQL queries covering product, price, promotion, and fulfillment data.

OpenAPI Specification

target-target-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Target API
  description: >-
    Target provides partner APIs for product catalog access, inventory availability,
    order management, and store information. These APIs enable technology partners
    and affiliates to integrate with Target's retail platform. The Redsky aggregation
    platform powers client-managed REST APIs built on GraphQL queries covering product,
    price, promotion, and fulfillment data.
  version: '1.0'
  contact:
    name: Target Developer Support
    url: https://developer.target.com/
  termsOfService: https://developer.target.com/terms
externalDocs:
  description: Target Developer Portal
  url: https://developer.target.com/
servers:
  - url: https://api.target.com
    description: Production
tags:
  - name: Products
    description: Product catalog and detail operations
  - name: Inventory
    description: Store and online inventory availability
  - name: Stores
    description: Store locator and store information
  - name: Search
    description: Product search and discovery
  - name: Orders
    description: Order management for partners
  - name: Status
    description: API health and status
security:
  - bearerAuth: []
paths:
  /status:
    get:
      operationId: getApiStatus
      summary: Get API Status
      description: Returns the current operational status of the Target API platform.
      tags:
        - Status
      security: []
      responses:
        '200':
          description: API is operational
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStatus'
        '503':
          description: Service unavailable
  /products/v3/{tcin}:
    get:
      operationId: getProduct
      summary: Get Product Details
      description: >-
        Retrieves detailed product information for a given TCIN (Target
        Corporation Item Number) including title, description, images, pricing,
        and attributes.
      tags:
        - Products
      parameters:
        - name: tcin
          in: path
          required: true
          description: Target Corporation Item Number (TCIN)
          schema:
            type: string
        - name: store_id
          in: query
          required: false
          description: Store ID for localized pricing and availability
          schema:
            type: string
        - name: zip
          in: query
          required: false
          description: ZIP code for localized pricing
          schema:
            type: string
        - name: fields
          in: query
          required: false
          description: Comma-separated list of fields to return
          schema:
            type: string
      responses:
        '200':
          description: Product details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /products/v3:
    get:
      operationId: listProducts
      summary: List Products
      description: Returns a list of products by TCINs or other filter criteria.
      tags:
        - Products
      parameters:
        - name: tcins
          in: query
          required: false
          description: Comma-separated list of TCINs
          schema:
            type: string
        - name: category
          in: query
          required: false
          description: Category ID to filter products
          schema:
            type: string
        - name: brand
          in: query
          required: false
          description: Brand name to filter products
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: Maximum number of results
          schema:
            type: integer
            default: 20
            maximum: 100
        - name: offset
          in: query
          required: false
          description: Offset for pagination
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /products/v3/{tcin}/fulfillment:
    get:
      operationId: getProductFulfillment
      summary: Get Product Fulfillment
      description: >-
        Returns fulfillment and availability information for a product at a
        specific store or for online delivery, including ship-to-home, in-store
        pickup, and drive-up options.
      tags:
        - Inventory
      parameters:
        - name: tcin
          in: path
          required: true
          description: Target Corporation Item Number
          schema:
            type: string
        - name: store_id
          in: query
          required: false
          description: Store ID for in-store availability
          schema:
            type: string
        - name: zip
          in: query
          required: false
          description: ZIP code for ship-to-home availability
          schema:
            type: string
        - name: latitude
          in: query
          required: false
          description: Latitude for nearby store lookup
          schema:
            type: number
        - name: longitude
          in: query
          required: false
          description: Longitude for nearby store lookup
          schema:
            type: number
      responses:
        '200':
          description: Fulfillment availability
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductFulfillment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /stores/v3:
    get:
      operationId: listStores
      summary: List Stores
      description: >-
        Returns a list of Target stores optionally filtered by location, ZIP
        code, or geographic coordinates.
      tags:
        - Stores
      parameters:
        - name: zip
          in: query
          required: false
          description: ZIP code to search near
          schema:
            type: string
        - name: latitude
          in: query
          required: false
          description: Latitude for geographic search
          schema:
            type: number
        - name: longitude
          in: query
          required: false
          description: Longitude for geographic search
          schema:
            type: number
        - name: radius
          in: query
          required: false
          description: Search radius in miles
          schema:
            type: integer
            default: 25
        - name: limit
          in: query
          required: false
          description: Maximum number of stores to return
          schema:
            type: integer
            default: 10
            maximum: 50
      responses:
        '200':
          description: List of stores
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /stores/v3/{store_id}:
    get:
      operationId: getStore
      summary: Get Store Details
      description: Returns detailed information about a specific Target store.
      tags:
        - Stores
      parameters:
        - name: store_id
          in: path
          required: true
          description: Target store ID
          schema:
            type: string
      responses:
        '200':
          description: Store details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Store'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /products/v3/search:
    get:
      operationId: searchProducts
      summary: Search Products
      description: >-
        Search Target's product catalog by keyword, category, brand, or other
        criteria. Returns matching products with relevance scoring.
      tags:
        - Search
      parameters:
        - name: q
          in: query
          required: true
          description: Search query string
          schema:
            type: string
        - name: category
          in: query
          required: false
          description: Category filter
          schema:
            type: string
        - name: brand
          in: query
          required: false
          description: Brand filter
          schema:
            type: string
        - name: price_min
          in: query
          required: false
          description: Minimum price filter
          schema:
            type: number
        - name: price_max
          in: query
          required: false
          description: Maximum price filter
          schema:
            type: number
        - name: sort_by
          in: query
          required: false
          description: Sort order
          schema:
            type: string
            enum:
              - relevance
              - price_asc
              - price_desc
              - rating
              - newest
        - name: limit
          in: query
          required: false
          description: Number of results per page
          schema:
            type: integer
            default: 20
            maximum: 100
        - name: offset
          in: query
          required: false
          description: Pagination offset
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /orders/v1:
    get:
      operationId: listOrders
      summary: List Orders
      description: Returns orders for partner fulfillment or reporting purposes.
      tags:
        - Orders
      parameters:
        - name: status
          in: query
          required: false
          description: Filter by order status
          schema:
            type: string
            enum:
              - pending
              - processing
              - shipped
              - delivered
              - cancelled
        - name: from_date
          in: query
          required: false
          description: Start date filter (ISO 8601)
          schema:
            type: string
            format: date
        - name: to_date
          in: query
          required: false
          description: End date filter (ISO 8601)
          schema:
            type: string
            format: date
        - name: limit
          in: query
          required: false
          description: Maximum orders to return
          schema:
            type: integer
            default: 20
        - name: offset
          in: query
          required: false
          description: Pagination offset
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /orders/v1/{order_id}:
    get:
      operationId: getOrder
      summary: Get Order Details
      description: Returns full details of a specific order including line items and status.
      tags:
        - Orders
      parameters:
        - name: order_id
          in: path
          required: true
          description: Target order ID
          schema:
            type: string
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ApiStatus:
      type: object
      properties:
        status:
          type: string
          description: Current API status
          enum:
            - operational
            - degraded
            - outage
        version:
          type: string
          description: API version
        timestamp:
          type: string
          format: date-time
          description: Status timestamp
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: string
          description: Additional error details
    ProductDetail:
      type: object
      properties:
        tcin:
          type: string
          description: Target Corporation Item Number
        title:
          type: string
          description: Product title
        description:
          type: string
          description: Product description
        brand:
          type: string
          description: Brand name
        category:
          type: string
          description: Product category path
        images:
          type: array
          items:
            $ref: '#/components/schemas/ProductImage'
        price:
          $ref: '#/components/schemas/Price'
        rating:
          $ref: '#/components/schemas/Rating'
        dpci:
          type: string
          description: Department-class-item number
        upc:
          type: string
          description: Universal Product Code
    ProductImage:
      type: object
      properties:
        url:
          type: string
          format: uri
          description: Image URL
        type:
          type: string
          description: Image type (primary, alternate, lifestyle)
        width:
          type: integer
        height:
          type: integer
    Price:
      type: object
      properties:
        current_retail:
          type: number
          description: Current retail price
        regular_retail:
          type: number
          description: Regular (non-sale) retail price
        sale_price:
          type: number
          description: Sale price if applicable
        is_on_sale:
          type: boolean
          description: Whether the product is currently on sale
        currency:
          type: string
          default: USD
    Rating:
      type: object
      properties:
        average:
          type: number
          description: Average customer rating (0-5)
        count:
          type: integer
          description: Total number of ratings
    ProductList:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetail'
        total:
          type: integer
          description: Total number of matching products
        limit:
          type: integer
        offset:
          type: integer
    ProductFulfillment:
      type: object
      properties:
        tcin:
          type: string
          description: Target Corporation Item Number
        ship_to_home:
          $ref: '#/components/schemas/FulfillmentOption'
        in_store_pickup:
          $ref: '#/components/schemas/FulfillmentOption'
        drive_up:
          $ref: '#/components/schemas/FulfillmentOption'
        same_day_delivery:
          $ref: '#/components/schemas/FulfillmentOption'
    FulfillmentOption:
      type: object
      properties:
        available:
          type: boolean
          description: Whether this fulfillment option is available
        quantity:
          type: integer
          description: Available quantity
        estimated_date:
          type: string
          format: date
          description: Estimated availability or delivery date
    Store:
      type: object
      properties:
        store_id:
          type: string
          description: Target store ID
        name:
          type: string
          description: Store name
        address:
          $ref: '#/components/schemas/Address'
        phone:
          type: string
          description: Store phone number
        hours:
          type: array
          items:
            $ref: '#/components/schemas/StoreHours'
        latitude:
          type: number
          description: Store latitude
        longitude:
          type: number
          description: Store longitude
        features:
          type: array
          items:
            type: string
          description: Store features (pharmacy, Starbucks, optical, etc.)
    Address:
      type: object
      properties:
        street:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
          default: US
    StoreHours:
      type: object
      properties:
        day:
          type: string
          description: Day of week
        open:
          type: string
          description: Opening time (HH:MM)
        close:
          type: string
          description: Closing time (HH:MM)
    StoreList:
      type: object
      properties:
        stores:
          type: array
          items:
            $ref: '#/components/schemas/Store'
        total:
          type: integer
    SearchResults:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetail'
        total:
          type: integer
          description: Total matching results
        limit:
          type: integer
        offset:
          type: integer
        facets:
          type: array
          items:
            $ref: '#/components/schemas/SearchFacet'
    SearchFacet:
      type: object
      properties:
        name:
          type: string
          description: Facet name (brand, category, price, etc.)
        values:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              count:
                type: integer
    Order:
      type: object
      properties:
        order_id:
          type: string
          description: Target order ID
        status:
          type: string
          enum:
            - pending
            - processing
            - shipped
            - delivered
            - cancelled
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/OrderLineItem'
        total_amount:
          type: number
          description: Total order amount
        currency:
          type: string
          default: USD
    OrderLineItem:
      type: object
      properties:
        tcin:
          type: string
          description: Target Corporation Item Number
        title:
          type: string
          description: Product title
        quantity:
          type: integer
        unit_price:
          type: number
        total_price:
          type: number
        status:
          type: string
    OrderList:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer