aov-post-purchase-upsell
🔌 Store API
Overview

Store API

Read your store's offer and analytics data over plain HTTPS. Use it to feed a dashboard, a spreadsheet, a warehouse job, or any integration that is not an AI client.

Everything the MCP server can read is here too — the same eleven capabilities, one endpoint each, the same payloads.

The API is included in every plan, including Free.

In the app this is the Public API access card, under Settings → AOV MCP — and the base URL keeps that wording too. "Store API" is what the surface is called across the AOV help centre; the card and the path are the same thing.

Base URL

https://aov-post-purchase.firebaseapp.com/public-api/v1

Read resources live under /data.

Four things to know before you write a client

One token, one store. You send an access token as an HTTP Bearer credential. The token both authenticates the caller and selects the store, so no shop id ever appears on a path. A leaked token exposes exactly one store, and only for reading. See Authentication.

Read-only, and that is structural. Every endpoint is a GET. There is no write surface to guard, no idempotency key to manage, and nothing a caller can do to your store's data.

One envelope, always. Success and failure share a shape, so a client parses one thing. See Errors.

Date ranges are capped at 90 days. Ask for more and the call is refused, not silently trimmed. Omit the dates and you get the last 30 days. See Date ranges.

Response envelope

{ "success": true, "data": { "...": "..." } }
{ "success": false, "data": null, "error": "Date range cannot exceed 90 days" }

The eleven endpoints

All paths are relative to the base URL.

Offers

MethodPathReturns
GET/data/offersList offers
GET/data/offers/by-priorityOffers in display order
GET/data/offers/countCounts per placement and status
GET/data/offer/{id}One offer's setup
GET/data/offer/{id}/stagesWhat that offer sells

Analytics

MethodPathReturns
GET/data/analytics/summaryShop-wide roll-up for a range
GET/data/analytics/statsPer-placement rows for a range
GET/data/analytics/topOffers ranked by revenue
GET/data/analytics/coverageWhich placements have an active offer
GET/data/analytics/lifetimeAll-time totals

Products

MethodPathReturns
GET/data/products/recommendationsUpsell suggestions

First call

curl -H "Authorization: Bearer $AOV_TOKEN" \
  https://aov-post-purchase.firebaseapp.com/public-api/v1/data/offers
{
  "success": true,
  "data": {
    "offers": [ "..." ],
    "total": 12,
    "hasMore": false,
    "currency": "USD",
    "shopDomain": "acme.myshopify.com"
  }
}

Full walkthrough: Quickstart.

Working safely

⚠️
Treat the token like a password. Never put one in a URL, a query string, a screenshot, a log line, or a client-side bundle. It goes in the Authorization header, from a secret store, on a server you control.

If a token is exposed, rotate it in Settings → AOV MCP → Public API access. The old token stops working immediately.

Related

Product
Install AppWebsiteAvada Apps
Resources
DocumentationFAQPrivacy Policy
Company
Avada GroupContact
© 2026 Avada Group. All rights reserved.