Gumroad Integration
Replace Gumroad's file hosting with Continuata's advanced download system while keeping Gumroad for payments and marketing.
Integration Method
Gumroad integration uses the Continuata API to generate download tokens after each sale. Use Gumroad's webhook (called a "ping") to trigger token creation via your own server or a serverless function.
Integration Strategy
Keep Gumroad for its excellent payment processing and affiliate system, but deliver files through Continuata for better performance and features.
✓ Keep Using Gumroad For
- • Payment processing
- • Affiliate program
- • Marketing tools
- • Customer management
- • Analytics dashboard
✓ Switch to Continuata For
- • File hosting and delivery
- • Download experience
- • Resume functionality
- • Delta updates
- • No bandwidth fees
Setup Process
Step 1: Upload Products to Continuata
- Upload your digital products to Continuata
- Note the Product IDs for each item
- Ensure all products are published and have active versions
Step 2: Configure Gumroad Ping
Gumroad can send a "ping" (webhook) to a URL you specify whenever a sale occurs. You'll point this at your own server or a serverless function that calls the Continuata API to create a download token.
- In Gumroad, go to Settings → Advanced → Ping
- Set the ping URL to your serverless function endpoint
- Select "Sale" events
Step 3: Create a Serverless Handler
Your handler receives the Gumroad ping, extracts the product and customer details, and calls the Continuata API to create a download token:
// Example: Cloudflare Worker or Node.js handler
export default {
async fetch(request) {
const form = await request.formData();
const productName = form.get('product_name'); // Gumroad product name
const email = form.get('email'); // Customer email
const productId = form.get('product_id'); // Gumroad product ID
const fullName = form.get('full_name');
// Map Gumroad product to Continuata product
// (use a lookup table, env vars, or your product mapping logic)
const CONTINUATA_PRODUCT = mapGumroadProduct(productId);
// Create a purchase in Continuata (generates download token + sends email)
const res = await fetch('https://continuata.io/api/purchases', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + CONTINUATA_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
productId: CONTINUATA_PRODUCT,
customerEmail: email,
customerName: fullName,
metadata: { source: 'gumroad', gumroadProductId: productId },
}),
});
return new Response('OK', { status: 200 });
}
};Customer Experience
Here's what your customers will experience:
Purchase on Gumroad
Customer completes purchase using familiar Gumroad checkout
Receive Download Link
Continuata sends a download link via email automatically
Browser-Native Download
Full-speed, multithreaded download directly to disk with resume support and SHA-256 verification
Migration from Gumroad Files
Transitioning existing Gumroad products to use Continuata delivery:
Gradual Migration
Start with new products on Continuata, then gradually migrate existing products. You can run both systems simultaneously during transition.
Migration Checklist
- Upload product files to Continuata
- Test download links with sample customers
- Set up your serverless handler to process Gumroad pings
- Monitor download analytics for issues
- Gradually disable Gumroad file delivery
Need Help?
Contact support@continuata.com for personalized migration assistance. See the API Integration guide for the full API reference.