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
- 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.
- 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.
- 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.
- 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
- Dates are YYYYMMDD integers, such as 20260701. Do not send an ISO date string.
- Sales summary and one event's sales accept at most 365 days. Omit beginDate and endDate on event sales for lifetime totals.
- Sales detail and PayPal payouts accept at most 90 days.
- On sales summary and sales detail, omit page to return every row.
- PayPal payouts require a plan with referral features.
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:/
| Method | Path | What it does |
|---|---|---|
| GET | / | API discovery |
| GET | / | List events. includeInactive=true adds deactivated events. Each row has active. |
| GET | / | Event details, including password fields, without orders. |
| POST | / | Create an event. |
| PATCH | / | Update an event. Omitted fields stay as they are. |
| POST | / | Deactivate an event. |
| POST | / | Reactivate an event. |
| GET | / | Net sales. Omit both dates for lifetime, or send both for at most 365 days. |
| GET | / | Search products. query is required, at least 2 characters. limit defaults to 10 and maxes at 25. Pass cursor to page. |
| GET | / | Sales summary. beginDate and endDate are required. At most 365 days. Omit page for every row. |
| GET | / | Order-level sales. At most 90 days. eventIds is an optional comma-separated list. Omit page for every row. |
| GET | / | PayPal payout rows. At most 90 days. Requires referral features. |
| GET | / | Search help. q is required. |
| GET | / | One help section by id. |
Create and update requests follow these rules
- On PATCH, omitted fields keep their current values, including form items and promoted products. Pass an empty list only when you mean to clear formItems or eventProducts.
- Call GET /products before you set eventProducts. Shindig checks the ids in Shopify and takes the titles from Shopify.
- When password is set, privateMessage is required. When userPortalEnabled is true, portalPassword is required.
- A discount code in couponCodeForLink is checked against Shopify. A missing or inactive code returns a warning, and the event still saves.
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.