Read products, sales, subscribers and offer codes; verify, enable and disable product licenses.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a new offer code (discount code) on a product. Gumroad REST: POST /v2/products/{product_id}/offer_codes.
The discount code text buyers enter (e.g. LAUNCH20).
The amount off — in cents when offer_type is 'cents', or a percentage when 'percent'.
The product id to create the offer code on.
Whether the offer code applies to all of the user's products (default false).
Whether amount_off is a fixed amount in 'cents' or a 'percent' discount (default 'cents').
Optional cap on how many times the offer code can be used.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Create a new offer code (discount code) on a product. Gumroad REST: POST /v2/products/{product_id}/offer_codes.
| Argument | Type | Description |
|---|---|---|
| name* | string | The discount code text buyers enter (e.g. LAUNCH20). |
| universal | boolean | Whether the offer code applies to all of the user's products (default false). |
| amount_off* | integer | The amount off — in cents when offer_type is 'cents', or a percentage when 'percent'. |
| offer_type | string | Whether amount_off is a fixed amount in 'cents' or a 'percent' discount (default 'cents'). |
| product_id* | string | The product id to create the offer code on. |
| max_purchase_count | integer | Optional cap on how many times the offer code can be used. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"name",
"amount_off"
],
"properties": {
"name": {
"type": "string",
"description": "The discount code text buyers enter (e.g. LAUNCH20)."
},
"universal": {
"type": "boolean",
"description": "Whether the offer code applies to all of the user's products (default false)."
},
"amount_off": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "The amount off — in cents when offer_type is 'cents', or a percentage when 'percent'."
},
"offer_type": {
"enum": [
"cents",
"percent"
],
"type": "string",
"description": "Whether amount_off is a fixed amount in 'cents' or a 'percent' discount (default 'cents')."
},
"product_id": {
"type": "string",
"description": "The product id to create the offer code on."
},
"max_purchase_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Optional cap on how many times the offer code can be used."
}
}
}Disable a product's license key. Gumroad REST: PUT /v2/licenses/disable.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id the license belongs to. |
| license_key* | string | The license key to disable. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"license_key"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to disable."
}
}
}Disable (unpublish) a product so it can no longer be sold. Gumroad REST: PUT /v2/products/{id}/disable.
| Argument | Type | Description |
|---|---|---|
| id* | string | The product id to disable. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The product id to disable."
}
}
}Enable a product's license key. Gumroad REST: PUT /v2/licenses/enable.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id the license belongs to. |
| license_key* | string | The license key to enable. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"license_key"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to enable."
}
}
}Enable (publish) a product so it can be sold. Gumroad REST: PUT /v2/products/{id}/enable.
| Argument | Type | Description |
|---|---|---|
| id* | string | The product id to enable. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The product id to enable."
}
}
}Get a single offer code on a product by id. Gumroad REST: GET /v2/products/{product_id}/offer_codes/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The offer code id. |
| product_id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The offer code id."
},
"product_id": {
"type": "string",
"description": "The product id."
}
}
}Get a single product by id. Gumroad REST: GET /v2/products/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The product id."
}
}
}Get a single sale by id. Gumroad REST: GET /v2/sales/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The sale id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The sale id."
}
}
}Get a single subscriber by id. Gumroad REST: GET /v2/subscribers/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The subscriber id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The subscriber id."
}
}
}Get the authenticated user associated with the current Gumroad access token. Gumroad REST: GET /v2/user.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get a single variant category on a product by id. Gumroad REST: GET /v2/products/{product_id}/variant_categories/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The variant category id. |
| product_id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The variant category id."
},
"product_id": {
"type": "string",
"description": "The product id."
}
}
}List a product's custom fields (extra fields collected at checkout). Gumroad REST: GET /v2/products/{product_id}/custom_fields.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
}
}List a product's offer codes (discount codes). Gumroad REST: GET /v2/products/{product_id}/offer_codes.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
}
}List all of the authenticated user's products. Gumroad REST: GET /v2/products.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the authenticated user's resource subscriptions (webhooks) for a given resource/event name. Gumroad REST: GET /v2/resource_subscriptions.
| Argument | Type | Description |
|---|---|---|
| resource_name* | string | The resource/event name whose webhook subscriptions to list. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resource_name"
],
"properties": {
"resource_name": {
"enum": [
"sale",
"refund",
"dispute",
"dispute_won",
"cancellation",
"subscription_updated",
"subscription_ended",
"subscription_restarted"
],
"type": "string",
"description": "The resource/event name whose webhook subscriptions to list."
}
}
}List/filter the authenticated user's successful sales, most recent first. Supports date, email, product/order filters and cursor pagination via page_key. Gumroad REST: GET /v2/sales.
| Argument | Type | Description |
|---|---|---|
| after | string | Only sales after this date, formatted YYYY-MM-DD. |
| string | Filter to sales to this buyer email. | |
| before | string | Only sales before this date, formatted YYYY-MM-DD. |
| order_id | string | Filter to a specific order id. |
| page_key | string | Pagination cursor — pass the value from a previous response's next_page_key to fetch the next page. |
| product_id | string | Filter to sales of this product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Only sales after this date, formatted YYYY-MM-DD."
},
"email": {
"type": "string",
"description": "Filter to sales to this buyer email."
},
"before": {
"type": "string",
"description": "Only sales before this date, formatted YYYY-MM-DD."
},
"order_id": {
"type": "string",
"description": "Filter to a specific order id."
},
"page_key": {
"type": "string",
"description": "Pagination cursor — pass the value from a previous response's next_page_key to fetch the next page."
},
"product_id": {
"type": "string",
"description": "Filter to sales of this product id."
}
}
}List a membership/subscription product's subscribers, optionally filtered by buyer email. Gumroad REST: GET /v2/products/{product_id}/subscribers.
| Argument | Type | Description |
|---|---|---|
| string | Filter to the subscriber with this buyer email. | |
| product_id* | string | The membership product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"email": {
"type": "string",
"description": "Filter to the subscriber with this buyer email."
},
"product_id": {
"type": "string",
"description": "The membership product id."
}
}
}List a product's variant categories (option groups). Gumroad REST: GET /v2/products/{product_id}/variant_categories.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
}
}Update an existing offer code on a product (its code text and/or its max purchase count). Gumroad REST: PUT /v2/products/{product_id}/offer_codes/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The offer code id to update. |
| offer_code | string | New discount code text. |
| product_id* | string | The product id the offer code belongs to. |
| max_purchase_count | integer | New cap on how many times the offer code can be used. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The offer code id to update."
},
"offer_code": {
"type": "string",
"description": "New discount code text."
},
"product_id": {
"type": "string",
"description": "The product id the offer code belongs to."
},
"max_purchase_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "New cap on how many times the offer code can be used."
}
}
}Verify a license key for a product (checks validity and returns purchase details). By default this does NOT increment the uses count; with increment_uses_count: true it records a use (a write). Gumroad REST: POST /v2/licenses/verify.
| Argument | Type | Description |
|---|---|---|
| product_id* | string | The product id the license belongs to. |
| license_key* | string | The license key to verify. |
| increment_uses_count | boolean | Whether to increment the license's uses count (default false — pass true to record a use). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id",
"license_key"
],
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to verify."
},
"increment_uses_count": {
"type": "boolean",
"description": "Whether to increment the license's uses count (default false — pass true to record a use)."
}
}
}