# Gumroad Integration via LowCodeAPI
**Last Updated**: February 11, 2026
## Overview
Digital product sales
The Gumroad API provides access to:
- **Payment Processing** - Related functionality
## Base Endpoint
```
https://api.lowcodeapi.com/gumroad/
```
**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`
## Authentication
LowCodeAPI handles authentication automatically. You only need to:
1. **Sign up** at [Gumroad](https://gumroad.com)
2. **Get your credentials** from [credential page](https://app.gumroad.com/settings/advanced)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests
The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your provider credentials (API keys, OAuth tokens, etc.)
- Apply them to each request
- Handle token refresh for OAuth providers
**Auth Type**: OAUTH2.0
## URL Format (Important)
LowCodeAPI supports **two URL formats** for endpoints with path parameters. **Always try New Format first**, and only fall back to Old Format if it doesn't work.
### New Format (Priority) - Dynamic Path Parameters
- **Path parameters stay in the URL path** - Do NOT convert to query parameters
- **Provider name is always in the URL path** after `api.lowcodeapi.com/`
- Pattern: `https://api.lowcodeapi.com/{provider}/{path_with_params}?api_token={api_token}`
**Example**:
```bash
# New Format - Path parameter stays in the URL path
https://api.lowcodeapi.com/gumroad/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN
```
### Old Format (Fallback) - Sanitized Path + Query Parameters
- **Path parameters become query parameters**
- **Provider name is always in the URL path**
- Pattern: `https://api.lowcodeapi.com/{provider}/{sanitized_path}?{path_params}&api_token={api_token}`
**Example**:
```bash
# Old Format - Path parameter becomes a query parameter
https://api.lowcodeapi.com/gumroad/resource/id?id=RESOURCE_ID&api_token=YOUR_API_TOKEN
```
### Decision Flow for AI Agents
1. Always use **New Format first** - Keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider
## API Categories
- **Custom fields** - 4 endpoints
- **Licenses** - 4 endpoints
- **Offer codes** - 5 endpoints
- **Products** - 5 endpoints
- **Resource subscriptions** - 3 endpoints
- **Sales** - 4 endpoints
- **Subscribers** - 2 endpoints
- **User** - 1 endpoints
- **Variant categories** - 10 endpoints
## Common Endpoints
### Category: Custom fields
#### Retrieve all of the existing custom fields for a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/custom_fields`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/custom_fields?product_id={product_id}&api_token={api_token}
```
**Description**: Retrieve all of the existing custom fields for a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve all of the existing custom fields for a product](https://app.gumroad.com/api#custom-fields)
---
#### Create a new custom field for a product
**Method**: `POST` | **LowCodeAPI Path**: `/v2/products/:product_id/custom_fields`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/custom_fields?product_id={product_id}&api_token={api_token}
```
**Description**: Create a new custom field for a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"name": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | |
| `variant` | string | No | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Create a new custom field for a product](https://app.gumroad.com/api#custom-fields)
---
#### Edit an existing product's custom field
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:product_id/custom_fields/:name`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields/:name?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/custom_fields/name?name={name}&product_id={product_id}&api_token={api_token}
```
**Description**: Edit an existing product's custom field
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | custom Field |
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"variant": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `variant` | string | Yes | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields/:name?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Edit an existing product's custom field](https://app.gumroad.com/api#custom-fields)
---
#### Permanently delete a product's custom field
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/products/:product_id/custom_fields/:name`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields/:name?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/custom_fields/name?name={name}&product_id={product_id}&api_token={api_token}
```
**Description**: Permanently delete a product's custom field
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | custom Field |
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/custom_fields/:name?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Permanently delete a product's custom field](https://app.gumroad.com/api#custom-fields)
---
### Category: Licenses
#### Verify a license
**Method**: `POST` | **LowCodeAPI Path**: `/v2/licenses/verify`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/verify?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/verify?api_token={api_token}
```
**Description**: Verify a license
**Request Body**:
```json
{
"license_key": "<string>",
"product_id": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `increment_uses_count` | boolean | No | |
| `license_key` | string | Yes | the license key provided by your customer |
| `product_id` | string | Yes | the unique ID of the product |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/gumroad/v2/licenses/verify?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Verify a license](https://app.gumroad.com/api#licenses)
---
#### Enable a license
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/licenses/enable`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/enable?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/enable?api_token={api_token}
```
**Description**: Enable a license
**Request Body**:
```json
{
"license_key": "<string>",
"product_id": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `license_key` | string | Yes | the license key provided by your customer |
| `product_id` | string | Yes | the unique ID of the product |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/licenses/enable?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Enable a license](https://app.gumroad.com/api#licenses)
---
#### Disable a license
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/licenses/disable`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/disable?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/disable?api_token={api_token}
```
**Description**: Disable a license
**Request Body**:
```json
{
"license_key": "<string>",
"product_id": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `license_key` | string | Yes | the license key provided by your customer |
| `product_id` | string | Yes | the unique ID of the product |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/licenses/disable?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Disable a license](https://app.gumroad.com/api#licenses)
---
#### Decrement the uses count of a license
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/licenses/decrement_uses_count`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/decrement_uses_count?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/licenses/decrement_uses_count?api_token={api_token}
```
**Description**: Decrement the uses count of a license
**Request Body**:
```json
{
"license_key": "<string>",
"product_id": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `license_key` | string | Yes | the license key provided by your customer |
| `product_id` | string | Yes | the unique ID of the product |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/licenses/decrement_uses_count?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Decrement the uses count of a license](https://app.gumroad.com/api#licenses)
---
### Category: Offer codes
#### Retrieve all of the existing offer codes for a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/offer_codes`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/offer_codes?product_id={product_id}&api_token={api_token}
```
**Description**: Retrieve all of the existing offer codes for a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve all of the existing offer codes for a product](https://app.gumroad.com/api#offer-codes)
---
#### Retrieve the details of a specific offer code of a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/offer_codes/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/offer_codes/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Retrieve the details of a specific offer code of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | |
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve the details of a specific offer code of a product](https://app.gumroad.com/api#offer-codes)
---
#### Create a new offer code for a product
**Method**: `POST` | **LowCodeAPI Path**: `/v2/products/:product_id/offer_codes`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/offer_codes?product_id={product_id}&api_token={api_token}
```
**Description**: Create a new offer code for a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"amount_off": "<string>",
"name": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount_off` | string | Yes | |
| `name` | string | Yes | the coupon code used at checkout |
| `offer_type` | string | No | cents/percent Default-cents
max_purchase_count |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Create a new offer code for a product](https://app.gumroad.com/api#offer-codes)
---
#### Edit an existing product's offer code
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:product_id/offer_codes/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/offer_codes/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Edit an existing product's offer code
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | |
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"key": "value"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `offer_code` | string | No | string |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Edit an existing product's offer code](https://app.gumroad.com/api#offer-codes)
---
#### Permanently delete a product's offer code
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/products/:product_id/offer_codes/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/offer_codes/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Permanently delete a product's offer code
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | |
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/offer_codes/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Permanently delete a product's offer code](https://app.gumroad.com/api#offer-codes)
---
### Category: Products
#### Retrieve all of the existing products for the authenticated user
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products?api_token={api_token}
```
**Description**: Retrieve all of the existing products for the authenticated user
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve all of the existing products for the authenticated user](https://app.gumroad.com/api#products)
---
#### Retrieve the details of a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/id?id={id}&api_token={api_token}
```
**Description**: Retrieve the details of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve the details of a product](https://app.gumroad.com/api#products)
---
#### Permanently delete a product
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/products/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/id?id={id}&api_token={api_token}
```
**Description**: Permanently delete a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/products/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Permanently delete a product](https://app.gumroad.com/api#products)
---
#### Enable an existing product
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:id/enable`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:id/enable?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/id/enable?id={id}&api_token={api_token}
```
**Description**: Enable an existing product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:id/enable?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Enable an existing product](https://app.gumroad.com/api#products)
---
#### Disable an existing product
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:id/disable`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:id/disable?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/id/disable?id={id}&api_token={api_token}
```
**Description**: Disable an existing product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:id/disable?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Disable an existing product](https://app.gumroad.com/api#products)
---
### Category: Resource subscriptions
#### Subscribe to a resource
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/resource_subscriptions`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?api_token={api_token}
```
**Description**: Subscribe to a resource
**Request Body**:
```json
{
"key": "value"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `charge_occurrence_count` | string | No | number of charges made for this subscription |
| `created_at` | string | No | timestamp when subscription was created |
| `custom_fields` | string | No | custom fields from the original purchase |
| `free_trial_ends_at` | string | No | timestamp when free trial ends |
| `license_key` | string | No | license key from the original purchase. |
| `product_id` | string | No | id of the product |
| `product_name` | string | No | name of the product |
| `purchase_ids` | string | No | array of charge ids belonging to this subscription |
| `recurrence` | subscription duration | No | |
| `subscription_id` | string | No | id of the subscription |
| `user_email` | string | No | email address of the subscriber |
| `user_id` | string | No | user id of the subscriber |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Subscribe to a resource](https://app.gumroad.com/api#resource-subscriptions)
---
#### Show all active subscriptions of user for the input resource
**Method**: `GET` | **LowCodeAPI Path**: `/v2/resource_subscriptions`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?resource_name={resource_name}&api_token={api_token}
```
**Description**: Show all active subscriptions of user for the input resource
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_name` | string | No | Currently there are 8 supported values - sale; refund; dispute; dispute_won; cancellation; subscription_updated; subscription_ended; and subscription_restarted. |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions?resource_name=VALUE&api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Show all active subscriptions of user for the input resource](https://app.gumroad.com/api#resource-subscriptions)
---
#### Unsubscribe from a resource
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/resource_subscriptions/:resource_subscription_id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions/:resource_subscription_id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions/resource_subscription_id?resource_subscription_id={resource_subscription_id}&api_token={api_token}
```
**Description**: Unsubscribe from a resource
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_subscription_id` | string | Yes | Resource subscription ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/resource_subscriptions/:resource_subscription_id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Unsubscribe from a resource](https://app.gumroad.com/api#resource-subscriptions)
---
### Category: Sales
#### Retrieves all of the successful sales by the authenticated user
**Method**: `GET` | **LowCodeAPI Path**: `/v2/sales`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales?after={after}&before={before}&email={email}&order_id={order_id}&page_key={page_key}&product_id={product_id}&api_token={api_token}
```
**Description**: Retrieves all of the successful sales by the authenticated user
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `after` | string | No | Only return sales after this date. date in form YYYY-MM-DD |
| `before` | string | No | Only return sales before this date. date in form YYYY-MM-DD |
| `email` | string | No | Filter sales by this email |
| `order_id` | string | No | Filter sales by this Order ID |
| `page_key` | string | No | A key representing a page of results. It is given in the response as next_page_key. |
| `product_id` | string | No | Filter sales by this product |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/sales?after=VALUE&before=VALUE&email=VALUE&order_id=VALUE&page_key=VALUE&product_id=VALUE&api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieves all of the successful sales by the authenticated user](https://app.gumroad.com/api#sales)
---
#### Retrieves the details of a sale by this user
**Method**: `GET` | **LowCodeAPI Path**: `/v2/sales/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/id?id={id}&api_token={api_token}
```
**Description**: Retrieves the details of a sale by this user
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Sales ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/sales/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieves the details of a sale by this user](https://app.gumroad.com/api#sales)
---
#### Marks a sale as shipped
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/sales/:id/mark_as_shipped`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/:id/mark_as_shipped?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/id/mark_as_shipped?id={id}&api_token={api_token}
```
**Description**: Marks a sale as shipped
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Sales ID |
**Request Body**:
```json
{
"key": "value"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `tracking_url` | string | No | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/sales/:id/mark_as_shipped?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Marks a sale as shipped](https://app.gumroad.com/api#sales)
---
#### Refunds a sale
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/sales/:id/refund`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/:id/refund?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/sales/id/refund?id={id}&api_token={api_token}
```
**Description**: Refunds a sale
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Sales ID |
**Request Body**:
```json
{
"key": "value"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount_cents` | string | No | Amount in cents (in currency of the sale) to be refunded. If set issue partial refund by this amount. If not set; issue full refund. You can issue multiple partial refunds per sale until it is fully refunded. |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/sales/:id/refund?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Refunds a sale](https://app.gumroad.com/api#sales)
---
### Category: Subscribers
#### Retrieves all of the active subscribers for one of the authenticated user's products
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/subscribers`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/subscribers?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/subscribers?product_id={product_id}&email={email}&api_token={api_token}
```
**Description**: Retrieves all of the active subscribers for one of the authenticated user's products
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Filter subscribers by this email |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/subscribers?email=VALUE&api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieves all of the active subscribers for one of the authenticated user's products](https://app.gumroad.com/api#subscribers)
---
#### Retrieves the details of a subscriber to this user's product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/subscribers/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/subscribers/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/subscribers/id?id={id}&api_token={api_token}
```
**Description**: Retrieves the details of a subscriber to this user's product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Subscribers ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/subscribers/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieves the details of a subscriber to this user's product](https://app.gumroad.com/api#subscribers)
---
### Category: User
#### Retrieve the user's data
**Method**: `GET` | **LowCodeAPI Path**: `/v2/user`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/user?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/user?api_token={api_token}
```
**Description**: Retrieve the user's data
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/user?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve the user's data](https://app.gumroad.com/api#user)
---
### Category: Variant categories
#### Create a new variant category on a product
**Method**: `POST` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories?product_id={product_id}&api_token={api_token}
```
**Description**: Create a new variant category on a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"title": "<string>",
"variant_category": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `title` | string | Yes | |
| `variant_category` | string | Yes | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Create a new variant category on a product](https://app.gumroad.com/api#variant-categories)
---
#### Retrieve the details of a variant category of a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Retrieve the details of a variant category of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve the details of a variant category of a product](https://app.gumroad.com/api#variant-categories)
---
#### Edit a variant category of an existing product
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Edit a variant category of an existing product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
**Request Body**:
```json
{
"title": "<string>",
"variant_category": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `title` | string | Yes | |
| `variant_category` | string | Yes | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Edit a variant category of an existing product](https://app.gumroad.com/api#variant-categories)
---
#### Permanently delete a variant category of a product
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/id?id={id}&product_id={product_id}&api_token={api_token}
```
**Description**: Permanently delete a variant category of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Permanently delete a variant category of a product](https://app.gumroad.com/api#variant-categories)
---
#### Retrieve all of the existing variant categories of a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories?product_id={product_id}&api_token={api_token}
```
**Description**: Retrieve all of the existing variant categories of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve all of the existing variant categories of a product](https://app.gumroad.com/api#variant-categories)
---
#### Create a new variant of a product
**Method**: `POST` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:variant_category_id/variantss`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variantss?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/variant_category_id/variantss?product_id={product_id}&variant_category_id={variant_category_id}&api_token={api_token}
```
**Description**: Create a new variant of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
| `variant_category_id` | string | Yes | Variant Category ID |
**Request Body**:
```json
{
"name": "<string>",
"price_difference_cents": "<string>",
"variant": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `max_purchase_count` | string | No | |
| `name` | string | Yes | |
| `price_difference_cents` | string | Yes | |
| `variant` | string | Yes | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variantss?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Create a new variant of a product](https://app.gumroad.com/api#variant-categories)
---
#### Retrieve the details of a variant of a product
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/variant_category_id/variants/id?id={id}&product_id={product_id}&variant_category_id={variant_category_id}&api_token={api_token}
```
**Description**: Retrieve the details of a variant of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
| `variant_category_id` | string | Yes | Variant Category ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve the details of a variant of a product](https://app.gumroad.com/api#variant-categories)
---
#### Edit a variant of an existing product
**Method**: `PUT` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/variant_category_id/variants/id?id={id}&product_id={product_id}&variant_category_id={variant_category_id}&api_token={api_token}
```
**Description**: Edit a variant of an existing product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
| `variant_category_id` | string | Yes | Variant Category ID |
**Request Body**:
```json
{
"name": "<string>",
"price_difference_cents": "<string>",
"variant": "<string>"
}
```
**Request Body Fields**:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `max_purchase_count` | string | No | |
| `name` | string | Yes | |
| `price_difference_cents` | string | Yes | |
| `variant` | string | Yes | |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Edit a variant of an existing product](https://app.gumroad.com/api#variant-categories)
---
#### Permanently delete a variant of a product
**Method**: `DELETE` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/variant_category_id/variants/id?id={id}&product_id={product_id}&variant_category_id={variant_category_id}&api_token={api_token}
```
**Description**: Permanently delete a variant of a product
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID |
| `product_id` | string | Yes | Product ID |
| `variant_category_id` | string | Yes | Variant Category ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants/:id?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Permanently delete a variant of a product](https://app.gumroad.com/api#variant-categories)
---
#### Retrieve all of the existing variants in a variant category
**Method**: `GET` | **LowCodeAPI Path**: `/v2/products/:product_id/variant_categories/:variant_category_id/variants`
**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants?api_token=YOUR_API_TOKEN
```
**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/gumroad/v2/products/product_id/variant_categories/variant_category_id/variants?product_id={product_id}&variant_category_id={variant_category_id}&api_token={api_token}
```
**Description**: Retrieve all of the existing variants in a variant category
**Path Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID |
| `variant_category_id` | string | Yes | Variant Category ID |
**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/gumroad/v2/products/:product_id/variant_categories/:variant_category_id/variants?api_token=YOUR_API_TOKEN"
```
**Example Response**:
```json
{
"data": {
// Provider response here
}
}
```
**Official Documentation**: [Retrieve all of the existing variants in a variant category](https://app.gumroad.com/api#variant-categories)
---
## API Definition Endpoints
You can retrieve the complete OpenAPI specification for this provider using these endpoints:
**New Format (OpenAPI spec with dynamic path parameters):**
```bash
curl -X GET "https://backend.lowcodeapi.com/gumroad/openapi"
```
**Old Format (API definition with sanitized paths):**
```bash
curl -X GET "https://backend.lowcodeapi.com/gumroad/definition"
```
## Response Format
All responses from LowCodeAPI are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider API
}
}
```
The `data` key contains the raw response from the provider's API.
## Complete Endpoint Reference
For a complete list of all 38 endpoints, refer to:
- **Official Provider Documentation**: https://app.gumroad.com/api
## Usage Examples
### Example 1: Basic API Request (New Format)
Making a simple request to Gumroad:
```bash
# Replace RESOURCE_ID with an actual resource ID from your Gumroad account
curl -X GET "https://api.lowcodeapi.com/gumroad/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
```
### Example 2: Request with Query Parameters (New Format)
Request with specific parameters:
```bash
# Include query parameters for filtering
curl -X GET "https://api.lowcodeapi.com/gumroad/resources?filter=value&api_token=YOUR_API_TOKEN"
```
## Error Handling
Standard HTTP status codes apply. All responses are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider
}
}
```