List your agency’s invites
API reference

List your agency’s invites

The agency’s creator invites, newest first, each with its status: `pending`, `accepted`, `expired` or `revoked`.

View as MarkdownUpdated Nov 1, 2026
GET/api/external/v1/agency/invitesalso served at /api/external/agency/invitesNew

The agency’s creator invites, newest first, each with its status: pending, accepted, expired or revoked.

The join link itself is not returned again — only a hash of it is stored. Revoke a pending invite with DELETE /agency/invites/{id}.

Authentication

Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.

Needs the agency's own key, sent without X-Dropfans-Account.

Query parameters

NameTypeRequiredDescription
statusstringOptionalOnly invites with this status.
One of: pending, accepted, expired, revoked
limitintegerOptionalPage size.
Default: 50
Min: 1
Max: 100
cursorstringOptionalnextCursor from the previous page.

Responses

200One page of invites.
NameTypeDescription
dataAgencyInviteRow[]The invites.
Show child attributes
idstringThe invite’s id (inviteId when it was created).
statusstringaccepted once a creator used the link (it stays accepted), revoked after DELETE, expired 72 hours after creation, else pending.
One of: pending, accepted, expired, revoked
emailstring | nullThe address it was emailed to, or null.
Format: email
messagestring | nullThe personal note, or null.
createdAtstringWhen the invite was created.
Format: date-time
expiresAtstringWhen the link stops working.
Format: date-time
acceptedAtstring | nullWhen a creator accepted it, or null.
Format: date-time
acceptedBystring | nullThe account id that accepted it, or null.
nextCursorstring | nullPass as cursor for the next page; null on the last page.
Example response
{
  "data": [
    {
      "id": "cmh5inv0001ab7k2p9q4r8s",
      "status": "pending",
      "email": "[email protected]",
      "message": null,
      "createdAt": "2026-10-26T12:00:00.000Z",
      "expiresAt": "2026-10-29T12:00:00.000Z",
      "acceptedAt": null,
      "acceptedBy": null
    }
  ],
  "nextCursor": null
}

Errors

StatusBodyWhen
400{"error":"Agency endpoints act as the agency itself — send them without X-Dropfans-Account.","code":"account_header_not_allowed"}The request carried `X-Dropfans-Account`. Agency endpoints always act as the agency.
401{"error":"Unauthorized","code":"unauthorized"}Missing or invalid API key.
403{"error":"This endpoint needs a verified agency's own API key.","code":"agency_key_required"}The key is not a verified agency’s own key — a creator’s key, or a key an agency minted for one of its creators.
400{"error":"status must be one of pending, accepted, expired, revoked","code":"invalid_status"}Bad `status` (also `invalid_limit`).
400{"error":"This endpoint acts as the key’s own account or app — call it without /creators/{creatorId}.","code":"creator_scope_not_allowed"}Called under /api/external/v1/creators/{creatorId}/ — this endpoint always acts as the key’s own account, agency or app.
403{"error":"This app does not have the agency API category enabled. Contact support to enable it.","code":"api_category_disabled","category":"agency"}Your app has the Agency roster [API category](/developers/concepts/api-categories) switched off.

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/v1/agency/invites" \
  -H "Authorization: Bearer $DROPFANS_API_KEY"

Questions? [email protected]