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
Tag campaigns, ad groups, keywords and targets, shared across every MixShift surface
Put short tags such as brand, competitor or do-not-touch on advertising entities so you can find them again, filter by them, act on them in bulk, and key automation off them. Tags belong to your account, not to one app: the MixShift bid engine, the plugin, your own agent and the API read and write the same tags. Apply or remove tags on up to 2,000 entities in one atomic change, archive a tag without losing its assignments, and undo any change from its log. Reads need ads:read and changes also need context:write; tags never change anything on Amazon.
Every failure says whose problem it is and whether a retry can help
Failed calls to Amazon now carry source (fix your request, the account owner acts, Amazon declined this request, Amazon is briefly unavailable, or ours to fix), retryable (whether re-sending the same call can ever succeed), the verbatim words from Amazon when Amazon said no, and, where there is one, a concrete fix. Requests we reject before they reach Amazon, such as an unknown operation id or a malformed body, now return 400 invalid_request instead of 500 unknown, and MCP tool results that failed are flagged as errors. Branch on kind and retryable, not on HTTP status.
Read FBA inbound plans with tracking, boxes, pallets and carrier
The newer Fulfillment Inbound API (version 2024-03-20) is now in the catalog, read-only: list inbound plans, then for each shipment read its carrier tracking (a tracking id per box for small parcel, the PRO and bill of lading for freight), its items, its boxes with the case-pack template they were packed with, pallets, the carrier, and the placement fees. It replaces the transport-details call Amazon removed in January 2025, and it runs on the authorization your seller accounts already granted MixShift.
When lost sales cannot be read, the result says so instead of failing
When the daily sales and inventory history behind lost sales cannot be read for a run, because it took too long or is too large to read in one run, an Intelligence request that includes lost sales still completes. Lost sales is left out of the whole run, never priced as zero for one period, and the result's limitations say so in one plain sentence, so every other figure still arrives. A run cut short by time is not saved, so retrying later may bring lost sales back; a size verdict is saved, so retrying will not.
Readiness and the forecast baseline answer for a brand inside an account
When one seller account carries several brands, define a sub-brand once by the product and campaign labels that select it, then ask the readiness check and the forecast baseline about that brand alone. Its forecast, corrections and budget are kept apart from the account's own. Sub-brand definitions are listed and created through the forecasting scopes endpoint, under a person's own corrections:write scope.
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.
Common questions
Start building
The data is already pulled, normalized, and waiting. One credential stands between you and your first query.