Skip to main content

Endpoint

GET https://api.gumroad.com/v2/products/:id
Retrieve a single product by its external ID or unique permalink.

Authentication

Requires OAuth scope: view_public or any public scope

Path Parameters

id
string
required
The product’s external ID or unique permalink

Response

success
boolean
required
Whether the request was successful
product
object
required
The product object

Example Request

curl -X GET "https://api.gumroad.com/v2/products/kUxDaJMg5NP9PpHRCNYCrw==" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Example Response

{
  "success": true,
  "product": {
    "id": "kUxDaJMg5NP9PpHRCNYCrw==",
    "name": "My Awesome Product",
    "description": "<p>This is an amazing product that will change your life.</p>",
    "custom_permalink": "awesome-product",
    "price": 2999,
    "currency": "usd",
    "short_url": "https://example.gumroad.com/l/awesome-product",
    "thumbnail_url": "https://public-files.gumroad.com/variants/abc123/thumbnail.png",
    "tags": ["digital", "course"],
    "formatted_price": "$29.99",
    "published": true,
    "deleted": false,
    "customizable_price": false,
    "require_shipping": false,
    "preview_url": null,
    "custom_receipt": "Thank you for your purchase!",
    "custom_summary": "A comprehensive course",
    "subscription_duration": null,
    "max_purchase_count": null,
    "file_info": {},
    "custom_fields": [],
    "is_tiered_membership": false,
    "recurrences": null,
    "variants": [
      {
        "title": "License Type",
        "options": [
          {
            "name": "Personal",
            "price_difference": 0,
            "is_pay_what_you_want": false,
            "recurrence_prices": null
          },
          {
            "name": "Commercial",
            "price_difference": 5000,
            "is_pay_what_you_want": false,
            "recurrence_prices": null
          }
        ]
      }
    ],
    "purchasing_power_parity_prices": {
      "IN": 500,
      "BR": 800,
      "MX": 900
    },
    "sales_count": 42,
    "sales_usd_cents": 125958
  }
}

Error Responses

success
boolean
false when the request fails
message
string
Error description

Product Not Found

{
  "success": false,
  "message": "The product was not found."
}

Unauthorized

{
  "success": false,
  "message": "Unauthorized"
}
You can use either the product’s external ID or its unique/custom permalink to retrieve a product.

Build docs developers (and LLMs) love