Build on the backend
we run for you
The MixShift Builder Platform is the infrastructure layer under everything we ship: one OAuth credential that opens your warehouse, live retail and ads surfaces from Amazon, the brand memory behind why your numbers moved, MixShift Intelligence's attribution reads, and an MCP server for AI tools. Your apps, your workflows, your agents, on data we keep fresh for you.
Included with your MixShift subscription · REST API + MCP · Live with early partners now
A credential, a token, a query
Get a credential
Your tenant admin mints a service credential in the MixShift admin console, or we set one up with you. Read-only by default, revocable at any time.
Mint a token
Exchange the credential for a short-lived bearer token with a standard OAuth client_credentials grant. About an hour of life; re-mint on a 401.
Call anything
SQL against your warehouse, the /v1 data plane, or a cataloged operation against the SP-API or Ads API. Same token, same gateway.
curl -sS https://mcp.mixshift.io/oauth/token \
-H 'Content-Type: application/json' \
-d '{"grant_type":"client_credentials",
"client_id":"svc_abc123...",
"client_secret":"..."}'
{ "access_token": "eyJ...", "expires_in": 3600 }curl -sS https://mcp.mixshift.io/api/query \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"sql":"SELECT campaignName, SUM(cost) AS spend
FROM campaign WHERE SellerID = ?
GROUP BY 1","params":[12345]}'
{ "ok": true, "rows": [ ... ], "rowCount": 42, "durationMs": 412 }What people are building on it
Not demos. These run today, on the same credential flow you saw above.
A featured-offer check that runs before you wake up
Our own account team runs a scheduled Claude task on a service credential. Every morning it batch-checks featured-offer pricing across a client catalog through the SP-API pricing surface and posts a summary of any ASINs that lost the featured offer. No dashboard, no manual pull; the schedule holds the credential and the platform does the rest.
The warehouse, synced into their own stack
An agency pages yesterday’s rows out of their MixShift warehouse every night with /api/query and lands them in their own database, feeding the BI dashboards they already had. The credential lives on their scheduler; there is no MixShift UI in the loop at all.
A product built on the /v1 data plane
Helm’s retail analytics reads accounts, daily sales and traffic, and Search Query Performance through the versioned /v1 endpoints: OAuth consent, scoped read-only tokens, cursor pagination. Their product, our plumbing.
{
"days": [
{ "date": "2026-07-01",
"sales": 48210.55,
"orders": 1093,
"currency": "USD" },
...
]
}Their own tools, straight on the REST API
The team at Ecommerce Wala builds tools for the brands they manage directly against the API, no MCP in the middle. Same credential, same gateway; the MCP stays available for the days they’d rather ask Claude.
Your builds on the left. Your data on the right.

One OAuth 2.0 gateway with per-credential scopes sits between your builds and the data. Whatever you build, it authenticates once and reaches your warehouse, the Ads API, and SP-API retail through the same contract.
Everything behind one gateway
Warehouse API
Read-only SQL on your own tenant database, plus contract-stable /v1 endpoints. Isolation is structural: your credential resolves to your database and nothing else.
Live Amazon passthrough
A published catalog of operations against the SP-API and Ads API, listed by the gateway itself. Reads across the board, plus audited writes for campaigns, bids, budgets, keywords, and negatives.
Brand memory
The part that knows why the numbers moved. Read the brand context your team maintains, read the change log of what happened, and append the launches, promotions, and stockouts that explain a move.
MCP server
The same gateway speaks the Model Context Protocol over streamable HTTP, so your AI tools can query your warehouse and act on your accounts in plain language.
Intelligence
MixShift Intelligence: finished reads served as data. Attribution today (why sales and ad results moved, lost sales, the monthly read); Forecasting joins the same catalog: a readiness check for whether a merchant has the history to support one, the forecast baseline, and a report-month tracker.
Skip the developer applications
Calling the Ads API and SP-API yourself means two separate developer registrations, security reviews, and role approvals before your first request. On the Builder Platform there is nothing to apply for: your accounts are already connected, so you start building today.
No registrations
No Ads API developer application. No SP-API security review. No role approvals. We already hold them, and you build on our registered application.
Already authorized
The seller and advertiser authorizations for your accounts already exist on MixShift. A new build reuses them the moment your credential is minted.
No token plumbing
Login-with-Amazon token minting, refresh, and regional routing all happen server-side. You hold one credential and call one gateway.
Safe by default. Audited when it acts.
Dry-run writes
Every write validates, snapshots current state, and returns a preview. Nothing reaches Amazon without an explicit commit.
Scoped credentials
Read scopes per domain; the write scope is opt-in per credential. Rotate or revoke any credential at any time.
Audit trail
Committed writes are capped per call and logged with the pre-write snapshot, so every change is attributable and reviewable.
Your data only
A credential resolves server-side to your own tenant database over a read-only connection. Isolation is structural, not a filter.
Published limits
240 requests per minute per credential, 50,000 rows and 10 MB per response, 120 second query ceiling. Real numbers, documented.
Latest platform releases
Enter your own forecast corrections with the corrections:write scope
You can now enter your own forecast corrections, such as a month's sales, ad spend or budget, with the new corrections:write scope. Corrections are saved under your name in the same place the forecasting app reads, so a correction made in one place shows up in the other. Interactive sign-ins have the scope by default, and a tenant admin can grant it to a service credential.
The forecast baseline is computed when nothing is published
The forecast baseline request, FCT-BASELINE-01, now answers for merchants with enough sales history even when no forecast has been published for them. MixShift computes a revenue baseline from your warehouse data with the same engine the forecasting app uses and labels it as computed. A published forecast always takes priority, and the request still says plainly when there is not enough history.
The published forecast baseline and the report-month tracker are served as data
Two more Forecasting requests join the readiness check from September 18, and both read the forecast the MixShift forecasting app publishes, with its users' corrections applied. The baseline returns the model, its monthly expectations and 95% ranges, the measured backtest, and what the forecast was trained on, for a merchant or one of its sub-brands, in revenue or units. The report-month tracker returns the forecast figures for a single month in the shape the monthly report reads: the year to date, what the model forecast before the month closed, what the current model projects for it, and the months still to come. Each says how old the published copy is, and when no forecast is published, or it was withdrawn or is below the history floor, the answer says so instead of guessing. Both run on the same Intelligence catalog, access, and metering as every other request, and Intelligence is open to every account by default.
Create and manage Amazon Marketing Cloud audiences
Create, list, read, fix, and delete Amazon Marketing Cloud audiences through the platform, activated on a DSP advertiser or a sponsored-ads account. Audiences are the write side of AMC, so they need Ads write access and follow the same preview-then-commit pattern as every other change: a create previews first, and checks refuse what Amazon would only reject after a run, such as a refresh outside the allowed range, date arithmetic the clean room does not accept, or a query that reads a paid dataset the instance does not have. Only a failed audience can be fixed or deleted; one that succeeded is final.
Read a seller's live promotions from Amazon
Read a seller's own promotions live: deals, coupons, price discounts, and basket-building offers. Search them by status, type, product, or date, open one for its schedule, budget, discount, and any problems Amazon has flagged, and page through the products it covers. Read-only, and for seller accounts only; it runs on the authorization your seller accounts already granted MixShift.
Claude and ChatGPT connectors get the same access as the plugin
Connecting MixShift from claude.ai, Claude Desktop, or ChatGPT now gives the connector the same access as signing in to the MixShift plugin: both are your own login reaching your own account. On top of the warehouse and live Amazon reads, a connector can now read brand context and the brand change log, add to the change log, retire or restore a brand, run MixShift Intelligence requests, and make Ads and listing changes. The consent screen names the changes it can make before you approve. The safety rails are the same as in the plugin: Ads writes default to a dry-run preview and are audit-logged, and a listing change previews first and commits only the exact change set you approved. A connector added before this change keeps the read-only access it was approved with; remove it and add it again to get the full set. Service credentials and partner apps still hold only the scopes granted to them.
Retire a brand your team no longer works on, and restore it any time
A brand your team has stopped working on can now be retired for everyone on the account, and restored later. Retiring deletes nothing: the brand keeps its context docs, their revision history, and its change log, and reports and warehouse data are untouched. What changes is its lifecycle state. Every brand in the brand context listing now carries one (active or retired, with when, by whom, and through which surface it last changed), so an integration can tell a retired brand from a live one. Retired brands stay listed by default, marked retired rather than dropped: the listing can be asked for active brands only, and the /v1 listing always returns every brand. Retiring and restoring go through a REST endpoint or the matching MCP tool with the context read and write scopes, and each change also lands on the brand change log.
Common questions
Start building
The data is already pulled, normalized, and waiting. One credential stands between you and your first query.