Call the Shindig REST API with your API key

This page is a REST quickstart for Shopify merchants. It states the Bearer API key, the endpoints, the YYYYMMDD date format, and the report day limits. The Free plan does not include API or MCP. Plus is $4.99 per month or $45 per year, and Plus50 is $24.95 per month or $224.55 per year. Each paid plan includes a 14-day free trial. API and MCP need Plus or Plus50.

Copy the key and call the API

  1. Copy the base URL and API key. In the Shopify admin, open Shindig, then Settings, then Company Config, then API & MCP Access. Company Config shows the URL and the API key. Rotate the key there if it may have been exposed. API and MCP need Plus or Plus50. Send Authorization: Bearer and the key on every request.
  2. Call an endpoint. The paths below are under /api/v1. A list of events is GET /api/v1/events. Dates in query strings are YYYYMMDD integers.
  3. Keep reports inside the day limits. Sales summary and one event's sales allow 365 days. Sales detail and PayPal payouts allow 90 days. Omit page on summary and detail when you want every row.
  4. Read the contract when you need every field. Open https://shindig.directsales.software/api/v1/docs for the interactive docs and https://shindig.directsales.software/api/v1/openapi.json for the OpenAPI file. The day limits, date format, and endpoint list are also written on this page.
curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://shindig.directsales.software/api/v1/events"
curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://shindig.directsales.software/api/v1/reports/sales-summary?beginDate=20260101&endDate=20261231"

Send YYYYMMDD dates and stay inside the day limits

A full calendar year in the year-end sales prompt uses beginDate YYYY0101 and endDate YYYY1231, which is the 365-day summary window. A detail or PayPal range such as beginDate 20260701 and endDate 20260731 stays inside 90 days.

These are the REST endpoints

Paths are on https://shindig.directsales.software.

MethodPathWhat it does
GET/api/v1/API discovery
GET/api/v1/eventsList events. includeInactive=true adds deactivated events. Each row has active.
GET/api/v1/events/{eventId}Event details, including password fields, without orders.
POST/api/v1/eventsCreate an event.
PATCH/api/v1/events/{eventId}Update an event. Omitted fields stay as they are.
POST/api/v1/events/{eventId}/deactivateDeactivate an event.
POST/api/v1/events/{eventId}/reactivateReactivate an event.
GET/api/v1/events/{eventId}/salesNet sales. Omit both dates for lifetime, or send both for at most 365 days.
GET/api/v1/productsSearch products. query is required, at least 2 characters. limit defaults to 10 and maxes at 25. Pass cursor to page.
GET/api/v1/reports/sales-summarySales summary. beginDate and endDate are required. At most 365 days. Omit page for every row.
GET/api/v1/reports/sales-detailOrder-level sales. At most 90 days. eventIds is an optional comma-separated list. Omit page for every row.
GET/api/v1/reports/paypal-payoutsPayPal payout rows. At most 90 days. Requires referral features.
GET/api/v1/help?q=Search help. q is required.
GET/api/v1/help/{sectionId}One help section by id.

Create and update requests follow these rules

Interactive docs: /api/v1/docs. OpenAPI contract: /api/v1/openapi.json.

The same Bearer key calls the MCP server. Assistant setup is on Works with AI assistants.

Read another Shindig guide

Claude is a trademark of Anthropic. ChatGPT is a trademark of OpenAI. Grok Bot and Cursor are trademarks of their respective owners. Shindig is not affiliated with, endorsed by, or sponsored by those companies. Works with means you connect your own account.