API reference
Get an account you created
Status of one account your app created — `pending_kyc` until the ID check is approved, then `active`.
View as MarkdownUpdated Oct 17, 2026
GET
/api/external/accounts/{id}NewStatus of one account your app created — pending_kyc until the ID check is approved, then active.
Authentication
Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | The accountId from create-account. |
Responses
200The account.
| Name | Type | Description |
|---|---|---|
accountId | string | The new account’s id. |
username | string | Public @handle (without @). |
displayName | string | null | Display name. |
email | string | null | Sign-in email. Format: email |
accountType | string | What the account was created as. One of: creator, agency |
status | string | pending_kyc until the ID check is approved, then active (can sell and get paid).One of: pending_kyc, active |
sellerStatus | string | Internal seller state, for support (PENDING_KYC, KYC_IN_REVIEW, KYC_REJECTED, VERIFIED_CREATOR, VERIFIED_AGENCY). |
kycStatus | string | ID-check state. session_created = link opened, not finished; processing = approved, compliance documents still being generated.One of: not_started, session_created, in_review, processing, approved, rejected |
profileUrl | string | Public profile URL. Format: uri |
createdAt | string | When the account was created. Format: date-time |
Example response
{
"accountId": "clxac0001acct",
"username": "valeria",
"displayName": "Valeria",
"email": "[email protected]",
"accountType": "creator",
"status": "pending_kyc",
"sellerStatus": "PENDING_KYC",
"kycStatus": "session_created",
"profileUrl": "https://www.dropfans.io/u/valeria",
"createdAt": "2026-10-17T16:00:00.000Z"
}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. |
| 403 | {"error":"This app is not enabled for this endpoint. Contact support.","code":"capability_missing"} | Creator sign-up has not been enabled for your app yet. |
| 404 | {"error":"Account not found"} | No such account, or another app created it. |
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/accounts/$ID" \
-H "Authorization: Bearer $DROPFANS_API_KEY"const id = '…'; // from an earlier response
const res = await fetch(`https://www.dropfans.io/api/external/accounts/${id}`, {
headers: {
Authorization: `Bearer ${process.env.DROPFANS_API_KEY}`,
},
});
console.log(await res.json());import os
import requests
id = "…" # from an earlier response
res = requests.get(
f"https://www.dropfans.io/api/external/accounts/{id}",
headers={"Authorization": f"Bearer {os.environ['DROPFANS_API_KEY']}"},
)
print(res.json())Questions? [email protected]
