loader
Home Stores
Add New Store Blog
For AI agents

Give your assistant real referral codes

When someone asks their AI assistant “do you have a referral code for Wise?”, a language model can only guess. GiveRefer’s public API answers from a live, community-submitted catalogue of 700+ brands — codes ranked by real click counts, with the bonus, the steps, and the countries each program covers.

Free, read-only, and unauthenticated. There is no API key to request.

Base URL https://www.giverefer.com/api

Three ways to connect

Agent skill

A plain-text instruction file any assistant can install. It tells the agent how to resolve a brand, fetch the codes, and — just as importantly — what never to do, such as inventing a code when the lookup comes back empty.

Install it

Direct API

Eleven GET endpoints, JSON in and out, described by an OpenAPI 3.1 spec you can hand straight to a tool-calling agent or an API client.

See the endpoints

ReferralGPT

The same data as a custom GPT, if ChatGPT is where you already work. No installation beyond opening it.

Open ReferralGPT

Install the skill

A skill is two markdown files. Save them into wherever your assistant reads skills from, keeping the folder structure, and it will pick the skill up the next time someone asks about a referral code.

Or fetch both from a terminal:

mkdir -p giverefer-referral-finder/reference
curl -o giverefer-referral-finder/SKILL.md https://www.giverefer.com/agents/skill.md
curl -o giverefer-referral-finder/reference/endpoints.md https://www.giverefer.com/agents/endpoints.md

A registry listing is on the way. Until then these files are the canonical copy, and they are regenerated whenever the API changes.

Endpoints

All GET, all unauthenticated, all relative to https://www.giverefer.com/api. The OpenAPI 3.1 spec is the authoritative contract — where this table and the spec disagree, the spec wins.

Referral lookup

Endpoint Returns
/referral/search?brand={name} One store: brand, slug, domain, bonus, tagline, description, category, and the GiveRefer page URL. Exact match on slug, name or title — not a fuzzy search.
/referral/search?domain={website} The same record, resolved from the brand’s own website instead of its name. A full URL is accepted and normalised. Use this when you have the site but not the brand name.
/referral/{slug}/top-clicked-codes The 5 most-clicked codes, each with its lifetime click count and last-updated time.
/referral/{slug}/latest-codes The 5 most recently updated codes, same shape.
/referral/{slug} Full detail: about text, countries served, structured how-it-works steps, key features, FAQs, headline stats, referral link pattern.
/referral/suggest?intent={text} Brand suggestions for an open-ended intent such as "food delivery" or "money transfer".

Discovery

Endpoint Returns
/stores/search?q={text} Fuzzy, relevance-ranked store search. The fallback when an exact brand lookup returns 404.
/popular-referrals A curated list of popular referral programs.
/stores/popular Up to 10 stores ranked by page views.
/stores/trending Up to 10 most recently updated stores.

Taxonomy

Endpoint Returns
/categories Every category, with id, name and slug.
/countries Every country, with id, name and short name.

Things worth knowing before you build

  • A code can be a code or a link. The code field is sometimes a literal string to type at signup and sometimes a full invite URL. Check for an http prefix before telling a user what to do with it.
  • An empty code list is not an error. A brand can be listed with zero active codes. That comes back as a 200 with an empty array, not a 404. It is a real answer: say the brand is listed but has nothing active right now.
  • Brand lookup is exact, not fuzzy — domain lookup is better. ?brand= matches the slug, name or title exactly. If you know the website, use ?domain= instead: it survives brands whose display name is not what the user typed. On a 404, fall back to /stores/search before concluding a brand is not listed.
  • Responses are cached for up to an hour. Codes are also user-submitted and unverified. Do not present them as guaranteed to work.
  • Errors are JSON. Including 429, which carries both a Retry-After header and a retry_after field. If you are rate limited, say so — do not fall back to answering from memory.

Building something with this?

Integration questions, a use case the endpoints do not cover, or a brand you would like listed — we would like to hear about it.

[email protected]
telegram