# Gumroad Routing Reference

**App name:** `gumroad`
**Base URL proxied:** `api.gumroad.com`

## API Path Pattern

```
/gumroad/v2/{resource}
```

## Common Endpoints

### Get Current User
```bash
GET /gumroad/v2/user
```

### List Products
```bash
GET /gumroad/v2/products
```

### Get Product
```bash
GET /gumroad/v2/products/{product_id}
```

### Update Product
```bash
PUT /gumroad/v2/products/{product_id}
Content-Type: application/x-www-form-urlencoded

name=Updated%20Name
```

### Delete Product
```bash
DELETE /gumroad/v2/products/{product_id}
```

### List Sales
```bash
GET /gumroad/v2/sales
GET /gumroad/v2/sales?after=[REDACTED_PHONE]&before=[REDACTED_PHONE]
```

### Get Sale
```bash
GET /gumroad/v2/sales/{sale_id}
```

### List Subscribers
```bash
GET /gumroad/v2/products/{product_id}/subscribers
```

### Get Subscriber
```bash
GET /gumroad/v2/subscribers/{subscriber_id}
```

### Verify License
```bash
POST /gumroad/v2/licenses/verify
Content-Type: application/x-www-form-urlencoded

product_id={product_id}&license_key={license_key}
```

### Enable/Disable License
```bash
PUT /gumroad/v2/licenses/enable
PUT /gumroad/v2/licenses/disable
```

### List Resource Subscriptions (Webhooks)
```bash
GET /gumroad/v2/resource_subscriptions?resource_name=sale
```

Resource names: `sale`, `refund`, `dispute`, `dispute_won`, `cancellation`, `subscription_updated`, `subscription_ended`, `subscription_restarted`

### Create Resource Subscription
```bash
PUT /gumroad/v2/resource_subscriptions
Content-Type: application/x-www-form-urlencoded

resource_name=sale&post_url=https://example.com/webhook
```

### Delete Resource Subscription
```bash
DELETE /gumroad/v2/resource_subscriptions/{resource_subscription_id}
```

### Offer Codes
```bash
GET /gumroad/v2/products/{product_id}/offer_codes
POST /gumroad/v2/products/{product_id}/offer_codes
PUT /gumroad/v2/products/{product_id}/offer_codes/{offer_code_id}
DELETE /gumroad/v2/products/{product_id}/offer_codes/{offer_code_id}
```

### Variant Categories
```bash
GET /gumroad/v2/products/{product_id}/variant_categories
POST /gumroad/v2/products/{product_id}/variant_categories
DELETE /gumroad/v2/products/{product_id}/variant_categories/{variant_category_id}
```

### Variants
```bash
GET /gumroad/v2/products/{product_id}/variant_categories/{variant_category_id}/variants
POST /gumroad/v2/products/{product_id}/variant_categories/{variant_category_id}/variants
PUT /gumroad/v2/products/{product_id}/variant_categories/{variant_category_id}/variants/{variant_id}
DELETE /gumroad/v2/products/{product_id}/variant_categories/{variant_category_id}/variants/{variant_id}
```

### Custom Fields
```bash
GET /gumroad/v2/products/{product_id}/custom_fields
POST /gumroad/v2/products/{product_id}/custom_fields
PUT /gumroad/v2/products/{product_id}/custom_fields/{name}
DELETE /gumroad/v2/products/{product_id}/custom_fields/{name}
```

## Pagination

Page-based pagination:
```bash
GET /gumroad/v2/sales?page=1
GET /gumroad/v2/sales?page=2
```

## Notes

- All responses include `success` boolean field
- Product creation not available via API
- POST/PUT use `application/x-www-form-urlencoded` (not JSON)
- Prices in cents (500 = $5.00)
- License keys are case-insensitive

## Resources

- [Gumroad API Documentation](https://gumroad.com/api)
- [Create API Application](https://help.gumroad.com/article/280-create-application-api)