onlyfans 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +315 -0
  3. data/README.md +9 -4
  4. data/lib/onlyfans/client.rb +11 -3
  5. data/lib/onlyfans/internal/transport/base_client.rb +4 -1
  6. data/lib/onlyfans/models/analytics/financial/profitability_get_history_response.rb +114 -36
  7. data/lib/onlyfans/models/analytics/financial/profitability_get_profitability_response.rb +112 -46
  8. data/lib/onlyfans/models/authenticate_start_params.rb +1 -0
  9. data/lib/onlyfans/models/chat_list_media_params.rb +6 -2
  10. data/lib/onlyfans/models/chat_list_params.rb +8 -3
  11. data/lib/onlyfans/models/chats/message_list_params.rb +6 -6
  12. data/lib/onlyfans/models/chats/message_send_params.rb +41 -6
  13. data/lib/onlyfans/models/client_session_create_params.rb +1 -0
  14. data/lib/onlyfans/models/data_export_create_params.rb +36 -21
  15. data/lib/onlyfans/models/data_export_list_params.rb +5 -0
  16. data/lib/onlyfans/models/data_export_list_response.rb +7 -1
  17. data/lib/onlyfans/models/data_export_retrieve_response.rb +7 -1
  18. data/lib/onlyfans/models/engagement/message_get_message_buyers_params.rb +2 -2
  19. data/lib/onlyfans/models/engagement/message_get_top_message_params.rb +3 -3
  20. data/lib/onlyfans/models/engagement/messages/direct_message_chart_params.rb +2 -2
  21. data/lib/onlyfans/models/engagement/messages/direct_message_list_params.rb +3 -3
  22. data/lib/onlyfans/models/engagement/messages/mass_message_chart_params.rb +2 -2
  23. data/lib/onlyfans/models/engagement/messages/mass_message_list_params.rb +3 -3
  24. data/lib/onlyfans/models/fan_list_active_params.rb +55 -13
  25. data/lib/onlyfans/models/fan_list_all_params.rb +55 -13
  26. data/lib/onlyfans/models/fan_list_expired_params.rb +55 -13
  27. data/lib/onlyfans/models/fan_list_latest_params.rb +8 -8
  28. data/lib/onlyfans/models/fan_list_top_params.rb +6 -6
  29. data/lib/onlyfans/models/fans/summary_get_summary_response.rb +49 -2
  30. data/lib/onlyfans/models/following_list_active_params.rb +79 -1
  31. data/lib/onlyfans/models/following_list_all_params.rb +79 -1
  32. data/lib/onlyfans/models/following_list_expired_params.rb +79 -1
  33. data/lib/onlyfans/models/link_tag_list_params.rb +4 -3
  34. data/lib/onlyfans/models/mass_messaging_retrieve_overview_params.rb +3 -3
  35. data/lib/onlyfans/models/mass_messaging_send_params.rb +44 -6
  36. data/lib/onlyfans/models/mass_messaging_update_params.rb +34 -6
  37. data/lib/onlyfans/models/media/upload_get_status_response.rb +54 -27
  38. data/lib/onlyfans/models/media/vault/list_list_params.rb +14 -1
  39. data/lib/onlyfans/models/media/vault/list_list_response.rb +420 -202
  40. data/lib/onlyfans/models/media/vault/list_update_params.rb +11 -1
  41. data/lib/onlyfans/models/media/vault_upload_params.rb +3 -1
  42. data/lib/onlyfans/models/media_upload_params.rb +3 -1
  43. data/lib/onlyfans/models/notification_list_params.rb +3 -3
  44. data/lib/onlyfans/models/post_create_params.rb +29 -1
  45. data/lib/onlyfans/models/post_update_params.rb +29 -1
  46. data/lib/onlyfans/models/queue_list_params.rb +36 -15
  47. data/lib/onlyfans/models/release_form_list_taggable_users_response.rb +8 -8
  48. data/lib/onlyfans/models/shared_tracking_link_list_params.rb +75 -10
  49. data/lib/onlyfans/models/shared_trial_link_list_params.rb +26 -10
  50. data/lib/onlyfans/models/smart_link_create_response.rb +2 -2
  51. data/lib/onlyfans/models/smart_link_list_clicks_response.rb +19 -1
  52. data/lib/onlyfans/models/smart_link_list_conversions_params.rb +1 -0
  53. data/lib/onlyfans/models/smart_link_list_conversions_response.rb +19 -1
  54. data/lib/onlyfans/models/smart_link_list_fans_params.rb +21 -1
  55. data/lib/onlyfans/models/smart_link_list_fans_response.rb +99 -3
  56. data/lib/onlyfans/models/smart_link_list_params.rb +27 -9
  57. data/lib/onlyfans/models/smart_link_postback_create_params.rb +66 -4
  58. data/lib/onlyfans/models/smart_link_postback_create_response.rb +48 -1
  59. data/lib/onlyfans/models/smart_link_postback_list_response.rb +48 -1
  60. data/lib/onlyfans/models/smart_link_postback_retrieve_response.rb +48 -1
  61. data/lib/onlyfans/models/smart_link_postback_update_params.rb +65 -1
  62. data/lib/onlyfans/models/smart_link_postback_update_response.rb +48 -1
  63. data/lib/onlyfans/models/statistic_calculate_total_transactions_params.rb +5 -5
  64. data/lib/onlyfans/models/statistic_get_subscriber_metrics_params.rb +25 -1
  65. data/lib/onlyfans/models/statistics/reach_get_profile_visitors_params.rb +2 -2
  66. data/lib/onlyfans/models/statistics/statement_get_earnings_params.rb +10 -10
  67. data/lib/onlyfans/models/stored_list_tracking_links_response.rb +7 -1
  68. data/lib/onlyfans/models/stored_list_trial_links_response.rb +7 -1
  69. data/lib/onlyfans/models/story_create_params.rb +293 -6
  70. data/lib/onlyfans/models/story_create_response.rb +330 -7
  71. data/lib/onlyfans/models/tracking_link_get_stats_response.rb +7 -1
  72. data/lib/onlyfans/models/tracking_link_list_params.rb +58 -30
  73. data/lib/onlyfans/models/tracking_link_list_response.rb +7 -1
  74. data/lib/onlyfans/models/tracking_link_list_spenders_response.rb +7 -1
  75. data/lib/onlyfans/models/tracking_link_retrieve_response.rb +7 -1
  76. data/lib/onlyfans/models/transaction_list_params.rb +2 -2
  77. data/lib/onlyfans/models/trial_link_list_params.rb +44 -27
  78. data/lib/onlyfans/models/trial_link_list_response.rb +7 -1
  79. data/lib/onlyfans/models/trial_link_list_spenders_response.rb +7 -1
  80. data/lib/onlyfans/models/trial_link_retrieve_response.rb +7 -1
  81. data/lib/onlyfans/models/trial_link_retrieve_stats_response.rb +7 -1
  82. data/lib/onlyfans/models/user_list_list_params.rb +21 -1
  83. data/lib/onlyfans/models/user_lists/user_add_params.rb +18 -1
  84. data/lib/onlyfans/models/user_lists/user_add_response.rb +246 -88
  85. data/lib/onlyfans/models/webhook_create_params.rb +11 -7
  86. data/lib/onlyfans/models/webhook_update_params.rb +11 -7
  87. data/lib/onlyfans/models.rb +0 -2
  88. data/lib/onlyfans/resources/analytics/financial/profitability.rb +4 -4
  89. data/lib/onlyfans/resources/chats/messages.rb +47 -8
  90. data/lib/onlyfans/resources/chats.rb +7 -4
  91. data/lib/onlyfans/resources/data_exports.rb +1 -1
  92. data/lib/onlyfans/resources/engagement/messages/direct_messages.rb +2 -2
  93. data/lib/onlyfans/resources/engagement/messages/mass_messages.rb +2 -2
  94. data/lib/onlyfans/resources/engagement/messages.rb +2 -2
  95. data/lib/onlyfans/resources/fans.rb +43 -10
  96. data/lib/onlyfans/resources/following.rb +58 -12
  97. data/lib/onlyfans/resources/link_tags.rb +4 -4
  98. data/lib/onlyfans/resources/mass_messaging.rb +18 -9
  99. data/lib/onlyfans/resources/media/uploads.rb +6 -1
  100. data/lib/onlyfans/resources/media/vault/lists.rb +30 -5
  101. data/lib/onlyfans/resources/media.rb +14 -8
  102. data/lib/onlyfans/resources/messages.rb +0 -39
  103. data/lib/onlyfans/resources/notifications.rb +1 -1
  104. data/lib/onlyfans/resources/posts.rb +6 -2
  105. data/lib/onlyfans/resources/queue.rb +9 -6
  106. data/lib/onlyfans/resources/release_forms.rb +2 -1
  107. data/lib/onlyfans/resources/shared_tracking_links.rb +12 -5
  108. data/lib/onlyfans/resources/shared_trial_links.rb +6 -5
  109. data/lib/onlyfans/resources/smart_link_postbacks.rb +18 -3
  110. data/lib/onlyfans/resources/smart_links.rb +13 -4
  111. data/lib/onlyfans/resources/statistics/reach.rb +1 -1
  112. data/lib/onlyfans/resources/statistics/statements.rb +3 -3
  113. data/lib/onlyfans/resources/statistics.rb +5 -3
  114. data/lib/onlyfans/resources/stories.rb +13 -6
  115. data/lib/onlyfans/resources/tracking_links/tags.rb +5 -1
  116. data/lib/onlyfans/resources/tracking_links.rb +21 -11
  117. data/lib/onlyfans/resources/transactions.rb +1 -1
  118. data/lib/onlyfans/resources/trial_links/tags.rb +5 -1
  119. data/lib/onlyfans/resources/trial_links.rb +22 -10
  120. data/lib/onlyfans/resources/user_lists/users.rb +7 -2
  121. data/lib/onlyfans/resources/user_lists.rb +5 -2
  122. data/lib/onlyfans/resources/users.rb +4 -1
  123. data/lib/onlyfans/resources/webhooks.rb +6 -4
  124. data/lib/onlyfans/version.rb +1 -1
  125. data/lib/onlyfans.rb +0 -3
  126. data/rbi/onlyfans/client.rbi +11 -3
  127. data/rbi/onlyfans/models/analytics/financial/profitability_get_history_response.rbi +203 -63
  128. data/rbi/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbi +201 -79
  129. data/rbi/onlyfans/models/authenticate_start_params.rbi +5 -0
  130. data/rbi/onlyfans/models/chat_list_media_params.rbi +4 -2
  131. data/rbi/onlyfans/models/chat_list_params.rbi +6 -3
  132. data/rbi/onlyfans/models/chats/message_list_params.rbi +8 -8
  133. data/rbi/onlyfans/models/chats/message_send_params.rbi +88 -6
  134. data/rbi/onlyfans/models/client_session_create_params.rbi +5 -0
  135. data/rbi/onlyfans/models/data_export_create_params.rbi +69 -37
  136. data/rbi/onlyfans/models/data_export_list_params.rbi +18 -0
  137. data/rbi/onlyfans/models/data_export_list_response.rbi +9 -0
  138. data/rbi/onlyfans/models/data_export_retrieve_response.rbi +9 -0
  139. data/rbi/onlyfans/models/engagement/message_get_message_buyers_params.rbi +2 -2
  140. data/rbi/onlyfans/models/engagement/message_get_top_message_params.rbi +4 -4
  141. data/rbi/onlyfans/models/engagement/messages/direct_message_chart_params.rbi +2 -2
  142. data/rbi/onlyfans/models/engagement/messages/direct_message_list_params.rbi +4 -4
  143. data/rbi/onlyfans/models/engagement/messages/mass_message_chart_params.rbi +2 -2
  144. data/rbi/onlyfans/models/engagement/messages/mass_message_list_params.rbi +4 -4
  145. data/rbi/onlyfans/models/fan_list_active_params.rbi +84 -13
  146. data/rbi/onlyfans/models/fan_list_all_params.rbi +84 -13
  147. data/rbi/onlyfans/models/fan_list_expired_params.rbi +84 -13
  148. data/rbi/onlyfans/models/fan_list_latest_params.rbi +10 -10
  149. data/rbi/onlyfans/models/fan_list_top_params.rbi +8 -8
  150. data/rbi/onlyfans/models/fans/summary_get_summary_response.rbi +96 -0
  151. data/rbi/onlyfans/models/following_list_active_params.rbi +160 -0
  152. data/rbi/onlyfans/models/following_list_all_params.rbi +155 -0
  153. data/rbi/onlyfans/models/following_list_expired_params.rbi +160 -0
  154. data/rbi/onlyfans/models/link_tag_list_params.rbi +5 -3
  155. data/rbi/onlyfans/models/mass_messaging_retrieve_overview_params.rbi +4 -4
  156. data/rbi/onlyfans/models/mass_messaging_send_params.rbi +91 -6
  157. data/rbi/onlyfans/models/mass_messaging_update_params.rbi +76 -6
  158. data/rbi/onlyfans/models/media/upload_get_status_response.rbi +79 -33
  159. data/rbi/onlyfans/models/media/vault/list_list_params.rbi +15 -0
  160. data/rbi/onlyfans/models/media/vault/list_list_response.rbi +972 -428
  161. data/rbi/onlyfans/models/media/vault/list_update_params.rbi +13 -1
  162. data/rbi/onlyfans/models/media/vault_upload_params.rbi +6 -2
  163. data/rbi/onlyfans/models/media_upload_params.rbi +6 -2
  164. data/rbi/onlyfans/models/notification_list_params.rbi +3 -3
  165. data/rbi/onlyfans/models/post_create_params.rbi +66 -0
  166. data/rbi/onlyfans/models/post_update_params.rbi +66 -0
  167. data/rbi/onlyfans/models/queue_list_params.rbi +59 -16
  168. data/rbi/onlyfans/models/release_form_list_taggable_users_response.rbi +12 -12
  169. data/rbi/onlyfans/models/shared_tracking_link_list_params.rbi +198 -11
  170. data/rbi/onlyfans/models/shared_trial_link_list_params.rbi +64 -11
  171. data/rbi/onlyfans/models/smart_link_create_response.rbi +6 -3
  172. data/rbi/onlyfans/models/smart_link_list_clicks_response.rbi +21 -3
  173. data/rbi/onlyfans/models/smart_link_list_conversions_params.rbi +5 -0
  174. data/rbi/onlyfans/models/smart_link_list_conversions_response.rbi +21 -3
  175. data/rbi/onlyfans/models/smart_link_list_fans_params.rbi +24 -0
  176. data/rbi/onlyfans/models/smart_link_list_fans_response.rbi +205 -3
  177. data/rbi/onlyfans/models/smart_link_list_params.rbi +45 -8
  178. data/rbi/onlyfans/models/smart_link_postback_create_params.rbi +139 -4
  179. data/rbi/onlyfans/models/smart_link_postback_create_response.rbi +96 -0
  180. data/rbi/onlyfans/models/smart_link_postback_list_response.rbi +96 -0
  181. data/rbi/onlyfans/models/smart_link_postback_retrieve_response.rbi +96 -0
  182. data/rbi/onlyfans/models/smart_link_postback_update_params.rbi +133 -0
  183. data/rbi/onlyfans/models/smart_link_postback_update_response.rbi +96 -0
  184. data/rbi/onlyfans/models/statistic_calculate_total_transactions_params.rbi +12 -6
  185. data/rbi/onlyfans/models/statistic_get_subscriber_metrics_params.rbi +63 -0
  186. data/rbi/onlyfans/models/statistics/reach_get_profile_visitors_params.rbi +2 -2
  187. data/rbi/onlyfans/models/statistics/statement_get_earnings_params.rbi +10 -13
  188. data/rbi/onlyfans/models/stored_list_tracking_links_response.rbi +9 -0
  189. data/rbi/onlyfans/models/stored_list_trial_links_response.rbi +9 -0
  190. data/rbi/onlyfans/models/story_create_params.rbi +548 -4
  191. data/rbi/onlyfans/models/story_create_response.rbi +670 -8
  192. data/rbi/onlyfans/models/tracking_link_get_stats_response.rbi +9 -0
  193. data/rbi/onlyfans/models/tracking_link_list_params.rbi +144 -45
  194. data/rbi/onlyfans/models/tracking_link_list_response.rbi +9 -0
  195. data/rbi/onlyfans/models/tracking_link_list_spenders_response.rbi +17 -5
  196. data/rbi/onlyfans/models/tracking_link_retrieve_response.rbi +9 -0
  197. data/rbi/onlyfans/models/transaction_list_params.rbi +2 -2
  198. data/rbi/onlyfans/models/trial_link_list_params.rbi +66 -33
  199. data/rbi/onlyfans/models/trial_link_list_response.rbi +9 -0
  200. data/rbi/onlyfans/models/trial_link_list_spenders_response.rbi +17 -5
  201. data/rbi/onlyfans/models/trial_link_retrieve_response.rbi +9 -0
  202. data/rbi/onlyfans/models/trial_link_retrieve_stats_response.rbi +9 -0
  203. data/rbi/onlyfans/models/user_list_list_params.rbi +33 -0
  204. data/rbi/onlyfans/models/user_lists/user_add_params.rbi +23 -0
  205. data/rbi/onlyfans/models/user_lists/user_add_response.rbi +596 -181
  206. data/rbi/onlyfans/models/webhook_create_params.rbi +16 -10
  207. data/rbi/onlyfans/models/webhook_update_params.rbi +16 -10
  208. data/rbi/onlyfans/models.rbi +0 -2
  209. data/rbi/onlyfans/resources/analytics/financial/profitability.rbi +2 -6
  210. data/rbi/onlyfans/resources/chats/messages.rbi +53 -10
  211. data/rbi/onlyfans/resources/chats.rbi +6 -5
  212. data/rbi/onlyfans/resources/data_exports.rbi +26 -17
  213. data/rbi/onlyfans/resources/engagement/messages/direct_messages.rbi +3 -3
  214. data/rbi/onlyfans/resources/engagement/messages/mass_messages.rbi +3 -3
  215. data/rbi/onlyfans/resources/engagement/messages.rbi +3 -3
  216. data/rbi/onlyfans/resources/fans.rbi +50 -17
  217. data/rbi/onlyfans/resources/following.rbi +122 -4
  218. data/rbi/onlyfans/resources/link_tags.rbi +4 -4
  219. data/rbi/onlyfans/resources/mass_messaging.rbi +32 -10
  220. data/rbi/onlyfans/resources/media/uploads.rbi +5 -0
  221. data/rbi/onlyfans/resources/media/vault/lists.rbi +28 -3
  222. data/rbi/onlyfans/resources/media/vault.rbi +3 -1
  223. data/rbi/onlyfans/resources/media.rbi +16 -7
  224. data/rbi/onlyfans/resources/messages.rbi +0 -29
  225. data/rbi/onlyfans/resources/notifications.rbi +1 -1
  226. data/rbi/onlyfans/resources/posts.rbi +14 -0
  227. data/rbi/onlyfans/resources/queue.rbi +15 -8
  228. data/rbi/onlyfans/resources/release_forms.rbi +2 -1
  229. data/rbi/onlyfans/resources/shared_tracking_links.rbi +21 -5
  230. data/rbi/onlyfans/resources/shared_trial_links.rbi +8 -5
  231. data/rbi/onlyfans/resources/smart_link_postbacks.rbi +27 -2
  232. data/rbi/onlyfans/resources/smart_links.rbi +12 -3
  233. data/rbi/onlyfans/resources/statistics/reach.rbi +1 -1
  234. data/rbi/onlyfans/resources/statistics/statements.rbi +4 -4
  235. data/rbi/onlyfans/resources/statistics.rbi +9 -2
  236. data/rbi/onlyfans/resources/stories.rbi +16 -3
  237. data/rbi/onlyfans/resources/tracking_links/tags.rbi +5 -1
  238. data/rbi/onlyfans/resources/tracking_links.rbi +30 -19
  239. data/rbi/onlyfans/resources/transactions.rbi +1 -1
  240. data/rbi/onlyfans/resources/trial_links/tags.rbi +5 -1
  241. data/rbi/onlyfans/resources/trial_links.rbi +29 -14
  242. data/rbi/onlyfans/resources/user_lists/users.rbi +10 -1
  243. data/rbi/onlyfans/resources/user_lists.rbi +6 -1
  244. data/rbi/onlyfans/resources/users.rbi +2 -1
  245. data/rbi/onlyfans/resources/webhooks.rbi +16 -10
  246. data/sig/onlyfans/models/analytics/financial/profitability_get_history_response.rbs +129 -40
  247. data/sig/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbs +125 -50
  248. data/sig/onlyfans/models/authenticate_start_params.rbs +2 -1
  249. data/sig/onlyfans/models/chats/message_send_params.rbs +34 -6
  250. data/sig/onlyfans/models/client_session_create_params.rbs +2 -1
  251. data/sig/onlyfans/models/data_export_create_params.rbs +4 -0
  252. data/sig/onlyfans/models/data_export_list_params.rbs +10 -0
  253. data/sig/onlyfans/models/data_export_list_response.rbs +7 -0
  254. data/sig/onlyfans/models/data_export_retrieve_response.rbs +7 -0
  255. data/sig/onlyfans/models/fan_list_active_params.rbs +7 -0
  256. data/sig/onlyfans/models/fan_list_all_params.rbs +7 -0
  257. data/sig/onlyfans/models/fan_list_expired_params.rbs +7 -0
  258. data/sig/onlyfans/models/fans/summary_get_summary_response.rbs +53 -0
  259. data/sig/onlyfans/models/following_list_active_params.rbs +35 -1
  260. data/sig/onlyfans/models/following_list_all_params.rbs +35 -1
  261. data/sig/onlyfans/models/following_list_expired_params.rbs +35 -1
  262. data/sig/onlyfans/models/link_tag_list_params.rbs +2 -1
  263. data/sig/onlyfans/models/mass_messaging_send_params.rbs +33 -5
  264. data/sig/onlyfans/models/mass_messaging_update_params.rbs +26 -5
  265. data/sig/onlyfans/models/media/upload_get_status_response.rbs +65 -39
  266. data/sig/onlyfans/models/media/vault/list_list_params.rbs +13 -1
  267. data/sig/onlyfans/models/media/vault/list_list_response.rbs +519 -235
  268. data/sig/onlyfans/models/media/vault/list_update_params.rbs +5 -1
  269. data/sig/onlyfans/models/post_create_params.rbs +21 -0
  270. data/sig/onlyfans/models/post_update_params.rbs +21 -0
  271. data/sig/onlyfans/models/queue_list_params.rbs +28 -6
  272. data/sig/onlyfans/models/release_form_list_taggable_users_response.rbs +7 -10
  273. data/sig/onlyfans/models/shared_tracking_link_list_params.rbs +78 -4
  274. data/sig/onlyfans/models/shared_trial_link_list_params.rbs +31 -4
  275. data/sig/onlyfans/models/smart_link_create_response.rbs +6 -4
  276. data/sig/onlyfans/models/smart_link_list_clicks_response.rbs +18 -3
  277. data/sig/onlyfans/models/smart_link_list_conversions_params.rbs +2 -0
  278. data/sig/onlyfans/models/smart_link_list_conversions_response.rbs +18 -3
  279. data/sig/onlyfans/models/smart_link_list_fans_params.rbs +15 -1
  280. data/sig/onlyfans/models/smart_link_list_fans_response.rbs +125 -3
  281. data/sig/onlyfans/models/smart_link_list_params.rbs +27 -6
  282. data/sig/onlyfans/models/smart_link_postback_create_params.rbs +48 -0
  283. data/sig/onlyfans/models/smart_link_postback_create_response.rbs +53 -0
  284. data/sig/onlyfans/models/smart_link_postback_list_response.rbs +53 -0
  285. data/sig/onlyfans/models/smart_link_postback_retrieve_response.rbs +53 -0
  286. data/sig/onlyfans/models/smart_link_postback_update_params.rbs +48 -0
  287. data/sig/onlyfans/models/smart_link_postback_update_response.rbs +53 -0
  288. data/sig/onlyfans/models/statistic_calculate_total_transactions_params.rbs +8 -4
  289. data/sig/onlyfans/models/statistic_get_subscriber_metrics_params.rbs +23 -1
  290. data/sig/onlyfans/models/statistics/statement_get_earnings_params.rbs +5 -7
  291. data/sig/onlyfans/models/stored_list_tracking_links_response.rbs +7 -0
  292. data/sig/onlyfans/models/stored_list_trial_links_response.rbs +7 -0
  293. data/sig/onlyfans/models/story_create_params.rbs +271 -1
  294. data/sig/onlyfans/models/story_create_response.rbs +419 -9
  295. data/sig/onlyfans/models/tracking_link_get_stats_response.rbs +7 -0
  296. data/sig/onlyfans/models/tracking_link_list_params.rbs +75 -26
  297. data/sig/onlyfans/models/tracking_link_list_response.rbs +7 -0
  298. data/sig/onlyfans/models/tracking_link_list_spenders_response.rbs +16 -3
  299. data/sig/onlyfans/models/tracking_link_retrieve_response.rbs +7 -0
  300. data/sig/onlyfans/models/trial_link_list_params.rbs +42 -18
  301. data/sig/onlyfans/models/trial_link_list_response.rbs +7 -0
  302. data/sig/onlyfans/models/trial_link_list_spenders_response.rbs +16 -3
  303. data/sig/onlyfans/models/trial_link_retrieve_response.rbs +7 -0
  304. data/sig/onlyfans/models/trial_link_retrieve_stats_response.rbs +7 -0
  305. data/sig/onlyfans/models/user_list_list_params.rbs +24 -1
  306. data/sig/onlyfans/models/user_lists/user_add_params.rbs +12 -1
  307. data/sig/onlyfans/models/user_lists/user_add_response.rbs +300 -101
  308. data/sig/onlyfans/models.rbs +0 -2
  309. data/sig/onlyfans/resources/analytics/financial/profitability.rbs +2 -2
  310. data/sig/onlyfans/resources/chats/messages.rbs +3 -1
  311. data/sig/onlyfans/resources/following.rbs +6 -0
  312. data/sig/onlyfans/resources/mass_messaging.rbs +5 -2
  313. data/sig/onlyfans/resources/media/vault/lists.rbs +3 -1
  314. data/sig/onlyfans/resources/media.rbs +1 -1
  315. data/sig/onlyfans/resources/messages.rbs +0 -9
  316. data/sig/onlyfans/resources/posts.rbs +2 -0
  317. data/sig/onlyfans/resources/queue.rbs +2 -1
  318. data/sig/onlyfans/resources/shared_tracking_links.rbs +5 -1
  319. data/sig/onlyfans/resources/shared_trial_links.rbs +2 -1
  320. data/sig/onlyfans/resources/smart_link_postbacks.rbs +6 -0
  321. data/sig/onlyfans/resources/smart_links.rbs +4 -1
  322. data/sig/onlyfans/resources/statistics/statements.rbs +1 -1
  323. data/sig/onlyfans/resources/statistics.rbs +3 -2
  324. data/sig/onlyfans/resources/stories.rbs +4 -0
  325. data/sig/onlyfans/resources/tracking_links.rbs +7 -6
  326. data/sig/onlyfans/resources/trial_links.rbs +7 -5
  327. data/sig/onlyfans/resources/user_lists/users.rbs +2 -1
  328. data/sig/onlyfans/resources/user_lists.rbs +1 -0
  329. metadata +9 -15
  330. data/lib/onlyfans/models/media_download_response.rb +0 -7
  331. data/lib/onlyfans/models/message_attach_tags_params.rb +0 -52
  332. data/lib/onlyfans/models/message_attach_tags_response.rb +0 -125
  333. data/rbi/onlyfans/models/media_download_response.rbi +0 -7
  334. data/rbi/onlyfans/models/message_attach_tags_params.rbi +0 -80
  335. data/rbi/onlyfans/models/message_attach_tags_response.rbi +0 -308
  336. data/sig/onlyfans/models/media_download_response.rbs +0 -5
  337. data/sig/onlyfans/models/message_attach_tags_params.rbs +0 -52
  338. data/sig/onlyfans/models/message_attach_tags_response.rbs +0 -164
@@ -16,8 +16,9 @@ module Onlyfans
16
16
  attr_accessor :end_date
17
17
 
18
18
  # The output file format. Supported formats vary by export type: `csv` or `xlsx`
19
- # for transactions, chat_messages, trial_links, tracking_links, smart_links,
20
- # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault.
19
+ # for transactions, chat_messages, fansly_chat_messages, trial_links,
20
+ # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans,
21
+ # followings, profile_visitors; `zip` for media_vault.
21
22
  sig { returns(Onlyfans::DataExportCreateParams::FileType::OrSymbol) }
22
23
  attr_accessor :file_type
23
24
 
@@ -25,12 +26,16 @@ module Onlyfans
25
26
  sig { returns(String) }
26
27
  attr_accessor :start_date
27
28
 
28
- # The type of data to export
29
+ # The type of data to export. Use `fansly_chat_messages` to export Fansly chat
30
+ # messages (all other types are OnlyFans). `profile_visitors` returns one row per
31
+ # account per day, scraped one day at a time so the daily numbers are not
32
+ # aggregated away by OnlyFans.
29
33
  sig { returns(Onlyfans::DataExportCreateParams::Type::OrSymbol) }
30
34
  attr_accessor :type
31
35
 
32
36
  # Array of account prefixed IDs to export data from. Not required for
33
- # `public_profiles` type.
37
+ # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed
38
+ # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs.
34
39
  sig { returns(T.nilable(T::Array[String])) }
35
40
  attr_reader :account_ids
36
41
 
@@ -56,19 +61,23 @@ module Onlyfans
56
61
  # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit),
57
62
  # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric
58
63
  # fan/chat IDs; filters output and can drastically reduce totals). For
59
- # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`,
60
- # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`,
61
- # `latest`). For `followings`: `type` (required, one of: `all`, `active`,
62
- # `expired`). For `public_profiles`: `query` (optional, full-text search),
63
- # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice`
64
- # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional),
65
- # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum
66
- # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount`
67
- # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date),
68
- # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601
69
- # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date,
70
- # profile added to DB before), `instagram` (optional), `twitter` (optional),
71
- # `tiktok` (optional), `maxResults` (optional, limit results).
64
+ # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000),
65
+ # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array
66
+ # of Fansly group ID strings; filters output and can drastically reduce totals).
67
+ # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`,
68
+ # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`,
69
+ # `expired`, `latest`). For `followings`: `type` (required, one of: `all`,
70
+ # `active`, `expired`). For `public_profiles`: `query` (optional, full-text
71
+ # search), `gender` (optional, filter: male, female, trans, couple),
72
+ # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD),
73
+ # `location` (optional), `minPostsCount` (optional, minimum posts),
74
+ # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum
75
+ # videos), `minSubscribersCount` (optional, minimum subscribers),
76
+ # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional,
77
+ # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom`
78
+ # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional,
79
+ # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter`
80
+ # (optional), `tiktok` (optional), `maxResults` (optional, limit results).
72
81
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
73
82
  attr_reader :options
74
83
 
@@ -92,15 +101,20 @@ module Onlyfans
92
101
  # The end date for the export (ISO 8601 format).
93
102
  end_date:,
94
103
  # The output file format. Supported formats vary by export type: `csv` or `xlsx`
95
- # for transactions, chat_messages, trial_links, tracking_links, smart_links,
96
- # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault.
104
+ # for transactions, chat_messages, fansly_chat_messages, trial_links,
105
+ # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans,
106
+ # followings, profile_visitors; `zip` for media_vault.
97
107
  file_type:,
98
108
  # The start date for the export (ISO 8601 format).
99
109
  start_date:,
100
- # The type of data to export
110
+ # The type of data to export. Use `fansly_chat_messages` to export Fansly chat
111
+ # messages (all other types are OnlyFans). `profile_visitors` returns one row per
112
+ # account per day, scraped one day at a time so the daily numbers are not
113
+ # aggregated away by OnlyFans.
101
114
  type:,
102
115
  # Array of account prefixed IDs to export data from. Not required for
103
- # `public_profiles` type.
116
+ # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed
117
+ # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs.
104
118
  account_ids: nil,
105
119
  # When true, automatically starts the export after creation.
106
120
  auto_start: nil,
@@ -111,19 +125,23 @@ module Onlyfans
111
125
  # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit),
112
126
  # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric
113
127
  # fan/chat IDs; filters output and can drastically reduce totals). For
114
- # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`,
115
- # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`,
116
- # `latest`). For `followings`: `type` (required, one of: `all`, `active`,
117
- # `expired`). For `public_profiles`: `query` (optional, full-text search),
118
- # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice`
119
- # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional),
120
- # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum
121
- # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount`
122
- # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date),
123
- # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601
124
- # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date,
125
- # profile added to DB before), `instagram` (optional), `twitter` (optional),
126
- # `tiktok` (optional), `maxResults` (optional, limit results).
128
+ # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000),
129
+ # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array
130
+ # of Fansly group ID strings; filters output and can drastically reduce totals).
131
+ # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`,
132
+ # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`,
133
+ # `expired`, `latest`). For `followings`: `type` (required, one of: `all`,
134
+ # `active`, `expired`). For `public_profiles`: `query` (optional, full-text
135
+ # search), `gender` (optional, filter: male, female, trans, couple),
136
+ # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD),
137
+ # `location` (optional), `minPostsCount` (optional, minimum posts),
138
+ # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum
139
+ # videos), `minSubscribersCount` (optional, minimum subscribers),
140
+ # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional,
141
+ # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom`
142
+ # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional,
143
+ # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter`
144
+ # (optional), `tiktok` (optional), `maxResults` (optional, limit results).
127
145
  options: nil,
128
146
  request_options: {}
129
147
  )
@@ -148,8 +166,9 @@ module Onlyfans
148
166
  end
149
167
 
150
168
  # The output file format. Supported formats vary by export type: `csv` or `xlsx`
151
- # for transactions, chat_messages, trial_links, tracking_links, smart_links,
152
- # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault.
169
+ # for transactions, chat_messages, fansly_chat_messages, trial_links,
170
+ # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans,
171
+ # followings, profile_visitors; `zip` for media_vault.
153
172
  module FileType
154
173
  extend Onlyfans::Internal::Type::Enum
155
174
 
@@ -175,7 +194,10 @@ module Onlyfans
175
194
  end
176
195
  end
177
196
 
178
- # The type of data to export
197
+ # The type of data to export. Use `fansly_chat_messages` to export Fansly chat
198
+ # messages (all other types are OnlyFans). `profile_visitors` returns one row per
199
+ # account per day, scraped one day at a time so the daily numbers are not
200
+ # aggregated away by OnlyFans.
179
201
  module Type
180
202
  extend Onlyfans::Internal::Type::Enum
181
203
 
@@ -232,6 +254,16 @@ module Onlyfans
232
254
  :followings,
233
255
  Onlyfans::DataExportCreateParams::Type::TaggedSymbol
234
256
  )
257
+ PROFILE_VISITORS =
258
+ T.let(
259
+ :profile_visitors,
260
+ Onlyfans::DataExportCreateParams::Type::TaggedSymbol
261
+ )
262
+ FANSLY_CHAT_MESSAGES =
263
+ T.let(
264
+ :fansly_chat_messages,
265
+ Onlyfans::DataExportCreateParams::Type::TaggedSymbol
266
+ )
235
267
 
236
268
  sig do
237
269
  override.returns(
@@ -170,6 +170,11 @@ module Onlyfans
170
170
  :tracking_links,
171
171
  Onlyfans::DataExportListParams::Type::TaggedSymbol
172
172
  )
173
+ SMART_LINKS =
174
+ T.let(
175
+ :smart_links,
176
+ Onlyfans::DataExportListParams::Type::TaggedSymbol
177
+ )
173
178
  PAYOUTS =
174
179
  T.let(:payouts, Onlyfans::DataExportListParams::Type::TaggedSymbol)
175
180
  CHARGEBACKS =
@@ -182,6 +187,19 @@ module Onlyfans
182
187
  :public_profiles,
183
188
  Onlyfans::DataExportListParams::Type::TaggedSymbol
184
189
  )
190
+ FANS = T.let(:fans, Onlyfans::DataExportListParams::Type::TaggedSymbol)
191
+ FOLLOWINGS =
192
+ T.let(:followings, Onlyfans::DataExportListParams::Type::TaggedSymbol)
193
+ PROFILE_VISITORS =
194
+ T.let(
195
+ :profile_visitors,
196
+ Onlyfans::DataExportListParams::Type::TaggedSymbol
197
+ )
198
+ FANSLY_CHAT_MESSAGES =
199
+ T.let(
200
+ :fansly_chat_messages,
201
+ Onlyfans::DataExportListParams::Type::TaggedSymbol
202
+ )
185
203
 
186
204
  sig do
187
205
  override.returns(
@@ -423,6 +423,12 @@ module Onlyfans
423
423
  sig { returns(T.nilable(String)) }
424
424
  attr_accessor :failed_at
425
425
 
426
+ sig { returns(T.nilable(Integer)) }
427
+ attr_reader :failed_downloads
428
+
429
+ sig { params(failed_downloads: Integer).void }
430
+ attr_writer :failed_downloads
431
+
426
432
  sig { returns(T.nilable(String)) }
427
433
  attr_accessor :failed_reason
428
434
 
@@ -483,6 +489,7 @@ module Onlyfans
483
489
  end_date: String,
484
490
  export_columns: T::Array[String],
485
491
  failed_at: T.nilable(String),
492
+ failed_downloads: Integer,
486
493
  failed_reason: T.nilable(String),
487
494
  file_type: String,
488
495
  progress_percentage: Integer,
@@ -504,6 +511,7 @@ module Onlyfans
504
511
  end_date: nil,
505
512
  export_columns: nil,
506
513
  failed_at: nil,
514
+ failed_downloads: nil,
507
515
  failed_reason: nil,
508
516
  file_type: nil,
509
517
  progress_percentage: nil,
@@ -531,6 +539,7 @@ module Onlyfans
531
539
  end_date: String,
532
540
  export_columns: T::Array[String],
533
541
  failed_at: T.nilable(String),
542
+ failed_downloads: Integer,
534
543
  failed_reason: T.nilable(String),
535
544
  file_type: String,
536
545
  progress_percentage: Integer,
@@ -349,6 +349,12 @@ module Onlyfans
349
349
  sig { returns(T.nilable(String)) }
350
350
  attr_accessor :failed_at
351
351
 
352
+ sig { returns(T.nilable(Integer)) }
353
+ attr_reader :failed_downloads
354
+
355
+ sig { params(failed_downloads: Integer).void }
356
+ attr_writer :failed_downloads
357
+
352
358
  sig { returns(T.nilable(String)) }
353
359
  attr_accessor :failed_reason
354
360
 
@@ -407,6 +413,7 @@ module Onlyfans
407
413
  end_date: String,
408
414
  export_columns: T::Array[String],
409
415
  failed_at: T.nilable(String),
416
+ failed_downloads: Integer,
410
417
  failed_reason: T.nilable(String),
411
418
  file_type: String,
412
419
  progress_percentage: Integer,
@@ -426,6 +433,7 @@ module Onlyfans
426
433
  end_date: nil,
427
434
  export_columns: nil,
428
435
  failed_at: nil,
436
+ failed_downloads: nil,
429
437
  failed_reason: nil,
430
438
  file_type: nil,
431
439
  progress_percentage: nil,
@@ -451,6 +459,7 @@ module Onlyfans
451
459
  end_date: String,
452
460
  export_columns: T::Array[String],
453
461
  failed_at: T.nilable(String),
462
+ failed_downloads: Integer,
454
463
  failed_reason: T.nilable(String),
455
464
  file_type: String,
456
465
  progress_percentage: Integer,
@@ -42,7 +42,7 @@ module Onlyfans
42
42
  sig { params(offset: Integer).void }
43
43
  attr_writer :offset
44
44
 
45
- # Optional flag for subsequent pages (example: all)
45
+ # Optional flag for subsequent pages (example: all).
46
46
  sig { returns(T.nilable(String)) }
47
47
  attr_reader :skip_users
48
48
 
@@ -77,7 +77,7 @@ module Onlyfans
77
77
  marker: nil,
78
78
  # Offset for pagination (default = 0)
79
79
  offset: nil,
80
- # Optional flag for subsequent pages (example: all)
80
+ # Optional flag for subsequent pages (example: all).
81
81
  skip_users: nil,
82
82
  # Skip duplicate users in results (0/1). Default = 1
83
83
  skip_users_dups: nil,
@@ -18,8 +18,8 @@ module Onlyfans
18
18
  sig { returns(String) }
19
19
  attr_accessor :account
20
20
 
21
- # The end date for the period. Keep empty to retrieve until now. MUST BE DATE
22
- # AFTER `startDate`.
21
+ # The end date for the period. Keep empty to retrieve until now. It must be after
22
+ # `startDate`.
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_reader :end_date
25
25
 
@@ -43,8 +43,8 @@ module Onlyfans
43
43
  end
44
44
  def self.new(
45
45
  account:,
46
- # The end date for the period. Keep empty to retrieve until now. MUST BE DATE
47
- # AFTER `startDate`.
46
+ # The end date for the period. Keep empty to retrieve until now. It must be after
47
+ # `startDate`.
48
48
  end_date: nil,
49
49
  # The start date for the period. Keep empty to retrieve from the model start date.
50
50
  start_date: nil,
@@ -19,7 +19,7 @@ module Onlyfans
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
22
- # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
22
+ # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_reader :end_date
25
25
 
@@ -51,7 +51,7 @@ module Onlyfans
51
51
  end
52
52
  def self.new(
53
53
  account:,
54
- # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
54
+ # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
55
55
  end_date: nil,
56
56
  # Start of the chart window in `Y-m-d H:i:s` format.
57
57
  start_date: nil,
@@ -19,8 +19,8 @@ module Onlyfans
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
22
- # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER
23
- # `startDate`. This is also used for pagination.
22
+ # The latest message to retrieve. Keep empty to get all. It must be after
23
+ # `startDate` and is also used for pagination.
24
24
  sig { returns(T.nilable(String)) }
25
25
  attr_reader :end_date
26
26
 
@@ -68,8 +68,8 @@ module Onlyfans
68
68
  end
69
69
  def self.new(
70
70
  account:,
71
- # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER
72
- # `startDate`. This is also used for pagination.
71
+ # The latest message to retrieve. Keep empty to get all. It must be after
72
+ # `startDate` and is also used for pagination.
73
73
  end_date: nil,
74
74
  # Number of messages to return (default = 10)
75
75
  limit: nil,
@@ -19,7 +19,7 @@ module Onlyfans
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
22
- # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
22
+ # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_reader :end_date
25
25
 
@@ -51,7 +51,7 @@ module Onlyfans
51
51
  end
52
52
  def self.new(
53
53
  account:,
54
- # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
54
+ # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
55
55
  end_date: nil,
56
56
  # Start of the chart window in `Y-m-d H:i:s` format.
57
57
  start_date: nil,
@@ -19,8 +19,8 @@ module Onlyfans
19
19
  sig { returns(String) }
20
20
  attr_accessor :account
21
21
 
22
- # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER
23
- # `startDate`. This is also used for pagination.
22
+ # The latest message to retrieve. Keep empty to get all. It must be after
23
+ # `startDate` and is also used for pagination.
24
24
  sig { returns(T.nilable(String)) }
25
25
  attr_reader :end_date
26
26
 
@@ -60,8 +60,8 @@ module Onlyfans
60
60
  end
61
61
  def self.new(
62
62
  account:,
63
- # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER
64
- # `startDate`. This is also used for pagination.
63
+ # The latest message to retrieve. Keep empty to get all. It must be after
64
+ # `startDate` and is also used for pagination.
65
65
  end_date: nil,
66
66
  # Number of messages to return (default = 10)
67
67
  limit: nil,
@@ -20,8 +20,8 @@ module Onlyfans
20
20
  sig { params(filter: Onlyfans::FanListActiveParams::Filter::OrHash).void }
21
21
  attr_writer :filter
22
22
 
23
- # Number of fans to return (1-50). Must be at least 1. Must not be greater
24
- # than 20.
23
+ # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page.
24
+ # Must be at least 1. Must not be greater than 20.
25
25
  sig { returns(T.nilable(Integer)) }
26
26
  attr_reader :limit
27
27
 
@@ -60,8 +60,8 @@ module Onlyfans
60
60
  def self.new(
61
61
  account:,
62
62
  filter: nil,
63
- # Number of fans to return (1-50). Must be at least 1. Must not be greater
64
- # than 20.
63
+ # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page.
64
+ # Must be at least 1. Must not be greater than 20.
65
65
  limit: nil,
66
66
  # Number of fans to skip. Must be at least 0.
67
67
  offset: nil,
@@ -98,14 +98,45 @@ module Onlyfans
98
98
  )
99
99
  end
100
100
 
101
- # Filter by minimum subscription duration in months. Must be at least 0.
101
+ # Filter by minimum subscription duration in months. Must use bracket syntax:
102
+ # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422,
103
+ # because PHP rewrites it to `filter_duration` and the filter could not be
104
+ # applied. Must be at least 0.
102
105
  sig { returns(T.nilable(Integer)) }
103
106
  attr_reader :duration
104
107
 
105
108
  sig { params(duration: Integer).void }
106
109
  attr_writer :duration
107
110
 
108
- # Filter by online status (`1` for online fans).
111
+ # Filter by **maximum** amount total spent by a fan — use
112
+ # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with
113
+ # `filter[total_spent]` for a range. Must use bracket syntax:
114
+ # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP
115
+ # rewrites it to `filter_max_total_spent` and the filter could not be applied.
116
+ #
117
+ # OnlyFans itself has no maximum-spend filter, so this one is resolved against
118
+ # OnlyFansAPI's own fan index instead of being proxied. The fan objects in
119
+ # `data.list` are still fetched live from OnlyFans and are re-checked against your
120
+ # filters before being returned, but only fans we have already indexed for this
121
+ # account can appear. Each response reports its own coverage under `data._source`;
122
+ # when `data._source.is_complete` is `false` a full-base backfill is queued
123
+ # automatically, so retry later for a complete answer.
124
+ #
125
+ # `data._source.omitted_from_page` counts fans that matched your filters but which
126
+ # OnlyFans returned no usable data for on that page (a deleted account, or a
127
+ # partial response). They are left out of `data.list` and not revisited later in
128
+ # the same walk, so a non-zero value means that page was short — start a fresh
129
+ # walk to retry them. Cannot be combined with `filter[online]`. Must be at
130
+ # least 0.
131
+ sig { returns(T.nilable(Float)) }
132
+ attr_reader :max_total_spent
133
+
134
+ sig { params(max_total_spent: Float).void }
135
+ attr_writer :max_total_spent
136
+
137
+ # Filter by online status (`1` for online fans). Must use bracket syntax:
138
+ # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422,
139
+ # because PHP rewrites it to `filter_online` and the filter could not be applied.
109
140
  sig do
110
141
  returns(
111
142
  T.nilable(Onlyfans::FanListActiveParams::Filter::Online::OrInteger)
@@ -113,14 +144,19 @@ module Onlyfans
113
144
  end
114
145
  attr_accessor :online
115
146
 
116
- # Filter by minimum tips. Must be at least 0.
147
+ # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form
148
+ # (filter.tips=100) is rejected with a 422, because PHP rewrites it to
149
+ # `filter_tips` and the filter could not be applied. Must be at least 0.
117
150
  sig { returns(T.nilable(Integer)) }
118
151
  attr_reader :tips
119
152
 
120
153
  sig { params(tips: Integer).void }
121
154
  attr_writer :tips
122
155
 
123
- # Filter by minimum amount total spent by a fan. Must be at least 0.
156
+ # Filter by minimum amount total spent by a fan. Must use bracket syntax:
157
+ # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with
158
+ # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not
159
+ # be applied. Must be at least 0.
124
160
  sig { returns(T.nilable(Integer)) }
125
161
  attr_reader :total_spent
126
162
 
@@ -130,6 +166,7 @@ module Onlyfans
130
166
  sig do
131
167
  params(
132
168
  duration: Integer,
169
+ max_total_spent: Float,
133
170
  online:
134
171
  T.nilable(
135
172
  Onlyfans::FanListActiveParams::Filter::Online::OrInteger
@@ -139,13 +176,44 @@ module Onlyfans
139
176
  ).returns(T.attached_class)
140
177
  end
141
178
  def self.new(
142
- # Filter by minimum subscription duration in months. Must be at least 0.
179
+ # Filter by minimum subscription duration in months. Must use bracket syntax:
180
+ # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422,
181
+ # because PHP rewrites it to `filter_duration` and the filter could not be
182
+ # applied. Must be at least 0.
143
183
  duration: nil,
144
- # Filter by online status (`1` for online fans).
184
+ # Filter by **maximum** amount total spent by a fan — use
185
+ # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with
186
+ # `filter[total_spent]` for a range. Must use bracket syntax:
187
+ # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP
188
+ # rewrites it to `filter_max_total_spent` and the filter could not be applied.
189
+ #
190
+ # OnlyFans itself has no maximum-spend filter, so this one is resolved against
191
+ # OnlyFansAPI's own fan index instead of being proxied. The fan objects in
192
+ # `data.list` are still fetched live from OnlyFans and are re-checked against your
193
+ # filters before being returned, but only fans we have already indexed for this
194
+ # account can appear. Each response reports its own coverage under `data._source`;
195
+ # when `data._source.is_complete` is `false` a full-base backfill is queued
196
+ # automatically, so retry later for a complete answer.
197
+ #
198
+ # `data._source.omitted_from_page` counts fans that matched your filters but which
199
+ # OnlyFans returned no usable data for on that page (a deleted account, or a
200
+ # partial response). They are left out of `data.list` and not revisited later in
201
+ # the same walk, so a non-zero value means that page was short — start a fresh
202
+ # walk to retry them. Cannot be combined with `filter[online]`. Must be at
203
+ # least 0.
204
+ max_total_spent: nil,
205
+ # Filter by online status (`1` for online fans). Must use bracket syntax:
206
+ # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422,
207
+ # because PHP rewrites it to `filter_online` and the filter could not be applied.
145
208
  online: nil,
146
- # Filter by minimum tips. Must be at least 0.
209
+ # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form
210
+ # (filter.tips=100) is rejected with a 422, because PHP rewrites it to
211
+ # `filter_tips` and the filter could not be applied. Must be at least 0.
147
212
  tips: nil,
148
- # Filter by minimum amount total spent by a fan. Must be at least 0.
213
+ # Filter by minimum amount total spent by a fan. Must use bracket syntax:
214
+ # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with
215
+ # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not
216
+ # be applied. Must be at least 0.
149
217
  total_spent: nil
150
218
  )
151
219
  end
@@ -154,6 +222,7 @@ module Onlyfans
154
222
  override.returns(
155
223
  {
156
224
  duration: Integer,
225
+ max_total_spent: Float,
157
226
  online:
158
227
  T.nilable(
159
228
  Onlyfans::FanListActiveParams::Filter::Online::OrInteger
@@ -166,7 +235,9 @@ module Onlyfans
166
235
  def to_hash
167
236
  end
168
237
 
169
- # Filter by online status (`1` for online fans).
238
+ # Filter by online status (`1` for online fans). Must use bracket syntax:
239
+ # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422,
240
+ # because PHP rewrites it to `filter_online` and the filter could not be applied.
170
241
  module Online
171
242
  extend Onlyfans::Internal::Type::Enum
172
243