Gift Card Granny APIgiftcardgranny.com ↗
Access Gift Card Granny's full catalog via API. Search merchants, browse categories, retrieve discounts, and fetch card details including denominations and ratings.
What is the Gift Card Granny API?
The Gift Card Granny API exposes 7 endpoints covering the site's full gift card catalog — from full-text merchant search to category browsing, discount rankings, and featured deals. search_gift_cards returns paginated merchant results with name, categories, types, and discount info. get_gift_card_detail adds denominations, star ratings, and review counts for any specific brand. Together these endpoints cover hundreds of retail brands.
curl -X GET 'https://api.parse.bot/scraper/45e00f31-3f3d-4f1e-a5fe-1b70bbdaca24/search_gift_cards?page=0&limit=10&query=coffee' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace giftcardgranny-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Gift Card Granny SDK — search, browse, detail, deals."""
from parse_apis.gift_card_granny_api import GiftCardGranny, BrandNotFound
gcg = GiftCardGranny()
# Search for coffee-related gift cards
for merchant in gcg.merchants.search(query="coffee", limit=5):
print(merchant.name, merchant.categories, merchant.max_cash_back_percentage)
# Get detailed info for a specific brand by slug
card = gcg.giftcards.get(brand_slug="target")
print(card.brand_slug, card.rating, card.denominations)
print(card.merchant.name, card.merchant.categories)
# List all categories and browse one
first_cat = gcg.categories.list(limit=1).first()
if first_cat:
print(first_cat.name, first_cat.count)
for merchant in first_cat.merchants(limit=3):
print(merchant.name, merchant.popular, merchant.discount_rank)
# Get currently discounted gift cards
for merchant in gcg.merchants.discounted(limit=3):
print(merchant.name, merchant.promo_discount_percentage, merchant.discount_rank)
# Get featured homepage deals
for deal in gcg.deals.list(limit=5):
print(deal.brand_slug, deal.discount, deal.url)
# Typed error handling for a non-existent brand
try:
gcg.giftcards.get(brand_slug="nonexistent-brand-xyz-12345")
except BrandNotFound as exc:
print(f"Brand not found: {exc.brand_slug}")
print("exercised: merchants.search / giftcards.get / categories.list / category.merchants / merchants.discounted / deals.list")
Full-text search over the gift card merchant index. Returns paginated results with merchant details including categories, types, discount info, and ranking. An empty query returns all available merchants. Each result includes a relativeUrl whose last path segment is the brand_slug for get_gift_card_detail.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed). |
| limit | integer | Number of results per page. |
| query | string | Search keyword (e.g., 'target', 'starbucks'). Omitting returns all available gift cards. |
{
"type": "object",
"fields": {
"hits": "array of merchant objects with name, relativeUrl, categories, types, discount info",
"page": "current page number (0-indexed)",
"nbHits": "total number of matching results",
"nbPages": "total number of pages"
},
"sample": {
"data": {
"hits": [
{
"name": "Target",
"types": [
"plastic",
"egift"
],
"popular": true,
"premium": true,
"categories": [
"Back to School",
"Birthday",
"Department Stores"
],
"merchantId": 48,
"relativeUrl": "/buy-gift-cards/target/",
"discount_rank": null,
"max_discount_percentage": 0,
"max_cash_back_percentage": 0,
"promo_discount_percentage": null
}
],
"page": 0,
"nbHits": 5,
"nbPages": 1
},
"status": "success"
}
}About the Gift Card Granny API
Searching and Browsing the Catalog
search_gift_cards accepts a query string (e.g., 'target', 'starbucks') plus optional page and limit params, and returns hits — an array of merchant objects — alongside nbHits and nbPages for pagination. Omitting the query returns the full catalog. Each hit includes a relativeUrl whose final path segment is the brand_slug, which feeds directly into other endpoints. browse_gift_cards_by_category filters the same index by category name — use list_all_categories first to retrieve the exact name strings and per-category merchant count values.
Card Detail and Denominations
get_gift_card_detail takes a brand_slug and returns denominations (an array of dollar-amount strings like ['$5', '$25', '$50']), rating, rating_count, a url pointing to the brand page, and a merchant object with full metadata from the search index including categories, types, and ranking signals. If a brand has no ratings yet, rating and rating_count come back as null.
Discounts and Featured Deals
get_discounted_gift_cards returns merchants sorted by discount_rank with active promo_discount_percentage values — useful for surfacing current promotions across the catalog. get_granny_deals fetches the homepage-featured offers, returning each deal's brand_slug, a discount string (e.g., '5%'), and the direct url. Both endpoints are paginated or single-response respectively, and require no query parameters to return results.
Card Activation
activate_card accepts a 16-digit card_number and 3-digit cvv and returns an html_response_preview of the activation result. This endpoint is specific to Gift Card Granny-issued cards and is unrelated to the catalog browsing endpoints.
The Gift Card Granny API is a managed, monitored endpoint for giftcardgranny.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when giftcardgranny.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official giftcardgranny.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a gift card comparison tool showing available denominations and ratings from
get_gift_card_detail - Surface current promotions in a deals newsletter using
get_granny_dealsandget_discounted_gift_cards - Populate a category browser by fetching all category names and counts from
list_all_categories - Track discount trends across retail brands by polling
get_discounted_gift_cardsand storingpromo_discount_percentageover time - Autocomplete a merchant search field using
search_gift_cardswith a livequeryparam - Filter gift card options by retailer type (e.g., 'Restaurants', 'Electronics') using
browse_gift_cards_by_category - Automate Gift Card Granny-issued card activation via
activate_cardusing stored card credentials
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Gift Card Granny have an official developer API?+
What does `get_gift_card_detail` return and how do I get the right brand_slug?+
denominations, rating, rating_count, url, and a merchant metadata object. The brand_slug comes from the last path segment of the relativeUrl field in any search_gift_cards result — for example, a relativeUrl of /gift-cards/target yields the slug target.Can I retrieve secondary market listings or resale prices for specific gift card denominations?+
Does pagination work the same way across all endpoints?+
page parameter and return nbHits and nbPages so you can iterate the full result set. get_granny_deals and list_all_categories are single-response endpoints with no pagination — they return all results in one call.Are individual user reviews or review text available for each merchant?+
get_gift_card_detail returns aggregate rating and rating_count values, but individual review text and reviewer metadata are not included. You can fork this API on Parse and revise it to add an endpoint that retrieves per-review content for a given brand.