API Reference
The DPS Platform API is built on Parse Server. All operations are Parse Cloud Functions — there are no REST endpoints for business logic.
- Base URL:
https://api.platform.duabalabs.com/parse - Function endpoint:
POST /parse/functions/{functionName}
Making requests
cURL
curl -X POST \
https://api.platform.duabalabs.com/parse/functions/loginWithEmail \
-H "X-Parse-Application-Id: YOUR_APP_ID" \
-H "X-Parse-Session-Token: YOUR_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "password123"}'Parse JS SDK
import Parse from 'parse';
Parse.initialize('YOUR_APP_ID', 'YOUR_JS_KEY');
Parse.serverURL = 'https://api.platform.duabalabs.com/parse';
const result = await Parse.Cloud.run('loginWithEmail', {
email: 'user@example.com',
password: 'password123',
});dps-client SDK
For checkout / subscription / order calls, prefer the typed @duabalabs/dps-client over raw Parse.Cloud.run.
Authentication
Most functions require a session token:
X-Parse-Session-Token: YOUR_SESSION_TOKENRoles
| Role | Description |
|---|---|
client | Standard user with access to own projects |
supervisor | Can manage team projects |
admin | Full access to organization |
superadmin | Platform-level access |
Errors
{ "code": 101, "error": "Invalid email or password" }| Code | Meaning |
|---|---|
| 100 | Connection failed |
| 101 | Object not found / invalid credentials |
| 119 | Operation forbidden |
| 137 | Unique value already exists |
| 141 | Cloud function error |
| 142 | Validation error |
| 403 | Insufficient permissions |
| 429 | Rate limit exceeded |
Rate limiting
| Tier | Requests / minute |
|---|---|
| Free | 60 |
| Developer | 300 |
| Professional | 1000 |
| Enterprise | Unlimited |
Headers on every response:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 295
X-RateLimit-Reset: 1704067200Auth functions
| Function | Purpose |
|---|---|
loginWithEmail | Authenticate user with email + password |
registerUser | Create new user account |
getCurrentUser | Get authenticated user details |
updateProfile | Update profile fields |
changePassword | Change password |
Project management
| Function | Purpose | Auth |
|---|---|---|
dps_createProject | Create new project | User |
dps_getProjects | List user’s projects | User |
dps_getProject | Get project details | Member |
dps_updateProject | Update project settings | Member |
dps_deleteProject | Delete project (cascades) | Owner |
Organizations
| Function | Auth |
|---|---|
createOrganization | User |
getOrganization | Member |
updateOrganization | Owner/Admin |
deleteOrganization | Owner |
listOrganizations | User |
inviteMember | Owner/Admin |
removeMember | Owner/Admin |
Apps
| Function | Auth |
|---|---|
createApp | Member |
getApp | Member |
updateApp | Member |
deleteApp | Owner/Admin |
listApps | Member |
Parse instances
| Function | Purpose |
|---|---|
dps_createParseInstance | Provision a new Parse Server instance |
dps_getParseInstances | List instances for a project |
dps_getParseInstance | Get instance details |
dps_startParseInstance | Start a stopped instance |
dps_stopParseInstance | Stop a running instance |
dps_restartParseInstance | Restart an instance |
dps_deleteParseInstance | Delete instance permanently |
dps_getServerMetrics | Get instance metrics |
Sellub instances
Mirror the Parse Server lifecycle but for Sellub (Vendure) servers:
| Function | Purpose |
|---|---|
dps_deploySellubServer | Deploy sellub-server container |
dps_deploySellubDashboard | Deploy sellub-dashboard |
dps_deploySellubStorefront | Deploy sellub-storefront |
dps_startSellubServer / dps_stopSellubServer / dps_restartSellubServer | Lifecycle |
dps_getSellubServerStatus | Status |
Generic instance helpers
These work across parse-server and sellub (consolidated patterns — see Sellub on DPS):
| Function | Purpose |
|---|---|
dps_getInstanceDetails | Generic fetch by appId |
dps_getInstanceLogs | Docker container logs |
dps_getAppMetrics | Real Docker stats (CPU%, memory) + Parse _User / _Session counts |
dps_createMongoBackup | mongodump via Docker exec |
dps_createPostgresBackup | pg_dump via Docker exec with gzip |
dps_testPostgresConnection | Real pg client diagnostics |
dps_listCloudFunctions | Docker exec grep + introspection fallback (parse-server only) |
dps_runCloudFunction | HTTP proxy to user’s Parse Server (parse-server only) |
Deployments
| Function | Purpose |
|---|---|
triggerDeployment | Start deployment |
getDeployment | Get deployment info |
listDeployments | List app deployments |
cancelDeployment | Cancel in-progress |
rollbackDeployment | Rollback to previous |
getDeploymentLogs | Get build/deploy logs |
Templates (super admin)
| Function | Auth |
|---|---|
createTemplate | SuperAdmin |
getTemplate | Public |
updateTemplate | SuperAdmin |
deleteTemplate | SuperAdmin |
getTemplates | Public |
updateTemplateStatus | SuperAdmin |
updateTemplateVersion | SuperAdmin |
updateTemplatePricing | SuperAdmin |
addTemplateDockerVersion | SuperAdmin |
getFeaturedTemplates | Public |
getTemplatesByCategory | Public |
getTemplateStats | Admin |
Docker images (super admin)
| Function | Auth |
|---|---|
searchDockerImages | Public |
getDockerImage | Public |
registerDockerImage | SuperAdmin |
updateDockerImage | SuperAdmin |
deleteDockerImage | SuperAdmin |
addDockerImageVersion | SuperAdmin |
deprecateDockerImageVersion | SuperAdmin |
triggerDockerBuild | SuperAdmin |
getBuildJobStatus | SuperAdmin |
listBuildJobs | SuperAdmin |
Checkout / payments (DPS-E)
The pipeline every consumer app uses:
| Function | Purpose |
|---|---|
dps_checkout_create | Create a Paystack checkout session. Accepts flow: 'direct' | 'vendure', appId, storeId, amount or lineItems, customer, optional paystackPlanCode. |
dps_checkout_verify | Verify a payment by reference. Used by thank-you pages. |
dps_subscriptions_check | Check whether email has an active subscription for appId. Powers auth gates (Duabaconnect). |
dps_admin_registerVendureChannel | (master key only) Upsert a VendureChannel row mapping channelToken → {appId, storeId, adminApiUrl, adminToken, label}. |
Source-of-truth doc
Full reference (with parameters and response shapes for every function): apps/dps/API.md.