When an account has two-factor enabled — or OnlyFans raises a device-trust gate for an unfamiliar login — the attempt parks on a challenge state andDocumentation Index
Fetch the complete documentation index at: https://docs.onlyfanskit.dev/llms.txt
Use this file to discover all available pages before exploring further.
next_actions tells you what to send.
Two-factor channels
OnlyFans offers three two-factor channels:Poll state | Channel | How to resolve | Status |
|---|---|---|---|
needs_otp | SMS code | PUT /v1/connect/login/{id} { "code": "123456" } | Supported |
needs_app_otp | Authenticator app (TOTP) | PUT /v1/connect/login/{id} { "code": "123456" } | Supported |
needs_face_otp | Selfie / Face ID | Open face_verification_url, then PUT … { "selfie_verification_completed": true } | Upcoming |
wrong_2fa_code_retry so the creator can
try again. The poll includes otp_channel and (for email) email_mask to
drive your UI.
Email device verification
Separately from 2FA, OnlyFans may require a one-time email verification code to establish device trust for an unfamiliar login context (new device/region) or before sensitive actions. This is not a channel you configure — it’s a gate the API raises. When it triggers, the attempt parks onneeds_email:
Reauthentication
If an account was connected withremember_credentials: true, you can
re-acquire a fresh session from the stored credentials without a full login:
needs_app_otp so you can submit a code via the same PUT. Without
stored credentials you get 412 and must re-link.