Checkmate Shoppers API

The Shoppers API from Checkmate — 1 operation(s) for shoppers.

Operations 1

POST /v1/shoppers/history Batch shopper purchase history

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/checkmate-shoppers-api"
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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

checkmate-shoppers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: OpenStock Health Shoppers API
  description: 'API provided by Checkmate to partners to provide access to merchant codes and shopper purchase history. All endpoints are POST with batched request/response shapes. Authenticate with `Authorization: Bearer <api_key>`. Ask partner representative for the API key.'
servers:
- url: https://api.openstock.sh
  description: Current environment
tags:
- name: Shoppers
paths:
  /v1/shoppers/history:
    post:
      tags:
      - Shoppers
      summary: Batch shopper purchase history
      description: Look up purchase history for one or more shoppers identified by SHA-256 hash of their normalised (lowercase-trimmed) email address. Never send raw email addresses. Up to 20 queries per request. Each result contains a flat `items` array of merchant interactions; unknown shoppers return an empty `items` array — there are no 404s.
      security:
      - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShopperHistoryRequest'
      responses:
        '200':
          description: Per-query shopper history. Each result has a flat `items` array of merchant interactions. Unknown shoppers return an empty array.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShopperHistoryResponse'
        '400':
          description: Invalid request body, malformed email_sha256, or query cap exceeded (max 20)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many requests. Rate limits are determined on a per partner basis.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ShopperHistoryResult:
      type: object
      properties:
        query_id:
          type: string
          example: q1
        items:
          type: array
          items:
            $ref: '#/components/schemas/ShopperActivity'
          description: Flat list of merchant interactions for this shopper. Empty array when the shopper is unknown.
      required:
      - query_id
      - items
    ShopperHistoryRequest:
      type: object
      properties:
        queries:
          type: array
          items:
            $ref: '#/components/schemas/ShopperHistoryQuery'
          minItems: 1
          maxItems: 20
          description: Batch of shopper-history queries (1–20)
      required:
      - queries
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: VALIDATION_ERROR
            message:
              type: string
              example: Request body is invalid
          required:
          - code
          - message
      required:
      - error
    ShopperHistoryQuery:
      type: object
      properties:
        query_id:
          type: string
          minLength: 1
          example: q1
          description: Caller-supplied opaque identifier correlated back in results
        email_sha256:
          type: string
          pattern: ^[0-9a-f]{64}$
          example: b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576e50e46a7d3f5a4b8
          description: SHA-256 of the lowercase-trimmed email address; never send the raw email
      required:
      - query_id
      - email_sha256
    ShopperActivity:
      type: object
      properties:
        merchant_id:
          type: string
          example: 01hz4vdrcnxhfmfcvy3rfqk1fp
          description: Checkmate merchant ID
        merchant_name:
          type: string
          example: Acme Corp
        type:
          type: string
          enum:
          - visited
          - purchased
          example: purchased
          description: 'Activity type: "visited" or "purchased"'
      required:
      - merchant_id
      - merchant_name
      - type
    ShopperHistoryResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ShopperHistoryResult'
      required:
      - results