target Search API

Product search and discovery

OpenAPI Specification

target-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Target Inventory Search 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
servers:
- url: https://api.target.com
  description: Production
security:
- bearerAuth: []
tags:
- name: Search
  description: Product search and discovery
paths:
  /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'
components:
  schemas:
    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
    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
    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
    Rating:
      type: object
      properties:
        average:
          type: number
          description: Average customer rating (0-5)
        count:
          type: integer
          description: Total number of ratings
    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
    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'
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: Target Developer Portal
  url: https://developer.target.com/