Vendor Program
Join the Deeployd Vendor Program to monetize your AI agents and reach thousands of potential customers.
Why Become a Vendor?
- Monetize expertise: Turn your agents into recurring revenue
- Reach customers: Access the Deeployd user base
- Focus on building: We handle payments, distribution, and support infrastructure
- Grow with tiers: Better terms as you succeed
Eligibility Requirements
Before applying, ensure you meet these requirements:
| Requirement | Details |
|---|---|
| Subscription | Pro, Business, or Enterprise plan |
| Account Age | At least 30 days old |
| Experience | At least 1 deployed agent |
Check your eligibility:
const eligibility = await client.store.checkEligibility();
console.log({
eligible: eligibility.passed,
hasProSubscription: eligibility.hasProSubscription,
accountAgeDays: eligibility.accountAgeDays,
deployedAgentCount: eligibility.deployedAgentCount
});
Application Process
Step 1: Start Application
const application = await client.store.applications.create();
// Status: draft
console.log(application.id);
Step 2: Complete Profile
await client.store.applications.updateProfile({
displayName: 'AI Solutions Co',
bio: 'We build intelligent agents for enterprise automation.',
website: 'https://aisolutions.co',
supportEmail: 'support@aisolutions.co',
portfolioUrls: [
'https://aisolutions.co/portfolio',
'https://github.com/aisolutions'
],
experienceDescription: '5 years building AI solutions for Fortune 500 companies.',
intendedCategories: ['automation', 'support', 'analysis'],
supportResponseTime: '24h' // 24h, 48h, or 72h
});
Step 3: Legal Compliance
await client.store.applications.updateLegal({
vendorAgreementAccepted: true,
ethicsCharterAccepted: true,
businessType: 'company', // individual or company
businessName: 'AI Solutions Inc.',
vatNumber: 'EU123456789', // For EU vendors
country: 'Germany'
});
Step 4: Verification
await client.store.applications.updateVerification({
linkedinUrl: 'https://linkedin.com/company/aisolutions',
githubUrl: 'https://github.com/aisolutions'
});
Step 5: Submit for Review
await client.store.applications.submit();
// Application goes to review queue
// Typical review time: 2-5 business days
Application Review
AI Pre-Screening
Your application is first evaluated by AI:
- Profile completeness check
- Portfolio quality assessment
- Business legitimacy verification
- Category fit analysis
Human Review
If AI score is below 85, a human reviewer evaluates:
- Business credibility
- Technical capability
- Category expertise
- Support commitment
Possible Outcomes
| Status | Meaning | Next Steps |
|---|---|---|
approved | Welcome to the program! | Set up Stripe Connect |
rejected | Application declined | Review feedback, reapply later |
requires_info | More information needed | Provide requested details |
Setting Up Payments
After approval, connect your bank account via Stripe:
// Get your vendor profile
const vendor = await client.store.vendor.me();
// Set up Stripe Connect
const setupUrl = await client.store.vendor.setupPayments();
// Redirect user to complete Stripe onboarding
window.location.href = setupUrl;
Payout Settings
await client.store.vendor.update({
payoutSchedule: 'monthly', // weekly, biweekly, monthly
minimumPayout: 5000 // €50 minimum in cents
});
Vendor Tiers
Progression Path
Applicant → Starter → Verified → Partner → Enterprise
Tier Comparison
| Tier | Max Products | Commission | Requirements |
|---|---|---|---|
| Applicant | 0 | N/A | Pending approval |
| Starter | 3 | 20% | First approval |
| Verified | 20 | 15% | 10+ sales, 4.0+ rating, 3+ months |
| Partner | Unlimited | 10% | 50+ sales, 4.5+ rating, 6+ months |
| Enterprise | Unlimited | Custom | Contact sales |
Volume Discounts
Additional commission discounts based on lifetime revenue:
| Revenue Milestone | Additional Discount |
|---|---|
| €10,000 | -2% |
| €50,000 | -3% |
| €100,000 | -5% |
| €1,000,000 | -7% |
Minimum commission: 5%
Example: A Partner vendor (10% base) with €100K revenue gets 10% - 5% = 5% commission.
Check Your Progress
const progress = await client.store.vendor.getTierProgress();
console.log({
currentTier: progress.currentTier,
nextTier: progress.nextTier,
requirements: {
salesNeeded: progress.salesNeeded,
ratingNeeded: progress.ratingNeeded,
monthsNeeded: progress.monthsNeeded
},
progress: {
sales: progress.currentSales,
rating: progress.currentRating,
months: progress.monthsActive
}
});
Vendor Badges
Earn badges to increase buyer trust:
| Badge | Requirements |
|---|---|
| Silver | Verified tier + Pro subscription |
| Gold | 50+ sales + 4.5+ rating |
| Platinum | 100+ sales + 4.8+ rating + €50K revenue |
const badges = await client.store.vendor.getBadges();
for (const badge of badges.earned) {
console.log({
name: badge.name,
earnedAt: badge.earnedAt
});
}
// Check progress toward next badge
for (const badge of badges.progress) {
console.log({
name: badge.name,
requirements: badge.requirements,
current: badge.current
});
}
Vendor Analytics
Track your store performance:
const analytics = await client.store.vendor.getAnalytics({
startDate: '2024-01-01',
endDate: '2024-01-31'
});
console.log({
// Revenue
totalRevenue: analytics.revenue,
averageOrderValue: analytics.averageOrderValue,
// Sales
totalSales: analytics.sales,
newCustomers: analytics.newCustomers,
repeatCustomers: analytics.repeatCustomers,
// Engagement
totalViews: analytics.views,
installs: analytics.installs,
conversionRate: analytics.conversionRate,
// Ratings
averageRating: analytics.averageRating,
newReviews: analytics.newReviews,
reviewBreakdown: analytics.ratingDistribution,
// Support
openThreads: analytics.openSupportThreads,
avgResponseTime: analytics.avgResponseTime,
// Payouts
pendingPayout: analytics.pendingPayout,
nextPayoutDate: analytics.nextPayoutDate
});
Per-Product Analytics
const products = await client.store.vendor.getProductAnalytics();
for (const product of products.data) {
console.log({
name: product.name,
revenue: product.revenue,
sales: product.sales,
views: product.views,
installs: product.installs,
rating: product.rating,
conversionRate: product.views > 0
? (product.installs / product.views * 100).toFixed(1) + '%'
: '0%'
});
}
Payouts
How Payouts Work
- Customer purchases your listing
- 14-day refund window passes
- Purchase becomes payout-eligible
- Payout generated on your schedule
- Funds transferred to your bank
Fee Breakdown
For a €100 sale (Starter tier, 20% commission):
Gross Amount: €100.00
Stripe Fee: -€3.19 (2.9% + €0.30)
Platform Fee: -€19.36 (20% of net)
─────────────────────────
Your Payout: €77.45
View Payout History
const payouts = await client.store.vendor.getPayouts({
status: 'paid', // pending, scheduled, processing, paid, failed
limit: 20
});
for (const payout of payouts.data) {
console.log({
id: payout.id,
period: `${payout.periodStart} - ${payout.periodEnd}`,
gross: payout.grossAmount,
fees: payout.platformFees + payout.stripeFees,
net: payout.netAmount,
purchaseCount: payout.purchaseCount,
status: payout.status,
paidAt: payout.paidAt
});
}
Payout Statistics
const stats = await client.store.vendor.getPayoutStats();
console.log({
lifetimeEarnings: stats.lifetimeNet,
pendingPayout: stats.pendingAmount,
nextPayoutDate: stats.nextPayoutDate,
thisMonthRevenue: stats.currentMonthRevenue
});
Customer Support
Managing Support Threads
const threads = await client.store.vendor.getThreads({
status: 'open' // open, pending_vendor, resolved, closed
});
for (const thread of threads.data) {
console.log({
id: thread.id,
customer: thread.buyerName,
listing: thread.listingName,
subject: thread.subject,
type: thread.threadType,
priority: thread.priority,
unreadCount: thread.unreadVendorCount,
lastMessage: thread.lastMessageAt
});
}
Responding to Customers
// Get thread messages
const messages = await client.store.getThreadMessages('thread-123');
// Send response
await client.store.sendMessage('thread-123', {
content: 'Thanks for reaching out! Here\'s how to solve your issue...'
});
// Update thread status
await client.store.updateThreadStatus('thread-123', {
status: 'resolved'
});
Responding to Reviews
const reviews = await client.store.vendor.getReviews();
// Respond to a review
await client.store.respondToReview('review-123', {
content: 'Thank you for your feedback! We appreciate...'
});
Vendor Profile
Update Your Profile
await client.store.vendor.update({
displayName: 'AI Solutions Co',
bio: 'Building the future of enterprise AI.',
avatarUrl: 'https://cdn.example.com/avatar.png',
website: 'https://aisolutions.co',
supportEmail: 'support@aisolutions.co'
});
Public Profile
Your vendor profile is visible at:
https://deeployd.com/store/vendors/{your-slug}
const profile = await client.store.getVendorProfile('your-slug');
// Shows public info:
// - Display name, bio, avatar
// - Total products, ratings
// - Badges and tier
// - All published listings
Ethics & Guidelines
Vendor Agreement
By joining, you agree to:
- Provide accurate product descriptions
- Respond to support within committed timeframe
- Maintain product quality and documentation
- Honor the refund policy
- Not engage in manipulative practices
Prohibited Content
- Agents that produce harmful content
- Agents designed to deceive users
- Agents that violate privacy
- Agents with excessive permissions
- Plagiarized or stolen agents
Consequences
| Violation | Consequence |
|---|---|
| Minor | Warning |
| Repeated | Listing removal |
| Serious | Account suspension |
| Egregious | Permanent ban |
Best Practices
Building for the Store
- Solve real problems: Focus on genuine use cases
- Document thoroughly: Include setup guides and examples
- Add screenshots: Show your agent in action
- Set fair prices: Research comparable products
- Support promptly: Respond within your committed time
Growing Your Business
- Start with free: Build reputation with free products
- Collect feedback: Improve based on reviews
- Update regularly: Keep products fresh
- Cross-promote: Link between your products
- Engage community: Participate in forums
Next: Learn how to publish your first listing.