{
  "x402Version": 2,
  "id": 26886,
  "slug": "26886",
  "resource": "https://x402.spendthebits.com/x402/giftcards/quote/",
  "description": "Buy a gift card from ~550 US brands (Amazon, Target, DoorDash, Uber ...) and more countries; the card is issued to the agent's owner (registered STB agent key with gift cards turned on required). This call prices one card for a $0.02 USDC fee on Base and returns the exact USDC total, a pay_url and a claim token. Find product ids and amounts with GET /x402/giftcards/catalog/?country=USA.",
  "type": "http",
  "serviceName": "SpendTheBits",
  "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791216118/bazaar-icons/a87c0b2db2119e58.png",
  "resourceType": "Beauty & Personal Care",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xCAB797230Aa7A9cAA2d6Da4AC8b2a06416225cA9",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "20000",
      "amountUsd": 0.02,
      "maxTimeoutSeconds": 120
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "properties": {
          "ask": {
            "type": "object"
          },
          "brand": {
            "type": "string"
          },
          "card_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "claim_token": {
            "description": "Secret for status_url; shown once",
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "delivery": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "face_value": {
            "description": "Card value in its own currency",
            "type": "string"
          },
          "includes": {
            "properties": {
              "bridge_fee_ceiling_usdc": {
                "type": "string"
              },
              "card_usdc": {
                "type": "string"
              },
              "service_fee_usdc": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "order_id": {
            "description": "Use it in pay_url / status_url",
            "type": "string"
          },
          "pay_by": {
            "description": "Unix time the quote lapses",
            "type": "integer"
          },
          "pay_to": {
            "description": "Per-order forwarder contract on Base",
            "type": "string"
          },
          "pay_url": {
            "description": "x402 URL that takes the payment",
            "type": "string"
          },
          "pricing_note": {
            "type": "string"
          },
          "redeemable_in": {
            "type": "string"
          },
          "referral": {
            "type": "object"
          },
          "spend_controls_hint": {
            "type": "string"
          },
          "status": {
            "description": "awaiting_payment, awaiting_owner, paid, completed, declined ...",
            "type": "string"
          },
          "status_url": {
            "description": "Poll with the X-Claim-Token header",
            "type": "string"
          },
          "total_usdc": {
            "description": "EXACT USDC to pay at pay_url, decimal string",
            "type": "string"
          },
          "typical_minutes": {
            "type": "integer"
          },
          "valid_until": {
            "description": "Provider validity date once issued; null until then"
          },
          "what_to_expect": {
            "type": "string"
          }
        },
        "required": [
          "order_id",
          "status",
          "brand",
          "face_value",
          "currency",
          "total_usdc",
          "includes",
          "pay_to",
          "pay_by",
          "typical_minutes",
          "what_to_expect",
          "valid_until"
        ],
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "amount": 10,
            "brand": "Amazon.com",
            "country": "USA",
            "product_id": "103188916708"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "brand": "Amazon.com",
            "card_url": "https://x402.spendthebits.com/@stb/cards/usa/amazon-com/10/",
            "claim_token": "ct_…",
            "currency": "USD",
            "delivery": "The card appears in the owner's STB app (Gift cards → My orders).",
            "face_value": "10.00",
            "includes": {
              "bridge_fee_ceiling_usdc": "0.014879",
              "card_usdc": "11.222121",
              "service_fee_usdc": "0.350000"
            },
            "order_id": "8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c",
            "pay_by": 1789934400,
            "pay_to": "0x9f272C290Dce7598134B5BAA11AA846DF1eAF4b1",
            "pay_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/pay/",
            "pricing_note": "The card provider's price includes its own spread, which is a larger share of small cards. Compare total_usdc with face_value before paying.",
            "redeemable_in": "USA",
            "spend_controls_hint": "Set your client's per-payment cap to at least $12 (e.g. @x402/fetch spendControls.maxAmountPerPayment).",
            "status": "awaiting_payment",
            "status_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/",
            "total_usdc": "11.587000",
            "typical_minutes": 5,
            "valid_until": null,
            "what_to_expect": "A card usually takes about 5 minutes after payment. Poll status_url with the claim token in the X-Claim-Token header; do not pay again."
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "description": "Face value in the card's own currency; a fixed-denomination card takes one of its listed denominations",
                    "exclusiveMinimum": 0,
                    "type": "number"
                  },
                  "brand": {
                    "description": "Optional brand name; only used to suggest real products when product_id is not found",
                    "maxLength": 80,
                    "type": "string"
                  },
                  "country": {
                    "description": "Catalogue country name, e.g. USA, Canada, UK",
                    "minLength": 1,
                    "type": "string"
                  },
                  "product_id": {
                    "description": "Product id from GET /x402/giftcards/catalog/?country=<country>",
                    "minLength": 1,
                    "type": "string"
                  },
                  "ref": {
                    "description": "Optional referrer STB handle (@name) that earns part of the service fee",
                    "maxLength": 80,
                    "type": "string"
                  }
                },
                "required": [
                  "product_id",
                  "country",
                  "amount"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "ask": {
                    "type": "object"
                  },
                  "brand": {
                    "type": "string"
                  },
                  "card_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "claim_token": {
                    "description": "Secret for status_url; shown once",
                    "type": "string"
                  },
                  "currency": {
                    "type": "string"
                  },
                  "delivery": {
                    "type": "string"
                  },
                  "detail": {
                    "type": "string"
                  },
                  "face_value": {
                    "description": "Card value in its own currency",
                    "type": "string"
                  },
                  "includes": {
                    "properties": {
                      "bridge_fee_ceiling_usdc": {
                        "type": "string"
                      },
                      "card_usdc": {
                        "type": "string"
                      },
                      "service_fee_usdc": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "order_id": {
                    "description": "Use it in pay_url / status_url",
                    "type": "string"
                  },
                  "pay_by": {
                    "description": "Unix time the quote lapses",
                    "type": "integer"
                  },
                  "pay_to": {
                    "description": "Per-order forwarder contract on Base",
                    "type": "string"
                  },
                  "pay_url": {
                    "description": "x402 URL that takes the payment",
                    "type": "string"
                  },
                  "pricing_note": {
                    "type": "string"
                  },
                  "redeemable_in": {
                    "type": "string"
                  },
                  "referral": {
                    "type": "object"
                  },
                  "spend_controls_hint": {
                    "type": "string"
                  },
                  "status": {
                    "description": "awaiting_payment, awaiting_owner, paid, completed, declined ...",
                    "type": "string"
                  },
                  "status_url": {
                    "description": "Poll with the X-Claim-Token header",
                    "type": "string"
                  },
                  "total_usdc": {
                    "description": "EXACT USDC to pay at pay_url, decimal string",
                    "type": "string"
                  },
                  "typical_minutes": {
                    "type": "integer"
                  },
                  "valid_until": {
                    "description": "Provider validity date once issued; null until then"
                  },
                  "what_to_expect": {
                    "type": "string"
                  }
                },
                "required": [
                  "order_id",
                  "status",
                  "brand",
                  "face_value",
                  "currency",
                  "total_usdc",
                  "includes",
                  "pay_to",
                  "pay_by",
                  "typical_minutes",
                  "what_to_expect",
                  "valid_until"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "gift-cards",
    "shopping",
    "commerce",
    "payments",
    "usdc",
    "bazaar"
  ],
  "sourceHost": "x402.spendthebits.com",
  "lastUpdated": "2026-10-05T17:39:16.925Z",
  "quality": {
    "calls30d": 3,
    "uniquePayers30d": 2,
    "lastCalledAt": "2026-10-05T17:39:16.518Z"
  },
  "metadata": {
    "serviceName": "SpendTheBits",
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791216118/bazaar-icons/a87c0b2db2119e58.png",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "amount": 10,
              "brand": "Amazon.com",
              "country": "USA",
              "product_id": "103188916708"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "brand": "Amazon.com",
              "card_url": "https://x402.spendthebits.com/@stb/cards/usa/amazon-com/10/",
              "claim_token": "ct_…",
              "currency": "USD",
              "delivery": "The card appears in the owner's STB app (Gift cards → My orders).",
              "face_value": "10.00",
              "includes": {
                "bridge_fee_ceiling_usdc": "0.014879",
                "card_usdc": "11.222121",
                "service_fee_usdc": "0.350000"
              },
              "order_id": "8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c",
              "pay_by": 1789934400,
              "pay_to": "0x9f272C290Dce7598134B5BAA11AA846DF1eAF4b1",
              "pay_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/pay/",
              "pricing_note": "The card provider's price includes its own spread, which is a larger share of small cards. Compare total_usdc with face_value before paying.",
              "redeemable_in": "USA",
              "spend_controls_hint": "Set your client's per-payment cap to at least $12 (e.g. @x402/fetch spendControls.maxAmountPerPayment).",
              "status": "awaiting_payment",
              "status_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/",
              "total_usdc": "11.587000",
              "typical_minutes": 5,
              "valid_until": null,
              "what_to_expect": "A card usually takes about 5 minutes after payment. Poll status_url with the claim token in the X-Claim-Token header; do not pay again."
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "properties": {
                    "amount": {
                      "description": "Face value in the card's own currency; a fixed-denomination card takes one of its listed denominations",
                      "exclusiveMinimum": 0,
                      "type": "number"
                    },
                    "brand": {
                      "description": "Optional brand name; only used to suggest real products when product_id is not found",
                      "maxLength": 80,
                      "type": "string"
                    },
                    "country": {
                      "description": "Catalogue country name, e.g. USA, Canada, UK",
                      "minLength": 1,
                      "type": "string"
                    },
                    "product_id": {
                      "description": "Product id from GET /x402/giftcards/catalog/?country=<country>",
                      "minLength": 1,
                      "type": "string"
                    },
                    "ref": {
                      "description": "Optional referrer STB handle (@name) that earns part of the service fee",
                      "maxLength": 80,
                      "type": "string"
                    }
                  },
                  "required": [
                    "product_id",
                    "country",
                    "amount"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "ask": {
                      "type": "object"
                    },
                    "brand": {
                      "type": "string"
                    },
                    "card_url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "claim_token": {
                      "description": "Secret for status_url; shown once",
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "delivery": {
                      "type": "string"
                    },
                    "detail": {
                      "type": "string"
                    },
                    "face_value": {
                      "description": "Card value in its own currency",
                      "type": "string"
                    },
                    "includes": {
                      "properties": {
                        "bridge_fee_ceiling_usdc": {
                          "type": "string"
                        },
                        "card_usdc": {
                          "type": "string"
                        },
                        "service_fee_usdc": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "order_id": {
                      "description": "Use it in pay_url / status_url",
                      "type": "string"
                    },
                    "pay_by": {
                      "description": "Unix time the quote lapses",
                      "type": "integer"
                    },
                    "pay_to": {
                      "description": "Per-order forwarder contract on Base",
                      "type": "string"
                    },
                    "pay_url": {
                      "description": "x402 URL that takes the payment",
                      "type": "string"
                    },
                    "pricing_note": {
                      "type": "string"
                    },
                    "redeemable_in": {
                      "type": "string"
                    },
                    "referral": {
                      "type": "object"
                    },
                    "spend_controls_hint": {
                      "type": "string"
                    },
                    "status": {
                      "description": "awaiting_payment, awaiting_owner, paid, completed, declined ...",
                      "type": "string"
                    },
                    "status_url": {
                      "description": "Poll with the X-Claim-Token header",
                      "type": "string"
                    },
                    "total_usdc": {
                      "description": "EXACT USDC to pay at pay_url, decimal string",
                      "type": "string"
                    },
                    "typical_minutes": {
                      "type": "integer"
                    },
                    "valid_until": {
                      "description": "Provider validity date once issued; null until then"
                    },
                    "what_to_expect": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "order_id",
                    "status",
                    "brand",
                    "face_value",
                    "currency",
                    "total_usdc",
                    "includes",
                    "pay_to",
                    "pay_by",
                    "typical_minutes",
                    "what_to_expect",
                    "valid_until"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "x402.spendthebits.com",
    "manifest_name": "x402.spendthebits.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "brand": "Amazon.com",
    "card_url": "https://x402.spendthebits.com/@stb/cards/usa/amazon-com/10/",
    "claim_token": "ct_…",
    "currency": "USD",
    "delivery": "The card appears in the owner's STB app (Gift cards → My orders).",
    "face_value": "10.00",
    "includes": {
      "bridge_fee_ceiling_usdc": "0.014879",
      "card_usdc": "11.222121",
      "service_fee_usdc": "0.350000"
    },
    "order_id": "8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c",
    "pay_by": 1789934400,
    "pay_to": "0x9f272C290Dce7598134B5BAA11AA846DF1eAF4b1",
    "pay_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/pay/",
    "pricing_note": "The card provider's price includes its own spread, which is a larger share of small cards. Compare total_usdc with face_value before paying.",
    "redeemable_in": "USA",
    "spend_controls_hint": "Set your client's per-payment cap to at least $12 (e.g. @x402/fetch spendControls.maxAmountPerPayment).",
    "status": "awaiting_payment",
    "status_url": "https://x402.spendthebits.com/x402/giftcards/orders/8a3f5b0e-2c4d-4e1f-9b7a-1d2e3f4a5b6c/",
    "total_usdc": "11.587000",
    "typical_minutes": 5,
    "valid_until": null,
    "what_to_expect": "A card usually takes about 5 minutes after payment. Poll status_url with the claim token in the X-Claim-Token header; do not pay again."
  }
}