Giftbit MCP by usefulapi
Browse reward brands, order and cancel rewards, resend emails and check balances in Giftbit.
Should I use this
Quality & Safety
Findings (1)
- LOWin giftbit_create_direct_link_order
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"giftbit": {
"url": "https://giftbit.usefulapi.io/mcp"
}
}
}Remote endpoints
https://giftbit.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (14)
🟢giftbit_list_brands(region, currencyisocode, search, min_price_in_cents, max_price_in_cents, ...)
List reward brands with brand_code, name, image and allowed price. Use the brand_code in an order. Filter by region, currency, price range, search text or embeddable. GET /brands.
Input Schema
{
"type": "object",
"properties": {
"region": {
"description": "Region id (from giftbit_list_regions).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currencyisocode": {
"description": "Currency of the brand prices.",
"type": "string",
"enum": [
"CAD",
"USD",
"AUD"
]
},
"search": {
"description": "Search text in the brand name.",
"type": "string"
},
"min_price_in_cents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"max_price_in_cents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"embeddable": {
"description": "Only brands usable for embedded rewards.",
"type": "boolean"
},
"limit": {
"description": "Results per page (Giftbit default 20).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Results to skip (Giftbit default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_get_brand(brand_code)
Get extended information for one brand: allowed prices, terms and disclaimer. GET /brands/{brand_code}.
Input Schema
{
"type": "object",
"properties": {
"brand_code": {
"type": "string",
"minLength": 1,
"description": "The brand_code (from giftbit_list_brands)."
}
},
"required": [
"brand_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_list_regions
List the regions. A region id filters brands and requests a Full Catalog reward (every brand in the region). GET /regions.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_list_rewards(recipient_email, campaign_id, status, delivery_status, created_date_greater_than, ...)
List rewards ordered earlier through the API, with recipient, price, brand, delivery and redemption status. Dates are Pacific time. GET /gifts.
Input Schema
{
"type": "object",
"properties": {
"recipient_email": {
"description": "Only rewards for this recipient email.",
"type": "string"
},
"campaign_id": {
"description": "Only rewards of this order id.",
"type": "string"
},
"status": {
"description": "Reward status.",
"type": "string",
"enum": [
"SENT_AND_REDEEMABLE",
"REDEEMED",
"TO_CHARITY",
"GIVER_CANCELLED",
"EXPIRED"
]
},
"delivery_status": {
"description": "Email delivery status.",
"type": "string",
"enum": [
"UNSENT",
"DELIVERED",
"UNDELIVERABLE",
"TEMPORARILY_UNDELIVERABLE",
"UNSUBSCRIBED",
"COMPLAINT"
]
},
"created_date_greater_than": {
"description": "Created on or after this date.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"created_date_less_than": {
"description": "Created before this date.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"sort": {
"type": "string",
"enum": [
"campaign_id",
"price_in_cents",
"recipient_name",
"recipient_email",
"delivery_status",
"status"
]
},
"order": {
"description": "Sort direction (Giftbit default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"limit": {
"description": "Results per page (Giftbit default 20).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Results to skip (Giftbit default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_get_reward(uuid)
Get one reward by its uuid: recipient, price, brand, delivery and redemption status. GET /gifts/{uuid}.
Input Schema
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The reward uuid (from giftbit_list_rewards or an order response)."
}
},
"required": [
"uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_get_order(id)
Get the status of an order (email or shortlink), with its contacts, price, brand codes and delivery counts. GET /campaign/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The order id you supplied, or the order uuid Giftbit assigned."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_get_link_urls(id)
Get the claim URLs of a shortlink or direct link order. The URLs are ready a short time after the order. GET /links/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The client-provided id of the link order."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢giftbit_get_funds
Get the account balance by currency. Adding funds is not offered here: do it in the Giftbit web interface. GET /funds.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_create_email_reward(order_id, price_in_cents, recipient_email, firstname, lastname, ...)
ORDERS A REWARD AND CHARGES THE ACCOUNT. Giftbit emails the reward to one recipient. Give brand_codes, region or gift_template, plus price_in_cents. Without gift_template, message and subject are required. In Testbed the email goes to the account owner, not the recipient. POST /campaign.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
},
"price_in_cents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reward value in cents, for example 2500 for 25.00."
},
"recipient_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The one recipient email address."
},
"firstname": {
"description": "Recipient first name.",
"type": "string"
},
"lastname": {
"description": "Recipient last name.",
"type": "string"
},
"brand_codes": {
"description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"region": {
"description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
"type": "string",
"minLength": 1
},
"gift_template": {
"description": "Giftbit template id (uppercase identifier from the web interface).",
"type": "string",
"minLength": 1
},
"subject": {
"description": "Email subject (required without gift_template).",
"type": "string"
},
"message": {
"description": "Email message (required without gift_template).",
"type": "string"
},
"expiry": {
"description": "Last claim date (yyyy-mm-dd, at most one year away). Makes a promotional reward.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"order_id",
"price_in_cents",
"recipient_email",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_create_shortlink_order(order_id, price_in_cents, link_count, brand_codes, region, ...)
ORDERS REWARDS AND CHARGES THE ACCOUNT. Creates shortlink rewards (landing-page links) that you distribute yourself. No recipient is needed. Set link_count. Read them with giftbit_get_link_urls. POST /campaign with delivery_type SHORTLINK.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
},
"price_in_cents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reward value in cents, for example 2500 for 25.00."
},
"link_count": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "How many shortlink rewards to create."
},
"brand_codes": {
"description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"region": {
"description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
"type": "string",
"minLength": 1
},
"gift_template": {
"description": "Giftbit template id (uppercase identifier from the web interface).",
"type": "string",
"minLength": 1
},
"subject": {
"description": "Reward subject (required without gift_template).",
"type": "string"
},
"message": {
"description": "Landing-page message (required without gift_template).",
"type": "string"
},
"expiry": {
"description": "Last claim date (yyyy-mm-dd, at most one year away).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"order_id",
"price_in_cents",
"link_count",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_create_direct_link_order(order_id, price_in_cents, brand_codes, region, link_count, ...)
ORDERS REWARDS AND CHARGES THE ACCOUNT. Creates direct links that go straight to the claim steps, with minimal Giftbit branding. Give brand_codes (one region) or region for a Full Catalog. URLs come back in the response. POST /direct_links.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
},
"price_in_cents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reward value in cents, for example 2500 for 25.00."
},
"brand_codes": {
"description": "One or more brand_code values from giftbit_list_brands. Several codes let the recipient pick one.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"region": {
"description": "Region id for a Full Catalog reward (from giftbit_list_regions).",
"type": "string",
"minLength": 1
},
"link_count": {
"description": "How many direct links to create (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
},
"expiry": {
"description": "Last claim date (yyyy-mm-dd, at most one year away).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"order_id",
"price_in_cents",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_create_embedded_reward(order_id, brand_code, price_in_cents, confirm)
ORDERS ONE REWARD AND CHARGES THE ACCOUNT. Returns a gift_link where the reward code is revealed at once, for in-app delivery. Embedded rewards are claimed at once and cannot be cancelled. POST /embedded.
Input Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "Your unique id for this order. Reuse it only to retry the same order; a new id makes a new order."
},
"brand_code": {
"type": "string",
"minLength": 1,
"description": "The brand_code (from giftbit_list_brands, embeddable brands)."
},
"price_in_cents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Reward value in cents, for example 2500 for 25.00."
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"order_id",
"brand_code",
"price_in_cents",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_resend_reward(uuid, confirm)
SENDS THE REWARD EMAIL AGAIN to the recipient. Email rewards only; embedded rewards cannot be resent. PUT /gifts/{uuid}.
Input Schema
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The reward uuid."
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"uuid",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴giftbit_cancel_reward(uuid, confirm)
CANCELS A REWARD. Not possible once the recipient has claimed it; embedded rewards cannot be cancelled. DELETE /gifts/{uuid}.
Input Schema
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The reward uuid."
},
"confirm": {
"type": "object",
"properties": {
"brand_code": {
"description": "Echo of brand_code (embedded rewards).",
"type": "string"
},
"brand_codes": {
"description": "Echo of brand_codes, in the same order.",
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"description": "Echo of region.",
"type": "string"
},
"gift_template": {
"description": "Echo of gift_template.",
"type": "string"
},
"price_in_cents": {
"description": "Echo of price_in_cents.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"link_count": {
"description": "Echo of link_count.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"recipient_email": {
"description": "Echo of the recipient email address.",
"type": "string"
},
"firstname": {
"description": "Echo of the recipient first name.",
"type": "string"
},
"lastname": {
"description": "Echo of the recipient last name.",
"type": "string"
},
"subject": {
"description": "Echo of the subject, exactly.",
"type": "string"
},
"message": {
"description": "Echo of the message, exactly.",
"type": "string"
},
"expiry": {
"description": "Echo of expiry.",
"type": "string"
},
"uuid": {
"description": "Echo of the reward uuid.",
"type": "string"
}
},
"description": "Repeat the order values exactly (brand, price, recipient, count). Show these values to the user and get their OK first."
}
},
"required": [
"uuid",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence