API Terms

Last updated: September, 2026

These terms cover use of the Pepesto API on the self-serve plans — Starter and Growth. They sit alongside our Terms of Service and Privacy Policy.

The Partner plan is governed by a separate written agreement. If your use case is listed under What needs a Partner agreement below, talk to us before you build — we can almost certainly support it, just not through self-serve.

What you can do

Building a product on top of the API is the intended use. Specifically, all of the following are permitted:

What you can’t do on Starter or Growth

One thing needs a Partner agreement outside what the self-serve plans license.

Reselling the API or the data. Reselling API access, or redistributing the data as a standalone feed or dataset, isn’t covered by Starter or Growth. It’s something we support — we just need to be in the loop and agree the terms with you first. That’s what the Partner plan is for, so talk to us.

Where the data comes from

Pepesto provides access to publicly accessible product and pricing information. We do not have retailer-specific agreements covering EU database rights or related reuse rights.

You are responsible for ensuring that your own use, display, redistribution, or commercial exploitation of the data complies with applicable laws, retailer terms, and third-party rights. If a retailer objects to its data appearing in your app, responsibility for that downstream use sits with you as the app operator.

Caching and refresh

Cache aggressively. It’s cheaper for you and easier on the API. The cadences that matter:

EndpointCache forWhy
/parseUp to 168 hours (7 days), then refreshOur models change; older output drifts from what we’d return today
/productsMatch our daily refreshPrices update daily on our side. Caching longer means showing stale prices to your users
/catalogAggressively — at most one call per day per supermarketThis limit is in the OpenAPI spec. A full catalog is a heavy call and changes once a day

Storing historical prices

You may retain historical pricing on your own side for up to 3 days. Keeping it longer needs our consent — ask if your use case requires longer retention.

Before you build your own price history, note that the API serves history natively via the as_of_date parameter. That’s usually less work than warehousing it yourself, and it stays correct as our data improves.

Recipes

Permanently licensed recipes work differently from the live data above, and more simply:

See the Recipe API for what a licensed recipe includes, and the pricing page for cost.

What needs a Partner agreement

Come to us before building if you want to:

These are use cases we support. They’re handled through the Partner plan, which comes with a full contract — a data licence, a DPA, redistribution rights, and whatever else your use case needs.

Your API key

Save your key when you get it. We show it once and never again.

You obtain the key by calling /link with the email address you used at checkout — the endpoint documentation walks through it. The response contains the key in full. That response is the only time you’ll see it, so write it somewhere safe before you close the terminal.

The key identifies you and draws down your credits. Keep it private, don’t ship it in client-side code, and tell us promptly if it’s exposed. Usage on your key is your responsibility, including usage by anyone you share it with.

Plans, credits and refunds

Starter is a one-off credit pack and Growth is a monthly subscription, both billed through Stripe. Starter is a single payment of €29.90 with no commitment and no recurring charge. Growth is €79 a month, with a commitment for at least six months.

Every payment becomes credits on your API key, and credits don’t expire. Any unspent credits stay on the key until you use them. On Growth, whatever you don’t spend in a month is still there next month.

We don’t refund credits once you’ve started calling the API. Usage is what you bought, and once calls have been made against a pack or a month’s credits there’s nothing left to return. If something has gone wrong, talk to us.

Top-ups are a Growth feature. There are no top-ups on Starter; when the pack runs out, move up to Growth. On Growth, top-ups run alongside an active plan: if a month’s credits go early, buy a top-up at your plan’s rate and carry on, and if you have cancelled, start the plan again first.

We do offer discounts, including on volume and for new builds. Ask. For a volume discount, come with the usage — we price it off what you’re actually calling, not projected volume.

On the Growth plan, you pay €79 a month for at least six months. After the six months the plan carries on month to month, and you can cancel it yourself from the Stripe customer portal. The cancellation takes effect at the end of the billing cycle you have already paid for, and we don’t refund the unused part of that cycle because its credits are already on your key. Those credits stay there after the plan ends.

What each plan can call

Every plan reaches every supermarket and every country, and there are no per-chain fees. /catalog is the one exception to “everything is everywhere”.

/catalog needs Growth or above when called in full or with promo_only. Both forms return a supermarket’s data in bulk rather than answering a single question — one full /catalog request moves an entire chain’s product list. The preselected form, /catalog with product_urls for up to 50 products, is available on Starter. Starter also covers the rest: /parse, /oneshot, /products, /search, /suggest, /session, /mcheckout and /checkout.

Service availability

Keeping the API up is our business — our own product runs on it, and customers depending on it is the whole model. We treat downtime accordingly.

If you need a contractual uptime commitment with defined targets and remedies, that comes with the Partner plan.

Suspension

We may suspend API access for use that breaches these terms — the restriction under What you can’t do on Starter or Growth is the one that matters — or for use that threatens the stability of the service for other customers. Where circumstances allow, we’ll get in touch first.

Changes to these terms

We may update these terms as the product develops. The date at the top of this page changes when we do, so check back here for the current version.

Questions

If you’re unsure whether your use case fits, ask before you build rather than after — support@pepesto.com.