API reference
Get your app
Your app as we know it: name, logo, status and commission terms. Always the app the key is bound to.
View as MarkdownUpdated Oct 30, 2026
GET
/api/external/crm/appNewYour app as we know it: name, logo, status and commission terms. Always the app the key is bound to.
Authentication
Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.
Responses
200Your app.
| Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
id | string | Your app’s id. | ||||||
name | string | App name, as creators see it. | ||||||
logoUrl | string | null | App logo, or null. Format: uri | ||||||
status | string | Always approved here: a suspended app’s keys get 403 app_suspended on every endpoint.One of: approved | ||||||
commission | object | Your commission terms.Show child attributes
|
Example response
{
"id": "clxap0001app",
"name": "Acme CRM",
"logoUrl": "https://cdn.example.com/acme/logo.png",
"status": "approved",
"commission": {
"rate": 0.05,
"types": [
"drop",
"tip",
"subscription"
]
}
}Errors
| Status | Body | When |
|---|---|---|
| 401 | {"error":"Unauthorized","code":"unauthorized"} | Missing or invalid API key. |
| 403 | {"error":"This endpoint needs a key bound to an approved app.","code":"app_key_required"} | A Personal key was used. |
| 403 | {"error":"Use the app owner's key for this endpoint.","code":"owner_key_required"} | The key was minted by a creator for themselves. App-level calls need a key held by your app owner: their own, or one their agency minted for its personas or managed creators. |
| 400 | {"error":"This endpoint only acts as the key’s own account — send it without X-Dropfans-Account.","code":"account_header_not_allowed"} | `X-Dropfans-Account` was sent. These endpoints always answer for the key’s app. |
Rate limiting
Every response carries the X-RateLimit-Tier header and, on limited tiers, the per-minute and per-day trios — read X-RateLimit-Remaining and X-RateLimit-Reset instead of hardcoding limits. Details in Rate limits.
Code samples
curl "https://www.dropfans.io/api/external/crm/app" \
-H "Authorization: Bearer $DROPFANS_API_KEY"const res = await fetch(`https://www.dropfans.io/api/external/crm/app`, {
headers: {
Authorization: `Bearer ${process.env.DROPFANS_API_KEY}`,
},
});
console.log(await res.json());import os
import requests
res = requests.get(
"https://www.dropfans.io/api/external/crm/app",
headers={"Authorization": f"Bearer {os.environ['DROPFANS_API_KEY']}"},
)
print(res.json())Questions? [email protected]
