Guide
Nuira API: the MCP server for AI assistants and automations
Reference for Nuira's read-only API at api.nuira.ai/mcp, used by Claude, ChatGPT, Zapier and Slack. Covers authentication, requests, tools and limits.
Updated: 15 October 2026
Nuira has a single read-only API: a Model Context Protocol (MCP) server. Claude, ChatGPT, Slack and Zapier connect to it, and you can call it from your own code. Each tool returns the same figures the Nuira dashboard shows, scoped to one brand.
Endpoint
| URL | https://api.nuira.ai/mcp |
| Transport | MCP Streamable HTTP, stateless, with JSON responses (POST) |
| Protocol | JSON-RPC 2.0. Supports initialize, tools/list, tools/call, prompts/list, prompts/get, resources/list and resources/read |
| Rate limit | 60 requests per minute per connection. Over the limit the API answers 429 with Retry-After: 60 |
Send Content-Type: application/json and
Accept: application/json, text/event-stream. The server keeps no session, so a
single tools/call request works on its own, without an initialize first.
Authentication
Requests carry Authorization: Bearer <token>. There are two kinds of token.
OAuth 2.1 (assistants and integrations).
https://api.nuira.ai/.well-known/oauth-protected-resource/mcp names the
authorization server. Its metadata lists the authorize, token and registration
endpoints. Clients can register themselves through dynamic client registration.
The flow is the authorization code grant with PKCE (S256), and refresh tokens
are issued. During sign-in the operator chooses which Nuira project the
connection may read, and the grant is bound to that project.
Personal tokens (scripts). Create one under Settings → AI assistants in
Nuira. Tokens start with nuira_mcp_, are shown once, and read the project they
were created in.
A request with no valid token gets 401 and a WWW-Authenticate challenge that
points at the metadata above. A valid token whose grant was never approved, or
was revoked, gets 403.
Example request
curl https://api.nuira.ai/mcp \
-H "Authorization: Bearer $NUIRA_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_summary","arguments":{"from":"2026-09-01","to":"2026-09-30"}}}'
The result is a JSON-RPC response. The tool’s output is JSON in
result.content[0].text, and result.isError is true when the tool refused
the arguments (for example a date range that ends after today).
Tools
Every tool is read-only. Tools that read a period take optional from and to
arguments: inclusive YYYY-MM-DD dates, both or neither, never after today.
Without them the tool reads the last 30 complete days in the store’s own time
zone. Money comes back in the store’s currency, which every result names.
| Tool | Returns |
|---|---|
get_data_status |
Which sources are connected and how fresh their data is. Call it first: an empty source means missing data, not zero sales |
get_summary |
Revenue, ad spend, contribution and blended ROAS, with the previous period, new and returning customers and conversion rate |
get_sales_breakdown |
Shopify’s own sales lines: gross sales, discounts, returns, net sales, shipping and taxes |
get_contribution_breakdown |
Net revenue down to contribution margin: cost of goods, gross profit and ad spend |
get_margin_trend |
Gross margin and margin after ad spend, month by month |
get_series |
Daily revenue and spend |
get_revenue_by_hour |
Revenue per hour of the day over the last 7 days |
get_channels |
Spend, revenue and ROAS per channel (Meta, Google Ads, Klaviyo) |
get_sales |
Sales by campaign and channel under Nuira’s own attribution model |
get_money_flow |
Which channels are credited with revenue on which products |
get_email_performance |
Klaviyo flows and campaigns: revenue, sends, open and click rates |
get_product_performance |
Catalogue revenue, units, average order value, gross margin and out-of-stock SKUs |
get_top_products |
The ten products with the most revenue, with cost, profit and margin |
get_product_categories |
Revenue, units and margin per product category |
get_inventory_health |
Stock per SKU, banded by days of cover |
list_recommendations |
Open recommendations, ranked, with expected value and confidence |
list_insights |
Week-over-week changes that are still going on, most impactful first |
list_insight_episodes |
How a detected change unfolded day by day |
get_business_profile |
The brand’s stated margins and targets, and what Nuira knows about how it works |
get_knowledge_coverage |
How much Nuira knows about the business, per area |
get_fact_history |
How the figures Nuira holds have changed over time, with their sources |
get_vertical_benchmarks |
Typical margin and ROAS ranges for the store’s vertical |
get_connect_links |
A link per source to connect or reconnect it in Nuira |
tools/list returns each tool’s full JSON Schema and annotations. The server
also offers two resources (nuira://project/profile and
nuira://project/recommendations) and three prompts (weekly_review,
explain_margin and budget_check).
Zapier
Nuira’s Zapier integration is built on the tools above.
It has two triggers: New Recommendation reads list_recommendations, and
New Insight reads list_insights. It has two searches: Get Performance
Summary calls get_summary, and Get Product Performance calls
get_product_performance. It signs in with the OAuth flow described here.
Support
Write to support@nuira.ai about an integration problem, and to security@nuira.ai about a vulnerability.