instacart Orders API

Endpoints for retrieving order status, handling details, and item information after checkout.

OpenAPI Specification

instacart-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Instacart Catalog Authentication Orders API
  description: The Instacart Catalog API enables retailers to programmatically manage their product catalogs on the Instacart platform. Retailers can use the API to create or update products and items, with partial updates supported so that only the attributes included in the request body are modified. This API is designed for retailers who need to keep their Instacart product listings synchronized with their inventory management systems, ensuring accurate product information, pricing, and availability across the platform.
  version: '2.0'
  contact:
    name: Instacart Catalog Support
    url: https://docs.instacart.com/catalog/catalog_api/overview/
  termsOfService: https://www.instacart.com/terms
servers:
- url: https://connect.instacart.com
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Orders
  description: Endpoints for retrieving order status, handling details, and item information after checkout.
paths:
  /v2/post_checkout/orders/{order_id}/handling:
    get:
      operationId: getOrderHandling
      summary: Get order handling information
      description: Retrieves handling information for a specific order, including the delivery or pickup address, the coordinates of the delivery or pickup address, information about the current shopper, and any notes or instructions included with the order.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/orderId'
      responses:
        '200':
          description: Order handling details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderHandlingResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v2/post_checkout/orders/{order_id}/items:
    get:
      operationId: getOrderItems
      summary: Get order items
      description: Retrieves the list of items for a specific order. Each item includes item details of the ordered item, the current status of that item, and the current replacement for that item if one exists. Poll this endpoint while a shopper is picking the order to get real-time item status updates.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/orderId'
      responses:
        '200':
          description: List of order items with their statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderItemsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Replacement:
      type: object
      description: Details about the replacement product suggested by the shopper.
      properties:
        product_name:
          type: string
          description: The name of the replacement product.
        product_id:
          type: string
          description: The product identifier of the replacement.
        quantity:
          type: integer
          description: The quantity of the replacement product.
    OrderHandlingResponse:
      type: object
      properties:
        order_id:
          type: string
          description: The unique identifier for the order.
        status:
          type: string
          enum:
          - brand_new
          - acknowledged
          - picking
          - staging
          - delivering
          - delivered
          - canceled
          description: The current status of the order.
        address:
          type: object
          description: The delivery or pickup address.
          properties:
            address_line_1:
              type: string
              description: The street address.
            address_line_2:
              type: string
              description: Additional address information.
            city:
              type: string
              description: The city.
            state:
              type: string
              description: The state or province.
            postal_code:
              type: string
              description: The postal or ZIP code.
        coordinates:
          type: object
          description: The geographic coordinates of the delivery or pickup address.
          properties:
            latitude:
              type: number
              format: double
              description: The latitude coordinate.
            longitude:
              type: number
              format: double
              description: The longitude coordinate.
        shopper:
          type: object
          description: Information about the current shopper assigned to the order.
          properties:
            name:
              type: string
              description: The first name of the shopper.
            phone_number:
              type: string
              description: A masked phone number for contacting the shopper.
        notes:
          type: string
          description: Any delivery or pickup instructions included with the order.
    PostCheckoutOrderItem:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the order item.
        product_name:
          type: string
          description: The name of the ordered product.
        quantity:
          type: integer
          description: The ordered quantity.
        status:
          type: string
          enum:
          - pending
          - found
          - replaced
          - refunded
          - not_found
          description: The current status of the item during shopping.
        replacement:
          $ref: '#/components/schemas/Replacement'
        replacement_status:
          type: string
          enum:
          - PENDING
          - APPROVED
          - REJECTED
          description: The customer's decision on the replacement, if one was suggested.
    OrderItemsResponse:
      type: object
      properties:
        items:
          type: array
          description: The list of items in the order with their current statuses.
          items:
            $ref: '#/components/schemas/PostCheckoutOrderItem'
    Error:
      type: object
      properties:
        error:
          type: string
          description: A human-readable error message.
        status:
          type: integer
          description: The HTTP status code.
  parameters:
    orderId:
      name: order_id
      in: path
      required: true
      description: The unique identifier for the order.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer token obtained using client credentials with the connect:data_ingestion scope.
externalDocs:
  description: Instacart Catalog API Documentation
  url: https://docs.instacart.com/catalog/catalog_api/overview/