> ## Documentation Index
> Fetch the complete documentation index at: https://www.dropfans.io/developers/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /api/external/v1/me — Which creator this API key belongs to

> Returns the creator account behind the key, plus metadata about the key itself.

- Source: https://www.dropfans.io/developers/reference/get-me
- Section: API reference
- OpenAPI: https://www.dropfans.io/developers/openapi.json

Also served at `/api/external/me` (the unversioned alias).

Returns the creator account behind the key, plus metadata about the key itself.

Call it once at startup to confirm the key works and to learn the creator's `id`, `username` and `accountType` — posting to the For You feed needs CREATOR or AGENCY, and every link surface needs a `username`. The `key` block tells you which integration the key was minted for and its rate-limit tier, matching the `X-RateLimit-Tier` header.

Called for a creator (`/v1/creators/{creatorId}/me`, or the deprecated `X-Dropfans-Account`), it describes that account instead: `key.via` is `agency` (with `key.viaAgency: true` and the agency in `key.managedBy`) or `app` for an account your app onboarded — a cheap way to check you point where you think. `isAgency: true` on the agency's own key means it can use the [agency endpoints](https://www.dropfans.io/developers/concepts/agencies.md).

## Authentication

`Authorization: Bearer dpfn_...` — an API key generated in the dashboard (Vault → API Connect). By default the key acts for the one account it belongs to. Missing or invalid keys return 401 `{"error":"Unauthorized","code":"unauthorized"}`.

**For a creator you manage or onboarded:** `GET /api/external/v1/creators/{creatorId}/me` — with a verified agency's own key for a creator or AI persona it manages, or your app owner's own key for an account your app onboarded (ids from GET /api/external/v1/creators). The response echoes the account acted on in `X-Dropfans-Account`. Sending `X-Dropfans-Account: <account id>` on the plain path still works but is deprecated.

## Responses

### 200

The key’s creator account.

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | The Dropfans user id of the account this request acted on — the key’s own account, or the managed account named in `X-Dropfans-Account`. Stable — safe to key your own records on. |
| `username` | string \\| null |  | The creator’s public @handle, without the @. Null until the creator picks one — several link surfaces (GET /api/external/v1/links, the post `url`) need it. |
| `name` | string \\| null |  | Display name. Null when unset. |
| `image` | string \\| null |  | Profile image URL. Null when the creator has no avatar. |
| `accountType` | `CONSUMER` \\| `CREATOR` \\| `AGENCY` |  | Account class of the account acted on. Posting to the For You feed requires CREATOR or AGENCY. |
| `sellerStatus` | string |  | Internal seller state, for support (PENDING_KYC, KYC_IN_REVIEW, KYC_REJECTED, VERIFIED_CREATOR, VERIFIED_AGENCY). Added 2026-10-15. |
| `isAgency` | boolean |  | True when the account is a verified agency (sellerStatus VERIFIED_AGENCY) — its own key can use the /api/external/v1/agency endpoints and `X-Dropfans-Account`. Added 2026-10-15. |
| `kycStatus` | `not_started` \\| `session_created` \\| `in_review` \\| `processing` \\| `approved` \\| `rejected` \\| `covered_by_agency` |  | Coarse ID-check state. `covered_by_agency` = an AI persona whose verification rides on its agency’s. Added 2026-10-15. |
| `key` | object |  | Metadata about the API key used on this request (added 2026-08-19). |
| `key.name` | string |  | The key’s label, chosen at mint (defaults to the app name, or "Personal"). |
| `key.app` | object \\| null |  | The integration this key was minted for. Null for a Personal key. |
| `key.app.slug` | string |  | Stable app identifier. |
| `key.app.name` | string |  | App display name. |
| `key.tier` | `personal` \\| `app` \\| `first_party` |  | Rate-limit tier of this key — the same value the X-RateLimit-Tier response header carries. |
| `key.managedBy` | object \\| null |  | The agency managing the account through this key: the key’s holder when `viaAgency` is true, else the agency that minted this key for the creator. Null for a creator’s own key. |
| `key.managedBy.id` | string |  | The agency’s user id. |
| `key.managedBy.username` | string \\| null |  | The agency’s @handle. |
| `key.managedBy.name` | string \\| null |  | The agency’s display name. |
| `key.viaAgency` | boolean |  | True when an agency’s own key is acting for a managed account — via /api/external/v1/creators/{creatorId}/… or `X-Dropfans-Account` (added 2026-10-26). |
| `key.via` | `self` \\| `agency` \\| `app` |  | How the key reached this account: `self` = its own account, `agency` = an agency acting for a managed creator, `app` = an app owner acting for an account its app onboarded (added 2026-11-01). |
| `key.apiCategories` | ApiCategoryState[] \\| null |  | The key’s app’s API category switches (see /developers/concepts/api-categories). Null for a Personal key, which has none. Added 2026-11-01. |

```json
{
  "id": "clx2f8a1b0001qw3k",
  "username": "valeria",
  "name": "Valeria",
  "image": "https://cdn.dropfans.io/valeria/profile.jpg",
  "accountType": "CREATOR",
  "sellerStatus": "VERIFIED_CREATOR",
  "isAgency": false,
  "kycStatus": "approved",
  "key": {
    "name": "KVIQA",
    "app": {
      "slug": "kviqa",
      "name": "KVIQA"
    },
    "tier": "app",
    "managedBy": null,
    "viaAgency": false
  }
}
```

## Errors

| Status | Body | When |
|---|---|---|
| 401 | `{"error":"Unauthorized","code":"unauthorized"}` | Missing or invalid API key. |
| 400 | `{"error":"X-Dropfans-Account must be an account id (from GET /api/external/agency/creators), not a username.","code":"invalid_account_header"}` | `X-Dropfans-Account` is not an account id. |
| 400 | `{"error":"X-Dropfans-Account names a different account than the path — send one or the other.","code":"account_mismatch"}` | Called under /v1/creators/{creatorId}/ with an `X-Dropfans-Account` naming another account. |
| 403 | `{"error":"This key cannot act for that account.","code":"account_not_managed"}` | The creator in the path (or `X-Dropfans-Account`) is one this key cannot act for: no ACCEPTED management by your agency and not an account your app onboarded (or it no longer holds a key bound to your app), a key minted for one creator, or someone is suspended, banned or deleted. An unknown id gets the same answer. |

## Notes

The `accountType` and `key` fields were added with the public launch (2026-08-19); `sellerStatus`, `isAgency`, `kycStatus` and `key.managedBy` on 2026-10-15; `key.viaAgency` on 2026-10-26; `key.via` and `key.apiCategories` on 2026-11-01. `id`, `username`, `name` and `image` are unchanged from the original response.

## Rate limiting

Per-key fixed windows by tier (Personal 60/min · 5,000/day; approved apps 300/min · 50,000/day; Dropfans-operated integrations exempt). Read the live values from X-RateLimit-Tier, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and their -Day variants; a 429 carries Retry-After and `{"error":"Rate limit exceeded","code":"rate_limited"}`. See [Rate limits](https://www.dropfans.io/developers/concepts/rate-limits.md).

## Code samples

### curl

```bash
curl "https://www.dropfans.io/api/external/v1/me" \
  -H "Authorization: Bearer $DROPFANS_API_KEY"
```

### Node

```javascript
const res = await fetch(`https://www.dropfans.io/api/external/v1/me`, {
  headers: {
    Authorization: `Bearer ${process.env.DROPFANS_API_KEY}`,
  },
});
console.log(await res.json());
```

### Python

```python
import os
import requests

res = requests.get(
    "https://www.dropfans.io/api/external/v1/me",
    headers={"Authorization": f"Bearer {os.environ['DROPFANS_API_KEY']}"},
)
print(res.json())
```

## OpenAPI

```json
{
  "method": "GET",
  "path": "/api/external/v1/me",
  "operationId": "getMe",
  "tags": [
    "account"
  ],
  "summary": "Which creator this API key belongs to",
  "description": "Returns the creator account behind the key, plus metadata about the key itself.\n\nCall it once at startup to confirm the key works and to learn the creator's `id`, `username` and `accountType` — posting to the For You feed needs CREATOR or AGENCY, and every link surface needs a `username`. The `key` block tells you which integration the key was minted for and its rate-limit tier, matching the `X-RateLimit-Tier` header.\n\nCalled for a creator (`/v1/creators/{creatorId}/me`, or the deprecated `X-Dropfans-Account`), it describes that account instead: `key.via` is `agency` (with `key.viaAgency: true` and the agency in `key.managedBy`) or `app` for an account your app onboarded — a cheap way to check you point where you think. `isAgency: true` on the agency's own key means it can use the [agency endpoints](https://www.dropfans.io/developers/concepts/agencies.md).",
  "parameters": [
    {
      "name": "X-Dropfans-Account",
      "in": "header",
      "required": false,
      "deprecated": true,
      "description": "Deprecated: call the …ForCreator operation (/api/external/v1/creators/{creatorId}/…) instead; the header keeps working and such responses carry Deprecation and Link: rel=\"successor-version\". With a verified agency’s own key, the id of a creator or AI persona the agency manages (from GET /api/external/v1/agency/creators): the request then acts as that account, exactly as if it were sent with that account’s own key. Account ids only — usernames are refused (400 invalid_account_header). Checked on every request: the management must be ACCEPTED, nobody may be suspended, banned or deleted (else 403 account_not_managed), and the agency needs the endpoint’s permission on that account (else 403 permission_denied). Omit it to act as the key’s own account.",
      "schema": {
        "type": "string",
        "pattern": "^c[a-z0-9]{20,32}$"
      },
      "example": "cmh4v2q8k0003xy9z7w6v5u4t"
    }
  ],
  "responses": {
    "200": {
      "description": "The key’s creator account.",
      "headers": {
        "X-RateLimit-Tier": {
          "description": "Rate-limit tier of the key: personal, app or first_party (first_party is unlimited).",
          "schema": {
            "type": "string",
            "enum": [
              "personal",
              "app",
              "first_party"
            ]
          }
        },
        "X-RateLimit-Limit": {
          "description": "Requests allowed per minute for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining": {
          "description": "Requests left in the current minute window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset": {
          "description": "Epoch seconds when the minute window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Limit-Day": {
          "description": "Requests allowed per UTC day for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining-Day": {
          "description": "Requests left in the current UTC day window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset-Day": {
          "description": "Epoch seconds when the day window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-Dropfans-Account": {
          "description": "The id of the account this request acted on — the key’s own account, or the managed account named in the X-Dropfans-Account request header. Assert it when acting for several accounts.",
          "schema": {
            "type": "string"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Dropfans user id of the account this request acted on — the key’s own account, or the managed account named in `X-Dropfans-Account`. Stable — safe to key your own records on.",
                "example": "clx2f8a1b0001qw3k"
              },
              "username": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The creator’s public @handle, without the @. Null until the creator picks one — several link surfaces (GET /api/external/v1/links, the post `url`) need it.",
                "example": "valeria"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Display name. Null when unset.",
                "example": "Valeria"
              },
              "image": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Profile image URL. Null when the creator has no avatar.",
                "format": "uri"
              },
              "accountType": {
                "type": "string",
                "description": "Account class of the account acted on. Posting to the For You feed requires CREATOR or AGENCY.",
                "enum": [
                  "CONSUMER",
                  "CREATOR",
                  "AGENCY"
                ],
                "example": "CREATOR"
              },
              "sellerStatus": {
                "type": "string",
                "description": "Internal seller state, for support (PENDING_KYC, KYC_IN_REVIEW, KYC_REJECTED, VERIFIED_CREATOR, VERIFIED_AGENCY). Added 2026-10-15.",
                "example": "VERIFIED_CREATOR"
              },
              "isAgency": {
                "type": "boolean",
                "description": "True when the account is a verified agency (sellerStatus VERIFIED_AGENCY) — its own key can use the /api/external/v1/agency endpoints and `X-Dropfans-Account`. Added 2026-10-15.",
                "example": false
              },
              "kycStatus": {
                "type": "string",
                "description": "Coarse ID-check state. `covered_by_agency` = an AI persona whose verification rides on its agency’s. Added 2026-10-15.",
                "enum": [
                  "not_started",
                  "session_created",
                  "in_review",
                  "processing",
                  "approved",
                  "rejected",
                  "covered_by_agency"
                ],
                "example": "approved"
              },
              "key": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The key’s label, chosen at mint (defaults to the app name, or \"Personal\").",
                    "example": "KVIQA"
                  },
                  "app": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "slug": {
                        "type": "string",
                        "description": "Stable app identifier.",
                        "example": "kviqa"
                      },
                      "name": {
                        "type": "string",
                        "description": "App display name.",
                        "example": "KVIQA"
                      }
                    },
                    "description": "The integration this key was minted for. Null for a Personal key."
                  },
                  "tier": {
                    "type": "string",
                    "description": "Rate-limit tier of this key — the same value the X-RateLimit-Tier response header carries.",
                    "enum": [
                      "personal",
                      "app",
                      "first_party"
                    ],
                    "example": "app"
                  },
                  "managedBy": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The agency’s user id."
                      },
                      "username": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The agency’s @handle."
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The agency’s display name."
                      }
                    },
                    "description": "The agency managing the account through this key: the key’s holder when `viaAgency` is true, else the agency that minted this key for the creator. Null for a creator’s own key."
                  },
                  "viaAgency": {
                    "type": "boolean",
                    "description": "True when an agency’s own key is acting for a managed account — via /api/external/v1/creators/{creatorId}/… or `X-Dropfans-Account` (added 2026-10-26).",
                    "example": false
                  },
                  "via": {
                    "type": "string",
                    "description": "How the key reached this account: `self` = its own account, `agency` = an agency acting for a managed creator, `app` = an app owner acting for an account its app onboarded (added 2026-11-01).",
                    "enum": [
                      "self",
                      "agency",
                      "app"
                    ],
                    "example": "self"
                  },
                  "apiCategories": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Category id — the `category` of a 403 `api_category_disabled`.",
                          "example": "payouts"
                        },
                        "label": {
                          "type": "string",
                          "description": "Human-readable name.",
                          "example": "Payouts"
                        },
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether your app may call this category’s endpoints.",
                          "example": false
                        },
                        "locked": {
                          "type": "boolean",
                          "description": "True for categories that are always on (account).",
                          "example": false
                        }
                      },
                      "required": [
                        "id",
                        "label",
                        "enabled",
                        "locked"
                      ]
                    },
                    "description": "The key’s app’s API category switches (see /developers/concepts/api-categories). Null for a Personal key, which has none. Added 2026-11-01."
                  }
                },
                "description": "Metadata about the API key used on this request (added 2026-08-19)."
              }
            },
            "required": [
              "id"
            ]
          },
          "example": {
            "id": "clx2f8a1b0001qw3k",
            "username": "valeria",
            "name": "Valeria",
            "image": "https://cdn.dropfans.io/valeria/profile.jpg",
            "accountType": "CREATOR",
            "sellerStatus": "VERIFIED_CREATOR",
            "isAgency": false,
            "kycStatus": "approved",
            "key": {
              "name": "KVIQA",
              "app": {
                "slug": "kviqa",
                "name": "KVIQA"
              },
              "tier": "app",
              "managedBy": null,
              "viaAgency": false
            }
          }
        }
      }
    },
    "400": {
      "description": "`X-Dropfans-Account` is not an account id. Also: Called under /v1/creators/{creatorId}/ with an `X-Dropfans-Account` naming another account.",
      "headers": {
        "X-RateLimit-Tier": {
          "description": "Rate-limit tier of the key: personal, app or first_party (first_party is unlimited).",
          "schema": {
            "type": "string",
            "enum": [
              "personal",
              "app",
              "first_party"
            ]
          }
        },
        "X-RateLimit-Limit": {
          "description": "Requests allowed per minute for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining": {
          "description": "Requests left in the current minute window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset": {
          "description": "Epoch seconds when the minute window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Limit-Day": {
          "description": "Requests allowed per UTC day for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining-Day": {
          "description": "Requests left in the current UTC day window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset-Day": {
          "description": "Epoch seconds when the day window resets.",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Human-readable message.",
                "example": "Rate limit exceeded"
              },
              "code": {
                "type": "string",
                "description": "Machine-readable code: unauthorized, app_suspended, first_party_only, api_category_disabled, rate_limited, username_required, invalid_account_header, account_not_managed, permission_denied, account_header_not_allowed, agency_key_required — plus endpoint-specific codes listed on each reference page.",
                "example": "rate_limited"
              }
            },
            "required": [
              "error",
              "code"
            ]
          },
          "example": {
            "error": "X-Dropfans-Account must be an account id (from GET /api/external/agency/creators), not a username.",
            "code": "invalid_account_header"
          }
        }
      }
    },
    "401": {
      "description": "Missing or invalid API key.",
      "headers": {
        "X-RateLimit-Tier": {
          "description": "Rate-limit tier of the key: personal, app or first_party (first_party is unlimited).",
          "schema": {
            "type": "string",
            "enum": [
              "personal",
              "app",
              "first_party"
            ]
          }
        },
        "X-RateLimit-Limit": {
          "description": "Requests allowed per minute for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining": {
          "description": "Requests left in the current minute window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset": {
          "description": "Epoch seconds when the minute window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Limit-Day": {
          "description": "Requests allowed per UTC day for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining-Day": {
          "description": "Requests left in the current UTC day window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset-Day": {
          "description": "Epoch seconds when the day window resets.",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Human-readable message.",
                "example": "Rate limit exceeded"
              },
              "code": {
                "type": "string",
                "description": "Machine-readable code: unauthorized, app_suspended, first_party_only, api_category_disabled, rate_limited, username_required, invalid_account_header, account_not_managed, permission_denied, account_header_not_allowed, agency_key_required — plus endpoint-specific codes listed on each reference page.",
                "example": "rate_limited"
              }
            },
            "required": [
              "error",
              "code"
            ]
          },
          "example": {
            "error": "Unauthorized",
            "code": "unauthorized"
          }
        }
      }
    },
    "403": {
      "description": "The creator in the path (or `X-Dropfans-Account`) is one this key cannot act for: no ACCEPTED management by your agency and not an account your app onboarded (or it no longer holds a key bound to your app), a key minted for one creator, or someone is suspended, banned or deleted. An unknown id gets the same answer.",
      "headers": {
        "X-RateLimit-Tier": {
          "description": "Rate-limit tier of the key: personal, app or first_party (first_party is unlimited).",
          "schema": {
            "type": "string",
            "enum": [
              "personal",
              "app",
              "first_party"
            ]
          }
        },
        "X-RateLimit-Limit": {
          "description": "Requests allowed per minute for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining": {
          "description": "Requests left in the current minute window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset": {
          "description": "Epoch seconds when the minute window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Limit-Day": {
          "description": "Requests allowed per UTC day for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining-Day": {
          "description": "Requests left in the current UTC day window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset-Day": {
          "description": "Epoch seconds when the day window resets.",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Human-readable message.",
                "example": "Rate limit exceeded"
              },
              "code": {
                "type": "string",
                "description": "Machine-readable code: unauthorized, app_suspended, first_party_only, api_category_disabled, rate_limited, username_required, invalid_account_header, account_not_managed, permission_denied, account_header_not_allowed, agency_key_required — plus endpoint-specific codes listed on each reference page.",
                "example": "rate_limited"
              }
            },
            "required": [
              "error",
              "code"
            ]
          },
          "example": {
            "error": "This key cannot act for that account.",
            "code": "account_not_managed"
          }
        }
      }
    },
    "429": {
      "description": "Rate limit exceeded for the current minute or day window. Wait Retry-After seconds and retry.",
      "headers": {
        "X-RateLimit-Tier": {
          "description": "Rate-limit tier of the key: personal, app or first_party (first_party is unlimited).",
          "schema": {
            "type": "string",
            "enum": [
              "personal",
              "app",
              "first_party"
            ]
          }
        },
        "X-RateLimit-Limit": {
          "description": "Requests allowed per minute for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining": {
          "description": "Requests left in the current minute window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset": {
          "description": "Epoch seconds when the minute window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Limit-Day": {
          "description": "Requests allowed per UTC day for this key (absent on first_party).",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Remaining-Day": {
          "description": "Requests left in the current UTC day window.",
          "schema": {
            "type": "integer"
          }
        },
        "X-RateLimit-Reset-Day": {
          "description": "Epoch seconds when the day window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "Retry-After": {
          "description": "Seconds to wait before retrying (sent with 429s).",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Human-readable message.",
                "example": "Rate limit exceeded"
              },
              "code": {
                "type": "string",
                "description": "Machine-readable code: unauthorized, app_suspended, first_party_only, api_category_disabled, rate_limited, username_required, invalid_account_header, account_not_managed, permission_denied, account_header_not_allowed, agency_key_required — plus endpoint-specific codes listed on each reference page.",
                "example": "rate_limited"
              }
            },
            "required": [
              "error",
              "code"
            ]
          },
          "example": {
            "error": "Rate limit exceeded",
            "code": "rate_limited"
          }
        }
      }
    }
  },
  "x-codeSamples": [
    {
      "lang": "cURL",
      "label": "curl",
      "source": "curl \"https://www.dropfans.io/api/external/v1/me\" \\\n  -H \"Authorization: Bearer $DROPFANS_API_KEY\""
    },
    {
      "lang": "JavaScript",
      "label": "Node",
      "source": "const res = await fetch(`https://www.dropfans.io/api/external/v1/me`, {\n  headers: {\n    Authorization: `Bearer ${process.env.DROPFANS_API_KEY}`,\n  },\n});\nconsole.log(await res.json());"
    },
    {
      "lang": "Python",
      "source": "import os\nimport requests\n\nres = requests.get(\n    \"https://www.dropfans.io/api/external/v1/me\",\n    headers={\"Authorization\": f\"Bearer {os.environ['DROPFANS_API_KEY']}\"},\n)\nprint(res.json())"
    }
  ],
  "x-dropfans-docs": "https://www.dropfans.io/developers/reference/get-me",
  "x-dropfans-category": "account",
  "x-dropfans-agency-permission": null
}
```

---

Previous: [API reference overview](https://www.dropfans.io/developers/reference/overview.md) · Next: [Read the creator’s public profile](https://www.dropfans.io/developers/reference/get-profile.md) · All pages: [llms.txt](https://www.dropfans.io/developers/llms.txt)
