CardDeals Gift-card deals API

The Gift-card deals API from CardDeals — 3 operation(s) for gift-card deals.

Operations 3

GET /v1/deals/search Search current gift-card deals #
GET /v1/deals/lookup Look up multiple gift-card brands #
GET /v1/deals/brands/{brand} Get current deals for one brand #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/carddeals-co:carddeals-co-gift-card-deals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

carddeals-co-gift-card-deals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CardDeals Public Deal Gift-card deals API
  version: 1.0.0
  description: Anonymous, read-only access to current U.S. gift-card discounts. CardDeals may earn a commission from third-party purchase links. Prices, availability, and seller terms can change; recheck before purchase.
  contact:
    name: CardDeals Support
    url: https://carddeals.co/contact
    email: support@carddeals.co
  license:
    name: CardDeals API Terms
    url: https://carddeals.co/terms
servers:
- url: https://catalog.carddeals.co
tags:
- name: Gift-card deals
paths:
  /v1/deals/search:
    get:
      operationId: searchGiftCardDeals
      summary: Search current gift-card deals
      description: Search by brand text or category. Results contain current provider links but do not execute a purchase.
      tags:
      - Gift-card deals
      parameters:
      - name: q
        in: query
        schema:
          type: string
          maxLength: 100
        description: Brand or merchant text.
      - name: category
        in: query
        schema:
          type: string
          maxLength: 80
        description: CardDeals category slug.
      - name: min_discount
        in: query
        schema:
          type: number
          minimum: 0
          maximum: 100
          default: 0
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 10
          default: 5
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - best_discount
          - name
          default: best_discount
      responses:
        '200':
          description: Matching live deal products.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimited'
  /v1/deals/lookup:
    get:
      operationId: lookupGiftCardDeals
      summary: Look up multiple gift-card brands
      tags:
      - Gift-card deals
      parameters:
      - name: ids
        in: query
        required: true
        description: Comma-separated CardDeals product IDs or exact brand slugs; maximum 10.
        schema:
          type: string
          maxLength: 1200
      responses:
        '200':
          description: Resolved deal products and unknown IDs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimited'
  /v1/deals/brands/{brand}:
    get:
      operationId: getGiftCardDeals
      summary: Get current deals for one brand
      tags:
      - Gift-card deals
      parameters:
      - name: brand
        in: path
        required: true
        description: Exact brand slug, CardDeals product ID, or exact brand name.
        schema:
          type: string
          minLength: 1
          maxLength: 120
      responses:
        '200':
          description: The current product and provider deals, or a null product if unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    RateLimited:
      description: Anonymous rate limit exceeded.
      headers:
        Retry-After:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    SearchResponse:
      type: object
      required:
      - schema_version
      - as_of
      - currency
      - affiliate_disclosure
      - freshness_notice
      - query
      - total
      - products
      properties:
        schema_version:
          type: string
          example: 1.0.0
        as_of:
          type: string
          format: date-time
        currency:
          type: string
          enum:
          - USD
        affiliate_disclosure:
          type: string
          example: CardDeals may earn a commission when a purchase is made through a third-party provider link.
        freshness_notice:
          type: string
          example: Gift-card discounts, inventory, and seller terms can change. Recheck the destination before purchasing.
        query:
          type: object
          required:
          - text
          - category
          - min_discount_percent
          - limit
          - sort
          properties:
            text:
              type:
              - string
              - 'null'
            category:
              type:
              - string
              - 'null'
            min_discount_percent:
              type: number
            limit:
              type: integer
            sort:
              type: string
              enum:
              - best_discount
              - name
        total:
          type: integer
          minimum: 0
        products:
          type: array
          items:
            $ref: '#/components/schemas/GiftCardDealProduct'
    GiftCardDealProduct:
      type: object
      required:
      - product_id
      - name
      - slug
      - canonical_url
      - base_domain
      - category
      - best_discount_percent
      - carddeals_inventory_status
      - deals
      properties:
        product_id:
          type: string
          example: brand:starbucks
        name:
          type: string
          example: Starbucks
        slug:
          type: string
          example: starbucks
        canonical_url:
          type: string
          format: uri
        base_domain:
          type:
          - string
          - 'null'
        category:
          oneOf:
          - type: object
            required:
            - name
            - slug
            properties:
              name:
                type: string
              slug:
                type: string
          - type: 'null'
        best_discount_percent:
          type: number
          minimum: 0
          maximum: 100
        carddeals_inventory_status:
          type: string
          enum:
          - included
          - unavailable
        deals:
          type: array
          items:
            $ref: '#/components/schemas/ProviderDeal'
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: string
    ProductResponse:
      type: object
      required:
      - schema_version
      - as_of
      - currency
      - affiliate_disclosure
      - freshness_notice
      - product
      properties:
        schema_version:
          type: string
          example: 1.0.0
        as_of:
          type: string
          format: date-time
        currency:
          type: string
          enum:
          - USD
        affiliate_disclosure:
          type: string
          example: CardDeals may earn a commission when a purchase is made through a third-party provider link.
        freshness_notice:
          type: string
          example: Gift-card discounts, inventory, and seller terms can change. Recheck the destination before purchasing.
        product:
          oneOf:
          - $ref: '#/components/schemas/GiftCardDealProduct'
          - type: 'null'
        message:
          type: string
    ProviderDeal:
      type: object
      required:
      - deal_id
      - provider_name
      - provider_slug
      - discount_percent
      - in_stock
      - fetched_at
      - purchase_url
      - variant
      - variant_label
      - coupon
      - conditions
      - seller_terms
      - relationship
      - disclosure
      - id_verification_required
      properties:
        deal_id:
          type: string
          example: offer:starbucks:cardcash:online
        provider_name:
          type: string
          example: CardCash
        provider_slug:
          type: string
          example: cardcash
        discount_percent:
          type: number
          minimum: 0
          maximum: 100
        in_stock:
          type: boolean
          enum:
          - true
        fetched_at:
          type:
          - string
          - 'null'
          format: date-time
        purchase_url:
          type: string
          format: uri
          description: Third-party deals link to a CardDeals click-through that redirects to the provider's current link.
        variant:
          type:
          - string
          - 'null'
        variant_label:
          type:
          - string
          - 'null'
        coupon:
          oneOf:
          - type: object
            required:
            - code
            - label
            - expiration
            properties:
              code:
                type: string
              label:
                type: string
              expiration:
                type: string
          - type: 'null'
        conditions:
          type: array
          items:
            type: string
        seller_terms:
          type: object
          required:
          - reported_guarantee_days
          - note
          properties:
            reported_guarantee_days:
              type:
              - integer
              - 'null'
              minimum: 1
            note:
              type: string
        relationship:
          type: string
          enum:
          - affiliate
          - direct
        disclosure:
          type: string
        id_verification_required:
          type: boolean
          description: The seller may hold the order until the buyer passes an identity check.
        listings:
          type: array
          items:
            type: object
            required:
            - id
            - balance
            - price
            - discount_percent
            - currency
            - purchase_url
            properties:
              id:
                type: string
              balance:
                type: number
                minimum: 0
              price:
                type: number
                minimum: 0
              discount_percent:
                type: number
                minimum: 0
                maximum: 100
              currency:
                type: string
                enum:
                - USD
              purchase_url:
                type: string
                format: uri
    LookupResponse:
      type: object
      required:
      - schema_version
      - as_of
      - currency
      - affiliate_disclosure
      - freshness_notice
      - products
      - not_found
      properties:
        schema_version:
          type: string
          example: 1.0.0
        as_of:
          type: string
          format: date-time
        currency:
          type: string
          enum:
          - USD
        affiliate_disclosure:
          type: string
          example: CardDeals may earn a commission when a purchase is made through a third-party provider link.
        freshness_notice:
          type: string
          example: Gift-card discounts, inventory, and seller terms can change. Recheck the destination before purchasing.
        products:
          type: array
          items:
            $ref: '#/components/schemas/GiftCardDealProduct'
        not_found:
          type: array
          items:
            type: string