Skip to main content
POST
/
v2
/
access
/
promotions
Create promotion
curl --request POST \
  --url https://api.ofauth.com/v2/access/promotions \
  --header 'Content-Type: application/json' \
  --header 'apiKey: <api-key>' \
  --header 'x-connection-id: <api-key>' \
  --data '
{
  "targetAudience": "all_subscribers",
  "discount": {
    "type": "free_trial",
    "durationDays": 15
  },
  "offer": {
    "limit": 0,
    "expirationDays": 0
  },
  "message": ""
}
'
[
  {
    "id": 123,
    "message": "<string>",
    "rawMessage": "<string>",
    "hasRelatedPromo": true,
    "price": 123,
    "type": "all",
    "canClaim": true,
    "claimsCount": 1,
    "subscribeCounts": 1,
    "subscribeDays": 1,
    "createdAt": "<string>",
    "finishedAt": "<string>",
    "isFinished": true
  }
]

Documentation Index

Fetch the complete documentation index at: https://docs.ofauth.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

apiKey
string
header
required

Your OFAuth API key for authenticating requests.

x-connection-id
string
header
required

Requires a connection via the x-connection-id header.

Body

application/json
targetAudience
enum<string>
required

Audience that can claim the promotion. all_subscribers targets new and expired subscribers; new_subscribers targets only new subscribers; expired_subscribers targets only expired subscribers.

Available options:
all_subscribers,
new_subscribers,
expired_subscribers
discount
object
required

Promotion discount configuration.

offer
object

Offer limits and expiration.

message
string
default:""

Optional promotion message.

Maximum string length: 1000

Response

Successful response

id
integer
required

Promotion ID

message
string
required

Rendered promotion message

rawMessage
string
required

Original promotion message

True when OF created paired audience promotions from one request

price
number
required

Discounted subscription price in dollars

type
enum<string>
required

Promotion campaign audience returned by OnlyFans.

Available options:
all,
expired
canClaim
boolean
required

Whether the promotion can currently be claimed

claimsCount
integer
required

Number of claims so far

Required range: x >= 0
subscribeCounts
integer | null
required

Offer limit, or null for no limit

Required range: x >= 0
subscribeDays
integer
required

Accepted promotion duration in days. OF can return 0 for first-month discounts.

Required range: x >= 0
createdAt
string
required

Creation timestamp returned by OF

finishedAt
string | null
required

Finish timestamp, or null for promotions without an explicit end date

isFinished
boolean
required

Whether the promotion has ended