Developer Portal & Marketplace
Build and monetize apps, plugins, and integrations for the Olympus platform.
Overview
The Developer Portal enables third-party developers to build apps, plugins, and integrations for the Olympus platform. With a 70/30 revenue sharing model, developers can monetize their creations while helping restaurants extend platform functionality.
Business Model
| Revenue Type | Developer | Platform |
|---|---|---|
| Free Apps | 100% | 0% |
| Paid Apps | 70% | 30% |
| Subscriptions (Year 1) | 70% | 30% |
| Subscriptions (Year 2+) | 85% | 15% |
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Developer Portal │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Developer │ │ App Store │ │ Revenue │ │
│ │ Accounts │ │ & Discovery │ │ & Payouts │ │
│ │ (Go) │ │ (Go) │ │ (Rust) │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │ │
│ ┌────────┴────────────────────┴────────────────────┴────────┐ │
│ │ GraphQL API Gateway │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ Integration Types │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────┐ │
│ │ Webhooks │ │ REST APIs │ │ Plugins │ │ Themes │ │
│ │ │ │ │ │ (WASM) │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────────┘
Developer Accounts
Registration
- Visit developers.olympuscloud.ai
- Sign up with email or GitHub
- Verify email address
- Complete developer profile
- Accept Developer Terms of Service
Account Tiers
| Tier | Price | API Calls | Apps | Support |
|---|---|---|---|---|
| Free | $0/mo | 10,000/mo | 2 | Community |
| Pro | $49/mo | 100,000/mo | 10 | |
| Partner | $299/mo | 1,000,000/mo | Unlimited | Priority |
API Keys
┌─────────────────────────────────────────────────────────────────┐
│ API KEYS My Account │
├─────────────────────────────────────────────────────────────────┤
│ │
│ DEVELOPMENT │
│ ─────────────────────────────────────────────────────────── │
│ Name: Development Key │
│ Key: dev_sk_abc123...xyz789 [Copy] [Rotate] │
│ Created: Jan 15, 2026 │
│ Last Used: 2 min ago │
│ Scopes: read, write │
│ │
│ PRODUCTION │
│ ─────────────────────────────────────────────────────────── │
│ Name: Production Key │
│ Key: prod_sk_def456...uvw012 [Copy] [Rotate] │
│ Created: Jan 10, 2026 │
│ Last Used: 5 min ago │
│ Scopes: read, write │
│ │
│ [Create New Key] │
│ │
└─────────────────────────────────────────────────────────────────┘
Integration Types
Webhooks
Receive real-time events from the platform:
| Event Category | Events |
|---|---|
| Orders | order.created, order.updated, order.completed |
| Payments | payment.completed, refund.processed |
| Inventory | item.low_stock, item.out_of_stock |
| Reservations | reservation.created, reservation.cancelled |
| Staff | clock_in, clock_out, shift_started |
REST APIs
Full access to platform data and functionality:
| API | Description |
|---|---|
| Orders API | Create, read, update orders |
| Menu API | Manage menu items, categories |
| Payments API | Process payments, refunds |
| Inventory API | Track stock levels |
| Analytics API | Access reporting data |
| Users API | Manage staff accounts |
Plugins (WASM)
Custom business logic running on the platform:
| Plugin Type | Use Case |
|---|---|
| Order Modifier | Custom pricing logic |
| Validation | Order validation rules |
| Integration | Third-party service sync |
| Reporting | Custom report generation |
Themes
Customize the look and feel:
| Component | Customizable |
|---|---|
| Colors | Primary, secondary, accent |
| Typography | Fonts, sizes |
| Logo | Header, receipt |
| Layout | Component arrangement |
App Submission
Submission Flow
Review Process
| Stage | Duration | Checks |
|---|---|---|
| Automated Scan | Under 5 min | Security, API usage |
| Manual Review | 1-3 days | Functionality, UX, policy |
| Final Approval | 1 day | Legal, business review |
Submission Requirements
| Requirement | Description |
|---|---|
| App Name | Unique, descriptive |
| Description | Clear functionality explanation |
| Screenshots | Min 3, showing key features |
| Privacy Policy | Required for data access |
| Support URL | Help documentation link |
| Pricing | Free or paid tiers |
Review Criteria
| Category | Requirements |
|---|---|
| Security | No hardcoded secrets, secure API calls |
| Performance | Under 2s response time, efficient queries |
| UX | Intuitive interface, error handling |
| Policy | Compliant with guidelines |
| Data | Minimal data collection, privacy compliant |
Marketplace
App Discovery
┌─────────────────────────────────────────────────────────────────┐
│ MARKETPLACE 156 Apps │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 Search apps... [Category ▼] [Price ▼] [Rating ▼] │
│ │
│ FEATURED │
│ ─────────────────────────────────────────────────────────── │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ [Logo] │ │ [Logo] │ │ [Logo] │ │
│ │ Yelp Reviews │ │ QuickBooks │ │ Loyalty Plus │ │
│ │ ★★★★★ (128) │ │ ★★★★☆ (89) │ │ ★★★★★ (256) │ │
│ │ Free │ │ $29/mo │ │ $19/mo │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ CATEGORIES │
│ ─────────────────────────────────────────────────────────── │
│ 📊 Analytics (24) 🔗 Integrations (45) 📱 Marketing (18)│
│ 💳 Payments (12) 📦 Inventory (15) 👥 HR (8) │
│ 🎨 Themes (22) 🛠️ Operations (12) │
│ │
└─────────────────────────────────────────────────────────────────┘
App Listing
| Field | Display |
|---|---|
| Name & Icon | App branding |
| Rating | Average stars, review count |
| Price | Free, one-time, or subscription |
| Description | What it does |
| Screenshots | Visual preview |
| Reviews | User feedback |
| Developer | Publisher info |
Installation Flow
- Click Install on app listing
- Review permissions requested
- Select locations to install
- Authorize data access
- Configure settings (if required)
- App is active
Revenue & Payouts
Commission Structure
| Sale Type | Developer Share | Platform Share |
|---|---|---|
| One-time purchase | 70% | 30% |
| Monthly subscription | 70% | 30% |
| Annual subscription | 70% (Y1), 85% (Y2+) | 30% (Y1), 15% (Y2+) |
Payout Schedule
| Threshold | Schedule | Method |
|---|---|---|
| $100 minimum | Monthly (15th) | Stripe Connect |
| $1,000+ | Weekly (Friday) | Stripe Connect |
| $10,000+ | Daily | Wire transfer |
Revenue Dashboard
┌─────────────────────────────────────────────────────────────────┐
│ REVENUE January │
├─────────────────────────────────────────────────────────────────┤
│ │
│ EARNINGS │
│ ─────────────────────────────────────────────────────────── │
│ Gross Revenue: $4,850 │
│ Platform Fee: -$1,455 (30%) │
│ Net Earnings: $3,395 │
│ │
│ BY APP │
│ ─────────────────────────────────────────────────────────── │
│ Loyalty Plus $2,450 52 installs $67.13 avg │
│ Analytics Pro $1,800 24 installs $75.00 avg │
│ Menu Optimizer $600 12 installs $50.00 avg │
│ │
│ PAYOUT HISTORY │
│ ─────────────────────────────────────────────────────────── │
│ Jan 15: $2,890 ✓ Completed │
│ Dec 15: $2,450 ✓ Completed │
│ Nov 15: $1,980 ✓ Completed │
│ │
│ NEXT PAYOUT: Feb 15 • Estimated: $3,395 │
│ │
└─────────────────────────────────────────────────────────────────┘
REST API Access
Authentication
All API access uses JWT Bearer tokens. Authenticate via POST /v1/auth/login to obtain an access token, then include it in subsequent requests.
| Method | Endpoint | Purpose |
|---|---|---|
POST | /v1/auth/login | Obtain JWT access and refresh tokens |
POST | /v1/auth/refresh | Refresh an expired access token |
REST API Example (TypeScript)
const API_BASE = 'https://dev.api.olympuscloud.ai/v1';
// Authenticate
const loginRes = await fetch(`${API_BASE}/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'user@example.com', password: 'password' }),
});
const { status } = await loginRes.json();
const accessToken = status.access_token;
const headers = {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
};
// Get orders
const ordersRes = await fetch(
`${API_BASE}/commerce/orders?location_id=loc-123&status=open`,
{ headers },
);
const orders = await ordersRes.json();
// Create order
const orderRes = await fetch(`${API_BASE}/commerce/orders`, {
method: 'POST',
headers,
body: JSON.stringify({
location_id: 'loc-123',
items: [{ menu_item_id: 'item-456', quantity: 2 }],
}),
});
const order = await orderRes.json();
Sandbox Environment
Sandbox Features
| Feature | Description |
|---|---|
| Test Data | Pre-populated menu, orders, customers |
| API Access | Full API access, no rate limits |
| Webhooks | Simulated events for testing |
| Payments | Test card numbers |
Test Credentials
| Credential | Value |
|---|---|
| API Key | sandbox_sk_test123 |
| Test Card | 4242 4242 4242 4242 |
| Test Tenant | sandbox-tenant-001 |
| Test Location | sandbox-loc-001 |
Documentation
API Reference
Interactive API documentation at developers.olympuscloud.ai/docs:
- OpenAPI 3.0 specification
- Try-it-now console
- Code examples in multiple languages
- Authentication guides
Guides & Tutorials
| Guide | Description |
|---|---|
| Getting Started | First app in 15 minutes |
| Webhooks | Setting up event handling |
| Authentication | OAuth 2.0 implementation |
| Best Practices | Performance & security tips |
| Publishing | Submission checklist |
Support
Support Channels
| Tier | Channels |
|---|---|
| Free | Community forum, docs |
| Pro | Email support (48h response) |
| Partner | Dedicated slack, 4h response |
Resources
- Community Forum: developers.olympuscloud.ai/community
- GitHub: github.com/olympuscloud/developer-resources
- Office Hours: Weekly developer Q&A (Thursdays 2pm PT)
Related Documentation
- Webhooks Guide - Event handling
- OAuth Guide - Authentication