5,000+ brands

Gift cards your agent can actually buy

One buy_giftcard call, delivered in seconds, under policy you control. Your agent picks a brand, spends real money within its caps, and pulls back an encrypted code it can read exactly once.

5,000+brands
190+countries
1API call
Secondsto deliver
Catalog

Brands agents reach for

Call list_brands to browse the live catalog, then buy by brand_id. A few of the brands agents request most, all payable in one call.

Amazon

The default reward and reimbursement card. Global storefronts, flexible denominations, redeemed almost anywhere.

Apple

App Store & iTunes credit for apps, subscriptions, iCloud storage and in-app purchases across the Apple ecosystem.

Steam

Wallet funds for games, DLC and in-game items. A go-to for agents topping up a gaming or testing account.

Walmart

Everyday retail across groceries, household and electronics, online and in thousands of US stores.

Netflix

Prepaid streaming credit that keeps a subscription funded without attaching a card to the account.

Uber

Credit for rides and Uber Eats, ideal for funding travel, logistics or delivery on behalf of a user.

DoorDash

Food and grocery delivery credit for the US and Canada, redeemable across the DoorDash marketplace.

Google Play

Android apps, games, subscriptions and Google service credit, added straight to a Play balance.

Xbox

Microsoft and Xbox store credit for games, Game Pass and in-game currency across console and PC.

Plus thousands more across retail, dining, travel and entertainment in 190+ countries. See the live catalog.

buy_giftcard

One call, fully governed

Purchasing is a two-step flow: buy_giftcard returns a task, and get_code releases the code once the purchase settles. Every call runs through the same policy engine, whether your agent speaks REST or MCP.

buy_giftcard.sh
# 1. Buy a $25 Amazon card (amount_minor = cents)
POST /v1/purchases
Authorization: Bearer $API_KEY
{
  "brand_id": "amazon",
  "amount_minor": 2500,
  "currency": "USD",
  "client_ref": "order-9f2a"
}

# -> task accepted, settling
{
  "task_id": "tsk_7Qk3",
  "state": "PENDING"
}

# 2. Release the code once (single-read)
POST /v1/purchases/tsk_7Qk3/code

# -> revealed exactly once
{
  "state": "COMPLETED",
  "code": "GIFT-****-9F2A"
}
  • Spend caps. Per-agent daily and monthly limits plus a brand allowlist. Over budget returns BUDGET_EXCEEDED, never a surprise charge.
  • Human approval over threshold. Purchases above a configurable amount pause with APPROVAL_REQUIRED and ping a human in Slack before any money moves.
  • Encrypted single-read code. The code is released once via get_code. Every later read returns ALREADY_RELEASED. It is never logged or traced.
  • Idempotent by client_ref. Reusing a client_ref returns the existing task and never charges twice, so a retry is always safe.
  • Full audit trail. Every purchase reconstructs from an OpenTelemetry trace and a double-entry ledger, down to the cent.
How it works

Three tools, start to finish

The same six tools work identically over MCP and REST. Buying a gift card touches just three of them.

1. list_brands

Browse the live catalog and find the brand_id, supported currencies and allowed denominations your agent needs.

2. buy_giftcard

Send brand_id, amount_minor, currency and a client_ref. Policy checks run, then you get a task_id and state back.

3. get_purchase, then get_code

Poll get_purchase until the task completes, then call get_code once to reveal the encrypted code and hand it off.

Give your agent a wallet, not a workaround

Spin up an API key, try it free in sandbox, and let your agent buy its first gift card in one call.