Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
1980ebe
feat(api): api update
stainless-app[bot] May 25, 2026
be61973
feat(api): api update
stainless-app[bot] May 25, 2026
8b6b6a1
feat(api): api update
stainless-app[bot] May 25, 2026
8e3f41a
feat(api): api update
stainless-app[bot] May 26, 2026
231c428
feat(api): api update
stainless-app[bot] May 26, 2026
5e0dfb2
feat(api): api update
stainless-app[bot] May 26, 2026
94c5355
feat(api): api update
stainless-app[bot] May 26, 2026
501f426
feat(api): api update
stainless-app[bot] May 27, 2026
0a52056
feat(api): api update
stainless-app[bot] May 27, 2026
192ab69
feat(api): api update
stainless-app[bot] May 27, 2026
deff141
feat(api): api update
stainless-app[bot] May 27, 2026
5b2ac7b
feat(api): api update
stainless-app[bot] May 27, 2026
ab1c889
feat(api): api update
stainless-app[bot] May 27, 2026
141f257
feat(api): api update
stainless-app[bot] May 28, 2026
26475cd
feat(api): api update
stainless-app[bot] May 29, 2026
52a55ae
feat(api): api update
stainless-app[bot] Jun 1, 2026
cbc9d88
feat(api): api update
stainless-app[bot] Jun 2, 2026
92899b2
feat(api): api update
stainless-app[bot] Jun 2, 2026
0356380
feat(api): api update
stainless-app[bot] Jun 3, 2026
e9db188
feat(api): api update
stainless-app[bot] Jun 4, 2026
f22f8ef
feat(api): api update
stainless-app[bot] Jun 4, 2026
efdea3b
feat(api): api update
stainless-app[bot] Jun 4, 2026
7f28b90
feat(api): api update
stainless-app[bot] Jun 5, 2026
59b720e
feat(api): api update
stainless-app[bot] Jun 5, 2026
196af8c
feat(api): api update
stainless-app[bot] Jun 5, 2026
44e78c1
codegen metadata
stainless-app[bot] Jun 5, 2026
d0f1e1b
codegen metadata
stainless-app[bot] Jun 5, 2026
60925a0
feat(api): api update
stainless-app[bot] Jun 5, 2026
ee2c0ca
feat(api): api update
stainless-app[bot] Jun 5, 2026
8b4369d
feat(api): api update
stainless-app[bot] Jun 6, 2026
9c0416e
feat(api): api update
stainless-app[bot] Jun 8, 2026
206d9b8
feat(api): api update
stainless-app[bot] Jun 9, 2026
e730bd1
feat(api): api update
stainless-app[bot] Jun 9, 2026
aaf95d7
feat(api): api update
stainless-app[bot] Jun 9, 2026
01a46c6
feat(api): api update
stainless-app[bot] Jun 9, 2026
5de9c43
feat(api): api update
stainless-app[bot] Jun 11, 2026
ee42afe
feat(api): api update
stainless-app[bot] Jun 11, 2026
bbbb279
feat(api): api update
stainless-app[bot] Jun 11, 2026
a3aa7f5
feat(api): api update
stainless-app[bot] Jun 11, 2026
761278f
feat(api): api update
stainless-app[bot] Jun 12, 2026
5c57dd0
feat(api): api update
stainless-app[bot] Jun 12, 2026
afe6f6c
feat(api): api update
stainless-app[bot] Jun 12, 2026
d83ad90
feat(api): api update
stainless-app[bot] Jun 12, 2026
fc76e11
feat(api): api update
stainless-app[bot] Jun 12, 2026
92378ee
feat(api): api update
stainless-app[bot] Jun 12, 2026
10e67de
feat(api): api update
stainless-app[bot] Jun 12, 2026
25b3558
feat(api): api update
stainless-app[bot] Jun 14, 2026
94cf329
feat(api): api update
stainless-app[bot] Jun 14, 2026
bb8c8ab
feat(api): api update
stainless-app[bot] Jun 14, 2026
d68116c
feat(api): api update
stainless-app[bot] Jun 14, 2026
bb14b95
feat(api): api update
stainless-app[bot] Jun 14, 2026
c8968ce
feat(api): api update
stainless-app[bot] Jun 15, 2026
49cd504
feat(api): api update
stainless-app[bot] Jun 15, 2026
01855d9
feat(api): api update
stainless-app[bot] Jun 15, 2026
2fa3ee5
feat(api): api update
stainless-app[bot] Jun 15, 2026
5b8546d
feat(api): api update
stainless-app[bot] Jun 15, 2026
0bc264c
feat(api): api update
stainless-app[bot] Jun 15, 2026
55af6e0
feat(api): api update
stainless-app[bot] Jun 15, 2026
c5aaeeb
feat(api): api update
stainless-app[bot] Jun 16, 2026
8d50090
feat(api): api update
stainless-app[bot] Jun 16, 2026
289d92c
feat(api): api update
stainless-app[bot] Jun 16, 2026
ccfe0a2
feat(api): api update
stainless-app[bot] Jun 16, 2026
2500623
feat(api): api update
stainless-app[bot] Jun 16, 2026
3e2c097
feat(api): api update
stainless-app[bot] Jun 16, 2026
ccbd8e2
fix(client): send content-type header for requests with an omitted op…
stainless-app[bot] Jun 17, 2026
0ca203c
feat(api): api update
stainless-app[bot] Jun 17, 2026
868ff45
feat(api): api update
stainless-app[bot] Jun 17, 2026
8a0b064
feat(api): api update
stainless-app[bot] Jun 17, 2026
aa3b0e0
feat(api): api update
stainless-app[bot] Jun 18, 2026
faeb177
feat(api): api update
stainless-app[bot] Jun 18, 2026
3ab0702
feat(api): api update
stainless-app[bot] Jun 18, 2026
a79815d
feat(api): api update
stainless-app[bot] Jun 18, 2026
312a493
feat(api): api update
stainless-app[bot] Jun 19, 2026
288d7df
feat(api): api update
stainless-app[bot] Jun 19, 2026
e388dfd
feat(api): api update
stainless-app[bot] Jun 19, 2026
631cdca
feat(api): api update
stainless-app[bot] Jun 19, 2026
95700ba
feat(api): api update
stainless-app[bot] Jun 19, 2026
4a76fb4
feat(api): api update
stainless-app[bot] Jun 19, 2026
3666b55
feat(api): api update
stainless-app[bot] Jun 20, 2026
1444b9d
feat(api): api update
stainless-app[bot] Jun 20, 2026
51c7d03
feat(api): api update
stainless-app[bot] Jun 21, 2026
7dccd7f
feat(api): api update
stainless-app[bot] Jun 21, 2026
41016bb
feat(api): api update
stainless-app[bot] Jun 22, 2026
e954dcc
feat(api): api update
stainless-app[bot] Jun 22, 2026
15349b5
feat(api): api update
stainless-app[bot] Jun 22, 2026
0caa488
feat(api): api update
stainless-app[bot] Jun 22, 2026
7368b4a
feat(api): api update
stainless-app[bot] Jun 22, 2026
a1b9176
feat(api): api update
stainless-app[bot] Jun 23, 2026
b432c6f
feat(api): api update
stainless-app[bot] Jun 23, 2026
483d562
feat(api): api update
stainless-app[bot] Jun 23, 2026
510acf6
feat(api): api update
stainless-app[bot] Jun 23, 2026
cb70c60
feat(api): api update
stainless-app[bot] Jun 23, 2026
b77e834
feat(api): api update
stainless-app[bot] Jun 23, 2026
a04abd3
feat(api): api update
stainless-app[bot] Jun 23, 2026
fa7dd95
feat(api): api update
stainless-app[bot] Jun 24, 2026
eea3446
feat(api): api update
stainless-app[bot] Jun 25, 2026
c064880
feat(api): api update
stainless-app[bot] Jun 25, 2026
aa173c1
feat(api): api update
stainless-app[bot] Jun 25, 2026
12d9ed0
feat(api): api update
stainless-app[bot] Jun 25, 2026
2ac5d02
feat(api): api update
stainless-app[bot] Jun 25, 2026
1796912
feat(api): api update
stainless-app[bot] Jun 26, 2026
62bdcce
feat(api): api update
stainless-app[bot] Jun 26, 2026
2816bd9
feat(api): api update
stainless-app[bot] Jun 26, 2026
73ee11e
feat(api): api update
stainless-app[bot] Jun 27, 2026
b316fc2
feat(api): api update
stainless-app[bot] Jun 27, 2026
3ea3815
feat(api): api update
stainless-app[bot] Jun 28, 2026
904ce14
feat(api): api update
stainless-app[bot] Jun 28, 2026
5dc1f11
feat(api): api update
stainless-app[bot] Jun 28, 2026
a3b740c
feat(api): api update
stainless-app[bot] Jun 28, 2026
f2ffc9f
feat(api): api update
stainless-app[bot] Jun 29, 2026
7d736fb
feat(api): api update
stainless-app[bot] Jun 29, 2026
adefdbb
feat(api): api update
stainless-app[bot] Jun 29, 2026
efc070e
feat(api): api update
stainless-app[bot] Jun 29, 2026
9cc5830
feat(api): api update
stainless-app[bot] Jun 29, 2026
4aacd42
feat(api): api update
stainless-app[bot] Jun 29, 2026
95c3909
chore(internal): bound formatter parallelism to CPU count
stainless-app[bot] Jun 30, 2026
4bb2501
feat(api): api update
stainless-app[bot] Jun 30, 2026
71bb889
feat(api): api update
stainless-app[bot] Jun 30, 2026
ceb51e3
feat(api): api update
stainless-app[bot] Jun 30, 2026
4b3ba42
feat(api): api update
stainless-app[bot] Jun 30, 2026
9a39701
feat(api): api update
stainless-app[bot] Jun 30, 2026
bd813b8
feat(api): api update
stainless-app[bot] Jun 30, 2026
bd5ee20
feat(api): api update
stainless-app[bot] Jun 30, 2026
fa6edbb
feat(api): api update
stainless-app[bot] Jun 30, 2026
8b85593
feat(api): api update
stainless-app[bot] Jul 1, 2026
cac2205
feat(api): api update
stainless-app[bot] Jul 2, 2026
4887485
feat(api): api update
stainless-app[bot] Jul 2, 2026
fe02d9a
feat(api): api update
stainless-app[bot] Jul 2, 2026
e5afcbb
feat(api): api update
stainless-app[bot] Jul 2, 2026
bb0b546
feat(api): api update
stainless-app[bot] Jul 3, 2026
49b77ca
feat(api): api update
stainless-app[bot] Jul 3, 2026
b024970
feat(api): api update
stainless-app[bot] Jul 3, 2026
7463e03
feat(api): api update
stainless-app[bot] Jul 3, 2026
2fe0bc4
feat(api): api update
stainless-app[bot] Jul 3, 2026
835c1d9
feat(api): api update
stainless-app[bot] Jul 3, 2026
fa6e927
feat(api): api update
stainless-app[bot] Jul 4, 2026
d99bdb4
feat(api): api update
stainless-app[bot] Jul 4, 2026
bbb3d7e
feat(api): api update
stainless-app[bot] Jul 4, 2026
aabe3d1
feat(api): api update
stainless-app[bot] Jul 4, 2026
07783b8
feat(api): api update
stainless-app[bot] Jul 4, 2026
d5a9a01
feat(api): api update
stainless-app[bot] Jul 5, 2026
9669171
feat(api): api update
stainless-app[bot] Jul 5, 2026
fcf9ce3
feat(api): api update
stainless-app[bot] Jul 5, 2026
9a3865f
feat(api): api update
stainless-app[bot] Jul 5, 2026
f9fde9b
feat(api): api update
stainless-app[bot] Jul 5, 2026
e0cf8c7
feat(api): api update
stainless-app[bot] Jul 5, 2026
73fd391
feat(api): api update
stainless-app[bot] Jul 6, 2026
6b993b2
feat(api): api update
stainless-app[bot] Jul 6, 2026
aebccd2
feat(api): api update
stainless-app[bot] Jul 6, 2026
ed431c9
feat(api): api update
stainless-app[bot] Jul 7, 2026
76d16b1
feat(api): api update
stainless-app[bot] Jul 7, 2026
f2a3127
feat(api): api update
stainless-app[bot] Jul 7, 2026
94750f9
feat(api): api update
stainless-app[bot] Jul 9, 2026
ff8c5e7
feat(api): api update
stainless-app[bot] Jul 10, 2026
d7ce56f
release: 0.3.0
stainless-app[bot] Jul 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.2.0"
".": "0.3.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 266
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-bb6c9c76d967f92637fe23928eed8e2b72857607f7d633cd313edac2159251da.yml
openapi_spec_hash: 6ebbddf9d4240bc9dd02c40ba29fdbbc
configured_endpoints: 265
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-c7b4dde3eb431e3c636e2b6bc3a7bc40aaee037783648040876793082942a877.yml
openapi_spec_hash: b2059518c78b8c03fcbd4e1773ff4d77
config_hash: 397c91e15c0024f8b5bbed9b82c2348c
167 changes: 167 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
onlyfans (0.2.0)
onlyfans (0.3.0)
cgi
connection_pool

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "onlyfans", "~> 0.2.0"
gem "onlyfans", "~> 0.3.0"
```

<!-- x-release-please-end -->
Expand Down
7 changes: 6 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# frozen_string_literal: true

require "etc"
require "pathname"
require "securerandom"
require "shellwords"
Expand Down Expand Up @@ -37,7 +38,11 @@ multitask(:test) do
ruby(*%w[-w -e], rb, verbose: false) { fail unless _1 }
end

xargs = %w[xargs --no-run-if-empty --null --max-procs=0 --max-args=300 --]
# Cap parallelism at the CPU count. `--max-procs=0` spawns one process per
# 300-file batch with no upper bound; on large SDKs (thousands of files) that
# oversubscribes CPUs and stacks up rubocop processes, exhausting memory and
# slowing CI to the point of timing out.
xargs = %W[xargs --no-run-if-empty --null --max-procs=#{Etc.nprocessors} --max-args=300 --]
ruby_opt = {"RUBYOPT" => [ENV["RUBYOPT"], "--encoding=UTF-8"].compact.join(" ")}

filtered = ->(ext, dirs) do
Expand Down
3 changes: 0 additions & 3 deletions lib/onlyfans.rb
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@
require_relative "onlyfans/models/media/vault_upload_params"
require_relative "onlyfans/models/media/vault_upload_response"
require_relative "onlyfans/models/media_download_params"
require_relative "onlyfans/models/media_download_response"
require_relative "onlyfans/models/media_scrape_params"
require_relative "onlyfans/models/media_scrape_response"
require_relative "onlyfans/models/media_upload_params"
Expand All @@ -256,8 +255,6 @@
require_relative "onlyfans/models/me_get_top_percentage_response"
require_relative "onlyfans/models/me_retrieve_params"
require_relative "onlyfans/models/me_retrieve_response"
require_relative "onlyfans/models/message_attach_tags_params"
require_relative "onlyfans/models/message_attach_tags_response"
require_relative "onlyfans/models/notification_get_counts_params"
require_relative "onlyfans/models/notification_get_counts_response"
require_relative "onlyfans/models/notification_list_params"
Expand Down
2 changes: 1 addition & 1 deletion lib/onlyfans/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class Client < Onlyfans::Internal::Transport::BaseClient
# @return [Onlyfans::Resources::Giphy]
attr_reader :giphy

# APIs for managing tags on free trial links and tracking links
# APIs for managing tags on free trial links, tracking links, and Smart Links
# @return [Onlyfans::Resources::LinkTags]
attr_reader :link_tags

Expand Down
5 changes: 4 additions & 1 deletion lib/onlyfans/internal/transport/base_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,10 @@ def initialize(
Onlyfans::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
end

headers.delete("content-type") if body.nil?
# Generated methods always pass `req[:body]` for operations that define a
# request body, so only elide the content-type header when the operation
# has no body at all, not when an optional body param was omitted.
headers.delete("content-type") if body.nil? && !req.key?(:body)

url = Onlyfans::Internal::Util.join_parsed_uri(
@base_url_components,
Expand Down
2 changes: 0 additions & 2 deletions lib/onlyfans/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,6 @@ module Onlyfans

MeRetrieveParams = Onlyfans::Models::MeRetrieveParams

MessageAttachTagsParams = Onlyfans::Models::MessageAttachTagsParams

NotificationGetCountsParams = Onlyfans::Models::NotificationGetCountsParams

NotificationListParams = Onlyfans::Models::NotificationListParams
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,127 @@ module Onlyfans
module Models
module Analytics
module Financial
class ProfitabilityGetHistoryResponseItem < Onlyfans::Internal::Type::BaseModel
# @!attribute gross_revenue
# @see Onlyfans::Resources::Analytics::Financial::Profitability#get_history
class ProfitabilityGetHistoryResponse < Onlyfans::Internal::Type::BaseModel
# @!attribute data
#
# @return [Float, nil]
optional :gross_revenue, Float
# @return [Array<Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data>, nil]
optional :data,
-> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] }

# @!attribute margin
#
# @return [Float, nil]
optional :margin, Float
# @!method initialize(data: nil)
# @param data [Array<Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data>]

# @!attribute month
#
# @return [Integer, nil]
optional :month, Integer
class Data < Onlyfans::Internal::Type::BaseModel
# @!attribute active_milestones
#
# @return [String, nil]
optional :active_milestones, String, api_name: :activeMilestones, nil?: true

# @!attribute net_revenue
#
# @return [Float, nil]
optional :net_revenue, Float
# @!attribute agency_earnings
#
# @return [String, nil]
optional :agency_earnings, String, api_name: :agencyEarnings

# @!attribute profit
#
# @return [Float, nil]
optional :profit, Float
# @!attribute commission_amount
#
# @return [String, nil]
optional :commission_amount, String, api_name: :commissionAmount

# @!attribute year
#
# @return [Integer, nil]
optional :year, Integer

# @!method initialize(gross_revenue: nil, margin: nil, month: nil, net_revenue: nil, profit: nil, year: nil)
# @param gross_revenue [Float]
# @param margin [Float]
# @param month [Integer]
# @param net_revenue [Float]
# @param profit [Float]
# @param year [Integer]
end
# @!attribute commission_rate
#
# @return [String, nil]
optional :commission_rate, String, api_name: :commissionRate

# @!attribute costs
#
# @return [Array<Object>, nil]
optional :costs, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown]

# @!attribute creator_name
#
# @return [String, nil]
optional :creator_name, String, api_name: :creatorName

# @!attribute has_commission_for_period
#
# @return [Boolean, nil]
optional :has_commission_for_period,
Onlyfans::Internal::Type::Boolean,
api_name: :hasCommissionForPeriod

# @!attribute has_costs_for_period
#
# @return [Boolean, nil]
optional :has_costs_for_period, Onlyfans::Internal::Type::Boolean, api_name: :hasCostsForPeriod

# @type [Onlyfans::Internal::Type::Converter]
ProfitabilityGetHistoryResponse =
Onlyfans::Internal::Type::ArrayOf[-> { Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem }]
# @!attribute margin_percentage
#
# @return [String, nil]
optional :margin_percentage, String, api_name: :marginPercentage

# @!attribute month
#
# @return [Integer, nil]
optional :month, Integer

# @!attribute only_fans_user_id
#
# @return [Integer, nil]
optional :only_fans_user_id, Integer, api_name: :onlyFansUserId

# @!attribute profit
#
# @return [String, nil]
optional :profit, String

# @!attribute projected_net
#
# @return [String, nil]
optional :projected_net, String, api_name: :projectedNet

# @!attribute rate_periods
#
# @return [Array<Object>, nil]
optional :rate_periods,
Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown],
api_name: :ratePeriods

# @!attribute referral_note
#
# @return [String, nil]
optional :referral_note, String, api_name: :referralNote, nil?: true

# @!attribute total_costs
#
# @return [String, nil]
optional :total_costs, String, api_name: :totalCosts

# @!attribute year
#
# @return [Integer, nil]
optional :year, Integer

# @!method initialize(active_milestones: nil, agency_earnings: nil, commission_amount: nil, commission_rate: nil, costs: nil, creator_name: nil, has_commission_for_period: nil, has_costs_for_period: nil, margin_percentage: nil, month: nil, only_fans_user_id: nil, profit: nil, projected_net: nil, rate_periods: nil, referral_note: nil, total_costs: nil, year: nil)
# @param active_milestones [String, nil]
# @param agency_earnings [String]
# @param commission_amount [String]
# @param commission_rate [String]
# @param costs [Array<Object>]
# @param creator_name [String]
# @param has_commission_for_period [Boolean]
# @param has_costs_for_period [Boolean]
# @param margin_percentage [String]
# @param month [Integer]
# @param only_fans_user_id [Integer]
# @param profit [String]
# @param projected_net [String]
# @param rate_periods [Array<Object>]
# @param referral_note [String, nil]
# @param total_costs [String]
# @param year [Integer]
end
end
end
end
end
Expand Down
Loading