Class: Onlyfans::Resources::TrialLinks

Inherits:
Object
  • Object
show all
Defined in:
lib/onlyfans/resources/trial_links.rb,
lib/onlyfans/resources/trial_links/tags.rb

Overview

APIs for managing Free Trial Links

Defined Under Namespace

Classes: Tags

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ TrialLinks

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of TrialLinks.

Parameters:



276
277
278
279
# File 'lib/onlyfans/resources/trial_links.rb', line 276

def initialize(client:)
  @client = client
  @tags = Onlyfans::Resources::TrialLinks::Tags.new(client: client)
end

Instance Attribute Details

#tagsOnlyfans::Resources::TrialLinks::Tags (readonly)

APIs for managing Free Trial Links



9
10
11
# File 'lib/onlyfans/resources/trial_links.rb', line 9

def tags
  @tags
end

Instance Method Details

#create(account, duration:, offer_expiration:, offer_limit:, name: nil, tags: nil, request_options: {}) ⇒ Onlyfans::Models::TrialLinkCreateResponse

Some parameter documentations has been truncated, see Models::TrialLinkCreateParams for more details.

Create a new free trial link for the account

Parameters:

  • account (String)

    The Account ID

  • duration (Integer, Onlyfans::Models::TrialLinkCreateParams::Duration)

    The duration of the free trial **in days**. Must be 1, 3, 7, 14,

  • offer_expiration (Integer)

    The trial link expiration **in days (from now)**. Must either be 0 (to never

  • offer_limit (Integer, Onlyfans::Models::TrialLinkCreateParams::OfferLimit)

    How many people can use this offer. Must either be 0 (for no limit), or a nu

  • name (String, nil)

    The name of the trail link (optional). Cannot be longer than 64 characters.

  • tags (Array<String>)

    Array of tag names to add to the trial link.

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



35
36
37
38
39
40
41
42
43
44
# File 'lib/onlyfans/resources/trial_links.rb', line 35

def create(, params)
  parsed, options = Onlyfans::TrialLinkCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["api/%1$s/trial-links", ],
    body: parsed,
    model: Onlyfans::Models::TrialLinkCreateResponse,
    options: options
  )
end

#delete(trial_link_id, account:, request_options: {}) ⇒ Onlyfans::Models::TrialLinkDeleteResponse

Delete a free trial link by its ID

Parameters:

  • trial_link_id (String)

    The ID of the trial link.

  • account (String)

    The Account ID

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/onlyfans/resources/trial_links.rb', line 122

def delete(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkDeleteParams.dump_request(params)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :delete,
    path: ["api/%1$s/trial-links/%2$s", , trial_link_id],
    model: Onlyfans::Models::TrialLinkDeleteResponse,
    options: options
  )
end

#list(account, limit:, offset:, field: nil, sort: nil, synchronous: nil, request_options: {}) ⇒ Onlyfans::Models::TrialLinkListResponse

Some parameter documentations has been truncated, see Models::TrialLinkListParams for more details.

List all free trial links for the account, including the details and statistics

Parameters:

  • account (String)

    The Account ID

  • limit (Integer)

    The number of trial links to return. Default ‘10`

  • offset (Integer)

    The offset used for pagination. Default ‘0`

  • field (Symbol, Onlyfans::Models::TrialLinkListParams::Field, nil)

    Sort the results by a field. Default ‘create_date`

  • sort (Symbol, Onlyfans::Models::TrialLinkListParams::Sort, nil)

    Sort the results. Default ‘desc`

  • synchronous (Boolean, nil)

    Wait for the revenue data to finish processing, instead of processing in the bac

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



97
98
99
100
101
102
103
104
105
106
107
# File 'lib/onlyfans/resources/trial_links.rb', line 97

def list(, params)
  parsed, options = Onlyfans::TrialLinkListParams.dump_request(params)
  query = Onlyfans::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links", ],
    query: query,
    model: Onlyfans::Models::TrialLinkListResponse,
    options: options
  )
end

#list_spenders(trial_link_id, account:, limit: nil, min_spend: nil, offset: nil, request_options: {}) ⇒ Onlyfans::Models::TrialLinkListSpendersResponse

Only available if we already scraped subscribers and calculated revenue per fan

Parameters:

  • trial_link_id (String)

    Path param: The ID of the free trial link to get spenders for

  • account (String)

    Path param: The Account ID

  • limit (Integer)

    Query param: The number of spenders to return per page. Default ‘50`.

  • min_spend (Float)

    Query param: Minimal spend of a fan. Default ‘1`. Must be at least 1.

  • offset (Integer)

    Query param: The offset used for pagination. Default ‘0`.

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/onlyfans/resources/trial_links.rb', line 155

def list_spenders(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkListSpendersParams.dump_request(params)
  query = Onlyfans::Internal::Util.encode_query_params(parsed)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links/%2$s/spenders", , trial_link_id],
    query: query.transform_keys(min_spend: "minSpend"),
    model: Onlyfans::Models::TrialLinkListSpendersResponse,
    options: options
  )
end

#list_subscribers(trial_link_id, account:, limit:, offset:, request_options: {}) ⇒ Onlyfans::Models::TrialLinkListSubscribersResponse

Get list of subscribers who joined through a Free Trial Link

Parameters:

  • trial_link_id (String)

    Path param: The ID of the trial link.

  • account (String)

    Path param: The Account ID

  • limit (Integer)

    Query param: The number of subscribers to return per page. Default ‘10`

  • offset (Integer)

    Query param: The offset used for pagination. Default ‘0`

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/onlyfans/resources/trial_links.rb', line 188

def list_subscribers(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkListSubscribersParams.dump_request(params)
  query = Onlyfans::Internal::Util.encode_query_params(parsed)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links/%2$s/subscribers", , trial_link_id],
    query: query,
    model: Onlyfans::Models::TrialLinkListSubscribersResponse,
    options: options
  )
end

#retrieve(trial_link_id, account:, request_options: {}) ⇒ Onlyfans::Models::TrialLinkRetrieveResponse

Get individual Free Trial Link details and it’s revenue data

Parameters:

  • trial_link_id (String)

    The ID of the trial link.

  • account (String)

    The Account ID

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/onlyfans/resources/trial_links.rb', line 59

def retrieve(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkRetrieveParams.dump_request(params)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links/%2$s", , trial_link_id],
    model: Onlyfans::Models::TrialLinkRetrieveResponse,
    options: options
  )
end

#retrieve_cohort_arps(trial_link_id, account:, acquisition_end: nil, acquisition_start: nil, revenue_basis: nil, request_options: {}) ⇒ nil

Get per-link time-to-profit cohort ARPS windows for a specific Free Trial Link

Parameters:

  • trial_link_id (String)

    Path param: The ID of the trial link.

  • account (String)

    Path param: The Account ID

  • acquisition_end (String)

    Query param: Optional acquisition range end date

  • acquisition_start (String)

    Query param: Optional acquisition range start date

  • revenue_basis (Symbol, Onlyfans::Models::TrialLinkRetrieveCohortArpsParams::RevenueBasis)

    Query param: Revenue basis. Defaults to ‘net`.

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (nil)

See Also:



223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# File 'lib/onlyfans/resources/trial_links.rb', line 223

def retrieve_cohort_arps(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkRetrieveCohortArpsParams.dump_request(params)
  query = Onlyfans::Internal::Util.encode_query_params(parsed)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links/%2$s/cohort-arps", , trial_link_id],
    query: query,
    model: NilClass,
    options: options
  )
end

#retrieve_stats(trial_link_id, account:, date_end: nil, date_start: nil, request_options: {}) ⇒ Onlyfans::Models::TrialLinkRetrieveStatsResponse

Get dashboard-style summary plus daily and monthly metrics for a specific Free Trial Link

Parameters:

  • trial_link_id (String)

    Path param: The ID of the trial link.

  • account (String)

    Path param: The Account ID

  • date_end (String)

    Query param: Optional stats range end date

  • date_start (String)

    Query param: Optional stats range start date

  • request_options (Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/onlyfans/resources/trial_links.rb', line 257

def retrieve_stats(trial_link_id, params)
  parsed, options = Onlyfans::TrialLinkRetrieveStatsParams.dump_request(params)
  query = Onlyfans::Internal::Util.encode_query_params(parsed)
   =
    parsed.delete(:account) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :get,
    path: ["api/%1$s/trial-links/%2$s/stats", , trial_link_id],
    query: query,
    model: Onlyfans::Models::TrialLinkRetrieveStatsResponse,
    options: options
  )
end