We just released our native n8n integration!» Try now
OnlyFans API
Promotions

Create Promotion

Create a new promotion for the account.

POST
/api/{account}/promotions
AuthorizationBearer <token>

Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys

In: header

Path Parameters

accountstring

The Account ID

Query Parameters

typestring

Whether this promotion should apply to new subscribers, expired subscribers, or both. IMPORTANT: when set to new_and_expired, the OF will create two separate promotions.

Value in"new" | "expired" | "new_and_expired"
discountinteger

The discount percentage for the promotion's first month. Set to 100 to make this promotion a Free Trial.

Value in5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 100
offerLimitinteger

Limit how many people can claim this offer. Set to 0 for no limits.

Value in0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100
expirationDaysinteger

In how many days this offer will expire. Set to 0 to make this promotion infinite.

Value in0 | 1 | 3 | 7 | 14 | 30
freeTrialDays?integer

Required only when discount is 100. Sets the duration (in days) of the free trial. Accepted 1-30

message?string

Optionally, provide a message for this promotion.

Response Body

curl -X POST "https://app.onlyfansapi.com/api/string/promotions?type=new&discount=10&offerLimit=10&expirationDays=7&freeTrialDays=10&message=Enjoy+this+special+offer%21"
{
  "data": [
    {
      "id": 123,
      "message": "Example promotion message",
      "rawMessage": "Example promotion message",
      "hasRelatedPromo": false,
      "price": 0,
      "type": "all",
      "canClaim": true,
      "claimsCount": 0,
      "subscribeCounts": 10,
      "subscribeDays": 7,
      "createdAt": "2025-01-01T00:00:00+00:00",
      "finishedAt": "2025-01-02T00:00:00+00:00",
      "isFinished": false
    }
  ],
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 999999816,
      "note": "Always"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    },
    "_rate_limits": {
      "limit_minute": 1000,
      "limit_day": null,
      "remaining_minute": 998,
      "remaining_day": null,
      "notice": "We have decided to remove our daily rate limits. Please remove any references to these in your integrations."
    }
  }
}