F2F API

Platform Features

The complete developer platform for F2F

A consistent REST surface over fans, messages, vault, earnings and tracking links, with request logs, signed webhooks and predictable rate limits built in.

Built for production workloads

200+ endpoint directory

Creators, fans, chats, mass messages, vault media, earnings, payouts, tracking links, promotions and statistics, all versioned under /v1.

Observability logs

Every request is logged with request_id, latency, status and payload preview. Filter by key, creator or endpoint and replay failed calls.

Webhook engine

Subscribe to subscriptions, tips, PPV unlocks, renewals, cancellations and link clicks. HMAC-SHA256 signatures and 24-hour retry backoff.

Rate limits

120 requests per minute per key by default with Retry-After headers. Enterprise plans unlock custom concurrency.

Idempotency keys

Send an Idempotency-Key header on any POST to make retries safe. Conflicting payloads return 409 idempotency_conflict.

Cursor pagination

Every list endpoint returns has_more and next_cursor so you can stream large fan lists without offsets drifting.

List fans with spend data

Pull a creator's fan list sorted by lifetime spend. The same request works in every supported language.

  • Base URL: https://api.apif2f.com/v1
  • Auth: Authorization: Bearer sk_live_...
  • Env var: F2F_API_KEY
curl -X GET "https://api.apif2f.com/v1/fans?creator_id=crt_8f2a91&sort=-lifetime_spend&limit=100" \
  -H "Authorization: Bearer $F2F_API_KEY"

Endpoint directory

200+ endpoints across 12 resources

A sample of each resource group. Every endpoint shares authentication, pagination and error conventions.

ResourceExample endpointsCount
CreatorsGET /v1/creators, GET /v1/creators/{id}, GET /v1/creators/{id}/stats18
FansGET /v1/fans, GET /v1/fans/{id}, POST /v1/fans/{id}/tags, GET /v1/fans/lifetime-value34
MessagesGET /v1/chats, POST /v1/messages, POST /v1/messages/mass-dm, GET /v1/messages/{id}/stats29
Vault & MediaGET /v1/vault/media, POST /v1/vault/upload, PATCH /v1/vault/media/{id}21
Earnings & PayoutsGET /v1/earnings, GET /v1/earnings/daily, GET /v1/payouts17
Tracking LinksPOST /v1/tracking-links, GET /v1/tracking-links/{id}/clicks14
Ads Tracking (CAPI)POST /v1/capi/conversions, GET /v1/capi/events, POST /v1/capi/test16
Auth & SessionsPOST /v1/auth/session, POST /v1/auth/session/refresh, POST /v1/auth/2fa11
WebhooksPOST /v1/webhooks, GET /v1/webhooks/{id}/deliveries, POST /v1/webhooks/{id}/replay12
Automation & HousekeepingPOST /v1/jobs, POST /v1/housekeeping/prune, POST /v1/housekeeping/ppv-pricing19
ExportsPOST /v1/exports, GET /v1/exports/{id}9
MCPGET /v1/mcp/tools, POST /v1/mcp/tools/call4

Error reference

Standardized error envelopes

Every REST endpoint and webhook dispatch returns the same JSON error shape, so a single handler covers your whole integration.

{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_missing",
    "message": "The required parameter 'creator_id' was not provided in the request body.",
    "param": "creator_id",
    "doc_url": "https://apif2f.com/docs/errors#parameter_missing",
    "request_id": "req_f2f_9b8a7c6d5e"
  }
}
StatusError CodeCategoryCause & ExplanationRecovery Step
400parameter_missinginvalid_request_errorRequired JSON field or query string omitted from payloadInspect payload schema; ensure all mandatory parameters are supplied
400invalid_parameter_formatinvalid_request_errorParameter provided with invalid syntax (e.g. malformed email or ISO date)Ensure dates are ISO 8601 strings and emails pass RFC 5322 validation
401invalid_api_keyauthentication_errorProvided API key does not exist or has been revokedVerify Authorization: Bearer sk_live_... header matches active key in dashboard
401expired_session_tokenauthentication_errorF2F account session vault token has expiredTrigger automated headless token refresh via POST /api/v1/auth/session/refresh
402quota_exceededbilling_errorMonthly request limit exhausted on Trial or Scale planUpgrade plan tier or purchase supplementary request quota in account settings
403insufficient_scopeauthorization_errorAPI key lacks permission to access specified resource or creator accountGenerate a new scoped key with required permissions (e.g. messages:write)
403account_disconnectedauthorization_errorCreator revoked F2F access or changed password directly on F2F.comPrompt agency manager to re-authenticate creator via the Auth Module flow
404resource_not_foundinvalid_request_errorRequested creator ID, fan ID, or message ID does not existVerify resource ID matches active database records; confirm tenant ownership
409idempotency_conflictidempotency_errorDuplicate request detected with an identical Idempotency-Key headerIf payload changed, issue request with a new UUID v4 Idempotency-Key header
422two_factor_requiredauth_challenge_errorF2F security challenge requires SMS, TOTP, or email OTP validationRetrieve auth_challenge_id and submit user code via /api/v1/auth/2fa
422vault_upload_rejectedmedia_errorMedia upload exceeds maximum file size (500MB) or unsupported codecEncode video to H.264/AAC MP4 or image to JPG/PNG before re-uploading
429rate_limit_exceededrate_limit_errorExceeded 120 requests/minute concurrency limitHonor the returned Retry-After: {seconds} header; implement exponential backoff
500internal_server_errorapi_errorUnhandled error within the F2F API platform infrastructureRetry with exponential backoff; if persistent, contact hello@apif2f.com with request_id
502upstream_f2f_timeoutgateway_errorUnderlying F2F.com servers took > 15,000ms to respondImplement automated retry queue (F2F API queues webhook retry automatically for 24h)
503service_maintenanceapi_errorPlatform undergoing scheduled zero-downtime database maintenanceCheck status indicators; requests should be queued and retried after maintenance window

Simulating errors in the sandbox

Trial keys can force any error by sending the header F2F-Simulate-Error: rate_limit_exceeded (or any code above). The sandbox returns the exact envelope, status and headers, including Retry-After for 429 responses, so you can test retry and backoff logic before going live.

Platform FAQ

Start building on F2F today.

Free sandbox access, 1,000 monthly requests, no credit card. API automation and server-side ads tracking in one key.

Prefer email? hello@apif2f.com