Casey's ItemApi

Item Master (Pricebook) API. Returns up-to-date item data for a store, related items by UPC, and an unbuffered variant of the store-items read, alongside a GraphQL endpoint for item data.

Operations 5

POST /graphql GraphQL endpoint for item data. #
GET /v2/store-items v2 Gets retrieval of items from the Item Master (Pricebook), Providing up-to-date Item data, Supporting the use of limit/offset parameters. #
GET /v2/related-items v2 Gets retrieval of related items from the Item Master(Pricebook), Providing up-to-date Item data, Supporting the use of limit / offset parameters #
GET /v2/unbuffered-store-items UNBUFFERED: v2 Gets retrieval of items from the Item Master (Pricebook), Providing up-to-date Item data, Supporting the use of limit/offset parameters. #
GET /openapi/V3.json Get OpenApi Specification #

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/caseys-itemapi"
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

caseys-general-stores-item-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: ItemApi
  description: An API to obtain item information.
  version: '1.0'
servers:
- url: https://esl.caseys.io/itemapi
paths:
  /graphql:
    post:
      tags:
      - GraphQL
      summary: GraphQL endpoint for item data.
      description: Executes GraphQL operations for item data.
      operationId: graphql
      requestBody:
        description: The query to execute against the graph for data.
        content:
          application/json:
            schema:
              type: string
            example: string
      responses:
        '200':
          description: The item data returned from the executed graph query.
          content:
            application/json:
              schema:
                type: string
              example: string
  /v2/store-items:
    get:
      tags:
      - item
      - v2
      - StoreNumber
      summary: v2 Gets retrieval of items from the Item Master (Pricebook), Providing up-to-date Item data, Supporting
        the use of limit/offset parameters.
      description: Gets the data for a specific StoreNumber.
      operationId: getItemByStoreNumberV2
      parameters:
      - name: StoreNumber
        in: query
        description: Store Number - Its a mandatory parameter
        required: true
        schema:
          type: integer
      - name: SupplierId
        in: query
        description: PricebookSupplierId - Its an optional parameter
        schema:
          type: integer
      - name: ItemStatuses
        in: query
        description: 'Item Status must be ''Deleted'', ''Active'', ''Discontinued'', ''Inactive''. if nothing passed
          - Consider All<br>Enum: `"Deleted"` `"Active"` `"Discontinued"` `"Inactive"`'
        schema:
          type: array
      - name: Upc
        in: query
        description: The upc of the item - Optional
        schema:
          type: string
      - name: Description
        in: query
        description: Provide minimum 3 chars for description - optional
        schema:
          type: string
      - name: Limit
        in: query
        description: The number of records to retrieve.Default is 100
        schema:
          type: integer
      - name: Offset
        in: query
        description: The number of records to offset from zero.Default is 0
        schema:
          type: integer
      - name: PreferredItemsOnly
        in: query
        description: When true, returns only the item data for the preferred UPC. When false, item data for all
          UPCs found will be returned
        schema:
          type: boolean
      responses:
        '200':
          description: This resource represents an item (storeNumber).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getStoreItemsResponseModelV2'
              example:
                limit: 0
                offset: 0
                count: 0
                total: 0
                data:
                - storeNumber: 0
                  upc: string
                  description: string
                  itemId: string
                  departmentId: 0
                  retailPrice:
                    currentSellingUnitRetailPriceAmount: 0
                    currentSellingUnitRetailPriceEffectiveDate: string
                    currentSellingUnitRetailPriceExpirationDate: string
                  sellingStatus:
                    status: 0
                    effectiveDate: string
                    expirationDate: string
                  suppliers:
                  - supplierId: 0
                    cost:
                      unitOfMeasure: string
                      expirationDate: string
                      storeCost: 0
                      storeCaseCost: 0
                      storeCostsEstablishedDate: string
                      ratio: 0
                  subGroupId: 0
                  linkedUpc: string
                  paymentSystemProductCode: string
                  taxStrategyId: 0
                  restrictions:
                    id: 0
                    name: string
                    forcePriceEntry: true
                    allowFoodStampPurchase: true
                    allowRefunds: true
                    allowDiscounts: true
                    minimumCustomerAge: 0
        '400':
          description: The request received was in an invalid state or format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
        '500':
          description: An error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
  /v2/related-items:
    get:
      tags:
      - v2
      - Relateditems
      - upc
      summary: v2 Gets retrieval of related items from the Item Master(Pricebook), Providing up-to-date Item data,
        Supporting the use of limit / offset parameters
      description: Gets the related data for a specific upc.
      operationId: getRelatedItemsByUpcV2
      parameters:
      - name: Upc
        in: query
        description: UPC of the item.
        required: true
        schema:
          type: string
      - name: Limit
        in: query
        description: Limits the number of results returned in the list.Default value is 100
        schema:
          type: integer
      - name: Offset
        in: query
        description: Offsets the data in the list for use in pagination.Default value 0
        schema:
          type: integer
      responses:
        '200':
          description: This resource represents an item (upc).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getRelatedItemsResponseModelV2'
              example:
                limit: 0
                offset: 0
                count: 0
                total: 0
                data:
                - upc: string
                  description: string
        '400':
          description: The request received was in an invalid state or format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
        '500':
          description: An error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
  /v2/unbuffered-store-items:
    get:
      summary: 'UNBUFFERED: v2 Gets retrieval of items from the Item Master (Pricebook), Providing up-to-date Item
        data, Supporting the use of limit/offset parameters.'
      description: Gets the data for a specific StoreNumber.
      operationId: getItemByStoreNumberUnbuffered
      parameters:
      - name: StoreNumber
        in: query
        description: Store Number - Its a mandatory parameter
        required: true
        schema:
          type: integer
      - name: SupplierId
        in: query
        description: PricebookSupplierId - Its an optional parameter
        schema:
          type: integer
      - name: ItemStatuses
        in: query
        description: 'Item Status must be ''Deleted'', ''Active'', ''Discontinued'', ''Inactive''. if nothing passed
          - Consider All<br>Enum: `"Deleted"` `"Active"` `"Discontinued"` `"Inactive"`'
        schema:
          type: array
      - name: Upc
        in: query
        description: The upc of the item - Optional
        schema:
          type: string
      - name: Description
        in: query
        description: Provide minimum 3 chars for description - optional
        schema:
          type: string
      - name: Limit
        in: query
        description: The number of records to retrieve.Default is 100
        schema:
          type: integer
      - name: Offset
        in: query
        description: The number of records to offset from zero.Default is 0
        schema:
          type: integer
      - name: PreferredItemsOnly
        in: query
        description: When true, returns only the item data for the preferred UPC. When false, item data for all
          UPCs found will be returned
        schema:
          type: boolean
      responses:
        '200':
          description: This resource represents an item (storeNumber).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getStoreItemsResponseModelV2'
              example:
                limit: 0
                offset: 0
                count: 0
                total: 0
                data:
                - storeNumber: 0
                  upc: string
                  description: string
                  itemId: string
                  departmentId: 0
                  retailPrice:
                    currentSellingUnitRetailPriceAmount: 0
                    currentSellingUnitRetailPriceEffectiveDate: string
                    currentSellingUnitRetailPriceExpirationDate: string
                  sellingStatus:
                    status: 0
                    effectiveDate: string
                    expirationDate: string
                  suppliers:
                  - supplierId: 0
                    cost:
                      unitOfMeasure: string
                      expirationDate: string
                      storeCost: 0
                      storeCaseCost: 0
                      storeCostsEstablishedDate: string
                      ratio: 0
                  subGroupId: 0
                  linkedUpc: string
                  paymentSystemProductCode: string
                  taxStrategyId: 0
                  restrictions:
                    id: 0
                    name: string
                    forcePriceEntry: true
                    allowFoodStampPurchase: true
                    allowRefunds: true
                    allowDiscounts: true
                    minimumCustomerAge: 0
        '400':
          description: The request received was in an invalid state or format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
        '500':
          description: An error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
              example:
                code: 0
                message: string
  /openapi/V3.json:
    get:
      summary: Get OpenApi Specification
      description: Gets the OpenApi specification in V3.json format with the parameters .
      operationId: getOpenApiSpec
      responses:
        '200':
          description: ''
components:
  schemas:
    apiError:
      type: object
      properties:
        code:
          type: integer
          description: Status code of the error.
          format: int32
        message:
          type: string
          description: Message that describes the error.
    getRelatedItemsResponseModelV2:
      type: object
      properties:
        limit:
          type: integer
          description: The limited number of items returned.
          format: int32
        offset:
          type: integer
          description: The number of items skipped.
          format: int32
        count:
          type: integer
          description: The number of items returned.
          format: int32
        total:
          type: integer
          description: The total number of items.
          format: int32
        data:
          type: array
          items:
            $ref: '#/components/schemas/relatedItem'
    getStoreItemsResponseModelV2:
      type: object
      properties:
        limit:
          type: integer
          description: The limited number of items returned.
          format: int32
        offset:
          type: integer
          description: The number of items skipped.
          format: int32
        count:
          type: integer
          description: The number of items returned.
          format: int32
        total:
          type: integer
          description: The total number of items.
          format: int32
        data:
          type: array
          items:
            $ref: '#/components/schemas/storeItem'
    itemCost:
      type: object
      properties:
        unitOfMeasure:
          type: string
          description: The unitOfMeasure of the item for the store.
        expirationDate:
          type: string
          format: date-time
          nullable: true
        storeCost:
          type: number
          description: The cost of the item for the store.
          format: double
        storeCaseCost:
          type: number
          description: The cost of a case of the item for the store.
          format: double
        storeCostsEstablishedDate:
          type: string
          description: The date when the store costs for the item were established.
          format: date-time
        ratio:
          type: number
          format: double
          nullable: true
      description: The cost information of the item from the supplier.
    itemRetailPrice:
      type: object
      properties:
        currentSellingUnitRetailPriceAmount:
          type: number
          description: The current selling price of the item.
          format: double
        currentSellingUnitRetailPriceEffectiveDate:
          type: string
          description: The date when the current selling price became effective.
          format: date-time
        currentSellingUnitRetailPriceExpirationDate:
          type: string
          description: The date when the current selling price will expire.
          format: date-time
      description: The current retail price of the item.
    itemStatus:
      type: object
      properties:
        status:
          enum:
          - 0
          - 1
          - 2
          - 3
          type: integer
          description: The status code of the item. (0 = Deleted, 1 = Active, 2 = Discontinued, 3 = Inactive)
          format: int32
        effectiveDate:
          type: string
          description: The date when the status becomes effective.
          format: date-time
        expirationDate:
          type: string
          description: The date when the status expires.
          format: date-time
      description: The current selling status of the item.
    itemSupplier:
      type: object
      properties:
        supplierId:
          type: integer
          description: The ID of the supplier in the pricebook.
          format: int32
        cost:
          $ref: '#/components/schemas/itemCost'
    relatedItem:
      type: object
      properties:
        upc:
          type: string
          description: The Universal Product Code of the related item.
        description:
          type: string
          description: A brief description of the related item.
    restriction:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the restriction.
          format: int32
        name:
          type: string
          description: The name describing the restriction.
        forcePriceEntry:
          type: boolean
          description: Flag to determine if the cashier will be forced to enter a price.
        allowFoodStampPurchase:
          type: boolean
          description: Flag to determine if the item can be bought with food stamps.
        allowRefunds:
          type: boolean
          description: Flag to determine if the item can be returned.
        allowDiscounts:
          type: boolean
          description: Flag to determine if a discount can be applied to the item.
        minimumCustomerAge:
          type: integer
          description: The minimum age the customer must be to purchase this item.
          format: int32
      description: The restrictions for the item.
    storeItem:
      type: object
      properties:
        storeNumber:
          type: integer
          description: A unique retailer assigned identifier for a store.
          format: int32
        upc:
          type: string
          description: The Universal Product Code of the item.
        description:
          type: string
          description: A brief description of the item.
        itemId:
          type: string
          description: ORIN of the item.
        departmentId:
          type: integer
          description: The Department ID of the item.
          format: int32
        retailPrice:
          $ref: '#/components/schemas/itemRetailPrice'
        sellingStatus:
          $ref: '#/components/schemas/itemStatus'
        suppliers:
          type: array
          items:
            $ref: '#/components/schemas/itemSupplier'
          description: The list of suppliers for the item.
        subGroupId:
          type: integer
          description: The itemSubGroup to which the items belong, within the itemGroup.
          format: int32
        linkedUpc:
          type: string
          description: Automatically associates a related item with a transaction. Examples include Bottle Deposits
            or Money Order Fees.
        paymentSystemProductCode:
          type: string
          description: A code reported to the credit card processing host, to indicate types of products being sold
            in the transaction.
        taxStrategyId:
          type: integer
          description: It is a pointer to the Tax Strategy Maintenance Table that includes sufficient methods and/or
            algorithms to compute the tax relative to or required by that item/department. A TaxStrategyID = 0 indicates
            the item is non-taxable
          format: int32
        restrictions:
          $ref: '#/components/schemas/restriction'
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
security:
- apiKeyHeader: []
- apiKeyQuery: []