Make your first call
One authenticated request to GET /api/external/me that proves your key works.
The shortest path to a working integration is one request that returns the creator behind your key.
1. Generate a key#
In the Dropfans dashboard, open Vault → API Connect and hit Generate new key. Pick Personal for your own scripts, or your app if it has been approved. The key starts with dpfn_ — you can copy it again from the same screen any time.
A key gives full access to that creator’s vault, drops, earnings and feed. Treat it like a password and keep it out of client-side code and shared chats.
2. Send the request#
curl "https://www.dropfans.io/api/external/me" \
-H "Authorization: Bearer $DROPFANS_API_KEY"const res = await fetch('https://www.dropfans.io/api/external/me', {
headers: { Authorization: 'Bearer ' + process.env.DROPFANS_API_KEY },
});
const me = await res.json();
console.log(me.username);import os, requests
res = requests.get(
"https://www.dropfans.io/api/external/me",
headers={"Authorization": f"Bearer {os.environ['DROPFANS_API_KEY']}"},
)
print(res.json()["username"])3. Read the response#
{
"id": "cmawq81x40001lb04xyz12abc",
"username": "ava",
"name": "Ava",
"image": "https://cdn.dropfans.io/ava/avatar.jpg",
"accountType": "CREATOR",
"key": {
"name": "Personal",
"app": null,
"tier": "personal"
}
}If username is the creator you expected, authentication works. key.app names the app the key was generated for (null for a personal key), and key.tier is the rate-limit tier the key runs at.
4. Decode a 401#
{ "error": "Unauthorized", "code": "unauthorized" }Check, in order: the header is exactly Authorization: Bearer dpfn_… (the literal Bearer prefix, one space); the key was not truncated or padded with whitespace when you copied it; the creator has not revoked it — a revoked key returns 401 forever, there is no grace period.
Next: Connect a creator to your app or Sell a drop end-to-end.
Questions? [email protected]
