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
@@ -8,8 +8,9 @@ module Onlyfans
8
8
  include Onlyfans::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute account_scope
11
- # The account scope for the webhook. Use "global" for all accounts, "inclusive"
12
- # for only selected accounts, or "exclusive" for all except selected accounts.
11
+ # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use
12
+ # "global" for all accounts, "inclusive" for only selected accounts, or
13
+ # "exclusive" for all except selected accounts.
13
14
  #
14
15
  # @return [String]
15
16
  required :account_scope, String
@@ -22,14 +23,16 @@ module Onlyfans
22
23
 
23
24
  # @!attribute events
24
25
  # An array of webhook events to subscribe to. For all options, refer to our **List
25
- # Available Events** endpoint.
26
+ # Available Events** endpoint. A webhook is single-platform: subscribe to either
27
+ # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook.
26
28
  #
27
29
  # @return [Array<String>]
28
30
  required :events, Onlyfans::Internal::Type::ArrayOf[String]
29
31
 
30
32
  # @!attribute account_ids
31
- # An array of account IDs to apply the scope to. Required unless account_scope is
32
- # "global".
33
+ # An array of account IDs to apply the scope to. Use OnlyFans account IDs
34
+ # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`)
35
+ # for Fansly webhooks. Required unless account_scope is "global".
33
36
  #
34
37
  # @return [Array<String>, nil]
35
38
  optional :account_ids, Onlyfans::Internal::Type::ArrayOf[String]
@@ -44,14 +47,15 @@ module Onlyfans
44
47
  # Some parameter documentations has been truncated, see
45
48
  # {Onlyfans::Models::WebhookCreateParams} for more details.
46
49
  #
47
- # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo
50
+ # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo
48
51
  #
49
52
  # @param endpoint_url [String] The URL of your webhook endpoint.
50
53
  #
51
54
  # @param events [Array<String>] An array of webhook events to subscribe to. For all options, refer to our
52
55
  # \*\*List
53
56
  #
54
- # @param account_ids [Array<String>] An array of account IDs to apply the scope to. Required unless account_scope is
57
+ # @param account_ids [Array<String>] An array of account IDs to apply the scope to. Use OnlyFans account IDs
58
+ # (`acct\_.
55
59
  #
56
60
  # @param signing_secret [String, nil] Optionally, add a signing secret to protect your webhook.
57
61
  #
@@ -13,8 +13,9 @@ module Onlyfans
13
13
  required :webhook_id, String
14
14
 
15
15
  # @!attribute account_scope
16
- # The account scope for the webhook. Use "global" for all accounts, "inclusive"
17
- # for only selected accounts, or "exclusive" for all except selected accounts.
16
+ # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use
17
+ # "global" for all accounts, "inclusive" for only selected accounts, or
18
+ # "exclusive" for all except selected accounts.
18
19
  #
19
20
  # @return [String]
20
21
  required :account_scope, String
@@ -27,14 +28,16 @@ module Onlyfans
27
28
 
28
29
  # @!attribute events
29
30
  # An array of webhook events to subscribe to. For all options, refer to our **List
30
- # Available Events** endpoint.
31
+ # Available Events** endpoint. A webhook is single-platform: subscribe to either
32
+ # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook.
31
33
  #
32
34
  # @return [Array<String>]
33
35
  required :events, Onlyfans::Internal::Type::ArrayOf[String]
34
36
 
35
37
  # @!attribute account_ids
36
- # An array of account IDs to apply the scope to. Required unless account_scope is
37
- # "global".
38
+ # An array of account IDs to apply the scope to. Use OnlyFans account IDs
39
+ # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`)
40
+ # for Fansly webhooks. Required unless account_scope is "global".
38
41
  #
39
42
  # @return [Array<String>, nil]
40
43
  optional :account_ids, Onlyfans::Internal::Type::ArrayOf[String]
@@ -52,14 +55,15 @@ module Onlyfans
52
55
  #
53
56
  # @param webhook_id [String]
54
57
  #
55
- # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo
58
+ # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo
56
59
  #
57
60
  # @param endpoint_url [String] The URL of your webhook endpoint.
58
61
  #
59
62
  # @param events [Array<String>] An array of webhook events to subscribe to. For all options, refer to our
60
63
  # \*\*List
61
64
  #
62
- # @param account_ids [Array<String>] An array of account IDs to apply the scope to. Required unless account_scope is
65
+ # @param account_ids [Array<String>] An array of account IDs to apply the scope to. Use OnlyFans account IDs
66
+ # (`acct\_.
63
67
  #
64
68
  # @param enabled [Boolean, nil] Optionally, enabled/disable the webhook. This will stop/resume the sending of ev
65
69
  #
@@ -163,8 +163,6 @@ module Onlyfans
163
163
 
164
164
  MeRetrieveParams = Onlyfans::Models::MeRetrieveParams
165
165
 
166
- MessageAttachTagsParams = Onlyfans::Models::MessageAttachTagsParams
167
-
168
166
  NotificationGetCountsParams = Onlyfans::Models::NotificationGetCountsParams
169
167
 
170
168
  NotificationListParams = Onlyfans::Models::NotificationListParams
@@ -22,7 +22,7 @@ module Onlyfans
22
22
  #
23
23
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
24
24
  #
25
- # @return [Array<Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem>]
25
+ # @return [Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse]
26
26
  #
27
27
  # @see Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryParams
28
28
  def get_history(account, params)
@@ -32,7 +32,7 @@ module Onlyfans
32
32
  method: :get,
33
33
  path: ["api/analytics/financial/profitability/%1$s/history", account],
34
34
  query: query,
35
- model: Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem],
35
+ model: Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse,
36
36
  options: options
37
37
  )
38
38
  end
@@ -50,7 +50,7 @@ module Onlyfans
50
50
  #
51
51
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
52
52
  #
53
- # @return [Array<Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem>]
53
+ # @return [Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse]
54
54
  #
55
55
  # @see Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityParams
56
56
  def get_profitability(params)
@@ -60,7 +60,7 @@ module Onlyfans
60
60
  method: :post,
61
61
  path: "api/analytics/financial/profitability",
62
62
  body: parsed,
63
- model: Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem],
63
+ model: Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse,
64
64
  options: options
65
65
  )
66
66
  end
@@ -41,7 +41,10 @@ module Onlyfans
41
41
  # Some parameter documentations has been truncated, see
42
42
  # {Onlyfans::Models::Chats::MessageListParams} for more details.
43
43
  #
44
- # Get messages from a specific chat.
44
+ # Get messages from a specific chat. Use `filter=pinned` or
45
+ # [List Pinned Chat Messages](https://docs.onlyfansapi.com/api-reference/chat-messages/list-pinned-chat-messages)
46
+ # to retrieve only pinned messages. Follow `_pagination.next_page` until it is
47
+ # null; a short page can still have more results.
45
48
  #
46
49
  # @overload list(chat_id, account:, filter: nil, first_id: nil, last_id: nil, limit: nil, order: nil, skip_users: nil, request_options: {})
47
50
  #
@@ -51,7 +54,7 @@ module Onlyfans
51
54
  #
52
55
  # @param filter [Symbol, Onlyfans::Models::Chats::MessageListParams::Filter] Query param: Filter by certain messages. Currently, only pins are filterable.
53
56
  #
54
- # @param first_id [String, nil] Query param: Use for pagination when `order=desc` (newest to oldest). Include th
57
+ # @param first_id [String, nil] Query param: Use for pagination when `order=desc` (newest to oldest). Pass the l
55
58
  #
56
59
  # @param last_id [String, nil] Query param: Use for pagination when `order=asc` (oldest to newest). Include thi
57
60
  #
@@ -59,7 +62,7 @@ module Onlyfans
59
62
  #
60
63
  # @param order [String] Query param: Sort order for messages (desc or asc)
61
64
  #
62
- # @param skip_users [String] Query param: Whether to skip user details (all or none)
65
+ # @param skip_users [String] Query param: Whether to skip user details (`all` or `none`).
63
66
  #
64
67
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
65
68
  #
@@ -149,7 +152,10 @@ module Onlyfans
149
152
  )
150
153
  end
151
154
 
152
- # Pin a message from a chat.
155
+ # Pin a message from a chat. Requires API-key write permission. No request body is
156
+ # needed. Use
157
+ # [List Pinned Chat Messages](https://docs.onlyfansapi.com/api-reference/chat-messages/list-pinned-chat-messages)
158
+ # to read the current pins.
153
159
  #
154
160
  # @overload pin(message_id, account:, chat_id:, request_options: {})
155
161
  #
@@ -219,12 +225,38 @@ module Onlyfans
219
225
  #
220
226
  # Send a new message to a chat.
221
227
  #
222
- # @overload send_(chat_id, account:, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, request_options: {})
228
+ # **Idempotency.** Pass an `Idempotency-Key` header to make retries safe. The
229
+ # first request with a given key is executed normally and its response is stored
230
+ # for **24 hours**; any later request with the same key returns that stored
231
+ # response, plus an `Idempotent-Replayed: true` header, without contacting
232
+ # OnlyFans and without consuming credits. The replayed body is the original
233
+ # response with its `_meta._credits` block rewritten to show `used: 0` and your
234
+ # current balance.
235
+ #
236
+ # Keys are scoped to your team, this endpoint and the account in the URL, so the
237
+ # same value can be reused safely against a different account. Use a fresh, unique
238
+ # value (a UUID works well) for each message you send; it must be 1-255 printable
239
+ # ASCII characters.
240
+ #
241
+ # - `400 IDEMPOTENCY_KEY_INVALID` — the header value is empty, too long, or
242
+ # contains non-ASCII characters.
243
+ # - `409 IDEMPOTENCY_CONFLICT` — an earlier request with this key is still
244
+ # running. Retry once it finishes.
245
+ # - `422 IDEMPOTENCY_KEY_MISMATCH` — this key was already used with a different
246
+ # request body or chat.
247
+ #
248
+ # Responses with a `5xx` status (and `408`/`429`) are never stored, so a failed
249
+ # send can be retried with the same key. The header is optional: omit it and the
250
+ # endpoint behaves exactly as before.
251
+ #
252
+ # @overload send_(chat_id, account:, block_banned_words: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, idempotency_key: nil, request_options: {})
223
253
  #
224
254
  # @param chat_id [String] Path param: The ID of the chat (usually a fan's OnlyFans User ID)
225
255
  #
226
256
  # @param account [String] Path param: The Account ID
227
257
  #
258
+ # @param block_banned_words [Symbol, Onlyfans::Models::Chats::MessageSendParams::BlockBannedWords] Body param: Screen `text` for OnlyFans banned words and block the send if any ar
259
+ #
228
260
  # @param giphy_id [String] Body param: The ID of the Giphy GIF to attach to the message. Get IDs from the G
229
261
  #
230
262
  # @param locked_text [Boolean] Body param: Whether the text should be shown or hidden
@@ -233,7 +265,7 @@ module Onlyfans
233
265
  #
234
266
  # @param previews [Array<Object>] Body param: Direct file uploads, OFAPI `ofapi_media_` IDs, OF vault IDs, or inte
235
267
  #
236
- # @param price [Integer] Body param: Price for paid content (0 or between 3-200). In case this is not zer
268
+ # @param price [Float] Body param: Price for paid content in USD (0 or between 3-200). In case this is
237
269
  #
238
270
  # @param reply_to_message_id [Integer] Body param: Mark this message as a reply to another (can be either your own, or
239
271
  #
@@ -245,6 +277,8 @@ module Onlyfans
245
277
  #
246
278
  # @param text [String] Body param: The message text content. Required unless a media file is present.
247
279
  #
280
+ # @param idempotency_key [String] Header param
281
+ #
248
282
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
249
283
  #
250
284
  # @return [Onlyfans::Models::Chats::MessageSendResponse]
@@ -256,10 +290,12 @@ module Onlyfans
256
290
  parsed.delete(:account) do
257
291
  raise ArgumentError.new("missing required path argument #{_1}")
258
292
  end
293
+ header_params = {idempotency_key: "idempotency-key"}
259
294
  @client.request(
260
295
  method: :post,
261
296
  path: ["api/%1$s/chats/%2$s/messages", account, chat_id],
262
- body: parsed,
297
+ headers: parsed.slice(*header_params.keys).transform_keys(header_params),
298
+ body: parsed.except(*header_params.keys),
263
299
  model: Onlyfans::Models::Chats::MessageSendResponse,
264
300
  options: options
265
301
  )
@@ -298,7 +334,10 @@ module Onlyfans
298
334
  )
299
335
  end
300
336
 
301
- # Unpin a message from a chat.
337
+ # Unpin a message from a chat. Requires API-key delete permission; a read_write
338
+ # key cannot unpin. No request body is needed. Use
339
+ # [List Pinned Chat Messages](https://docs.onlyfansapi.com/api-reference/chat-messages/list-pinned-chat-messages)
340
+ # to read the current pins.
302
341
  #
303
342
  # @overload unpin(message_id, account:, chat_id:, request_options: {})
304
343
  #
@@ -9,6 +9,9 @@ module Onlyfans
9
9
  # @return [Onlyfans::Resources::Chats::MarkAllAsRead]
10
10
  attr_reader :mark_all_as_read
11
11
 
12
+ # Some parameter documentations has been truncated, see
13
+ # {Onlyfans::Models::ChatListParams} for more details.
14
+ #
12
15
  # Get the list of chats for an Account.
13
16
  #
14
17
  # @overload list(account, filter: nil, limit: nil, offset: nil, order: nil, query: nil, skip_users: nil, request_options: {})
@@ -25,7 +28,7 @@ module Onlyfans
25
28
  #
26
29
  # @param query [String] Search query to filter chats
27
30
  #
28
- # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in response (all or none). Default = all
31
+ # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in the response (`all` or `none`). Defaults to `all
29
32
  #
30
33
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
31
34
  #
@@ -114,7 +117,7 @@ module Onlyfans
114
117
  #
115
118
  # @param offset [String] Query param: Number of medias to skip for pagination
116
119
  #
117
- # @param skip_users [String] Query param: Whether to skip user details in response (all or none). Default = a
120
+ # @param skip_users [String] Query param: Whether to skip user details in the response (`all` or `none`). Def
118
121
  #
119
122
  # @param type [Symbol, Onlyfans::Models::ChatListMediaParams::Type, nil] Query param: Filter by specific media types. Keep empty to return all.
120
123
  #
@@ -222,8 +225,8 @@ module Onlyfans
222
225
  end
223
226
 
224
227
  # Calling this endpoint will show the target fan a "Model is typing..." note in
225
- # the chat for ~4 seconds. If you want to continue showing the indicator call this
226
- # endpoint multiple times. Free - no credits charged.
228
+ # the chat for ~4 seconds. Duplicate calls for the same account and chat are
229
+ # coalesced during that window.
227
230
  #
228
231
  # @overload start_typing(chat_id, account:, request_options: {})
229
232
  #
@@ -18,7 +18,7 @@ module Onlyfans
18
18
  #
19
19
  # @param start_date [String] The start date for the export (ISO 8601 format).
20
20
  #
21
- # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export
21
+ # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export. Use `fansly_chat_messages` to export Fansly chat mes
22
22
  #
23
23
  # @param account_ids [Array<String>] Array of account prefixed IDs to export data from. Not required for `public_prof
24
24
  #
@@ -15,7 +15,7 @@ module Onlyfans
15
15
  #
16
16
  # @param account [String] The Account ID
17
17
  #
18
- # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start
18
+ # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa
19
19
  #
20
20
  # @param limit [Integer] Number of messages to return (default = 10)
21
21
  #
@@ -49,7 +49,7 @@ module Onlyfans
49
49
  #
50
50
  # @param account [String] The Account ID
51
51
  #
52
- # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
52
+ # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
53
53
  #
54
54
  # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format.
55
55
  #
@@ -15,7 +15,7 @@ module Onlyfans
15
15
  #
16
16
  # @param account [String] The Account ID
17
17
  #
18
- # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start
18
+ # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa
19
19
  #
20
20
  # @param limit [Integer] Number of messages to return (default = 10)
21
21
  #
@@ -47,7 +47,7 @@ module Onlyfans
47
47
  #
48
48
  # @param account [String] The Account ID
49
49
  #
50
- # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`.
50
+ # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`.
51
51
  #
52
52
  # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format.
53
53
  #
@@ -24,7 +24,7 @@ module Onlyfans
24
24
  #
25
25
  # @param offset [Integer] Query param: Offset for pagination (default = 0)
26
26
  #
27
- # @param skip_users [String] Query param: Optional flag for subsequent pages (example: all)
27
+ # @param skip_users [String] Query param: Optional flag for subsequent pages (example: all).
28
28
  #
29
29
  # @param skip_users_dups [Integer] Query param: Skip duplicate users in results (0/1). Default = 1
30
30
  #
@@ -58,7 +58,7 @@ module Onlyfans
58
58
  #
59
59
  # @param account [String] The Account ID
60
60
  #
61
- # @param end_date [String] The end date for the period. Keep empty to retrieve until now. MUST BE DATE AFTE
61
+ # @param end_date [String] The end date for the period. Keep empty to retrieve until now. It must be after
62
62
  #
63
63
  # @param start_date [String] The start date for the period. Keep empty to retrieve from the model start date.
64
64
  #
@@ -43,7 +43,19 @@ module Onlyfans
43
43
  # Some parameter documentations has been truncated, see
44
44
  # {Onlyfans::Models::FanListActiveParams} for more details.
45
45
  #
46
- # Get a paginated list of fans for an Account. Newest fans are first.
46
+ # Get a paginated list of fans for an Account. Newest fans are first. Paginate by
47
+ # following `_pagination.next_page` until it is null (`data.hasMore` is the
48
+ # authoritative flag). Do NOT use the page's item count to detect the last page —
49
+ # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on
50
+ # a non-final page because it filters entries server-side; no fans are skipped. To
51
+ # track progress, GET `/{account}/me` returns data.subscribersCount (the current
52
+ # active-subscriber count) as a total.
53
+ #
54
+ # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans
55
+ # who have never spent), which OnlyFans itself cannot do. Those requests are
56
+ # answered from OnlyFansAPI's own fan index rather than proxied, so the page is
57
+ # limited to fans we have already indexed for this account — see `data._source` in
58
+ # the response.
47
59
  #
48
60
  # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {})
49
61
  #
@@ -51,7 +63,7 @@ module Onlyfans
51
63
  #
52
64
  # @param filter [Onlyfans::Models::FanListActiveParams::Filter]
53
65
  #
54
- # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20
66
+ # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page.
55
67
  #
56
68
  # @param offset [Integer] Number of fans to skip. Must be at least 0.
57
69
  #
@@ -79,7 +91,17 @@ module Onlyfans
79
91
  # Some parameter documentations has been truncated, see
80
92
  # {Onlyfans::Models::FanListAllParams} for more details.
81
93
  #
82
- # Get a paginated list of fans for an Account. Newest fans are first.
94
+ # Get a paginated list of fans for an Account. Newest fans are first. Paginate by
95
+ # following `_pagination.next_page` until it is null (`data.hasMore` is the
96
+ # authoritative flag). Do NOT use the page's item count to detect the last page —
97
+ # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on
98
+ # a non-final page because it filters entries server-side; no fans are skipped.
99
+ #
100
+ # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans
101
+ # who have never spent), which OnlyFans itself cannot do. Those requests are
102
+ # answered from OnlyFansAPI's own fan index rather than proxied, so the page is
103
+ # limited to fans we have already indexed for this account — see `data._source` in
104
+ # the response.
83
105
  #
84
106
  # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {})
85
107
  #
@@ -87,7 +109,7 @@ module Onlyfans
87
109
  #
88
110
  # @param filter [Onlyfans::Models::FanListAllParams::Filter]
89
111
  #
90
- # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20
112
+ # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page.
91
113
  #
92
114
  # @param offset [Integer] Number of fans to skip. Must be at least 0.
93
115
  #
@@ -116,6 +138,17 @@ module Onlyfans
116
138
  # {Onlyfans::Models::FanListExpiredParams} for more details.
117
139
  #
118
140
  # Get a paginated list of expired fans for an Account. Newest fans are first.
141
+ # Paginate by following `_pagination.next_page` until it is null (`data.hasMore`
142
+ # is the authoritative flag). Do NOT use the page's item count to detect the last
143
+ # page — OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for
144
+ # limit=20) on a non-final page because it filters entries server-side; no fans
145
+ # are skipped.
146
+ #
147
+ # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans
148
+ # who have never spent), which OnlyFans itself cannot do. Those requests are
149
+ # answered from OnlyFansAPI's own fan index rather than proxied, so the page is
150
+ # limited to fans we have already indexed for this account — see `data._source` in
151
+ # the response.
119
152
  #
120
153
  # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {})
121
154
  #
@@ -123,7 +156,7 @@ module Onlyfans
123
156
  #
124
157
  # @param filter [Onlyfans::Models::FanListExpiredParams::Filter]
125
158
  #
126
- # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20
159
+ # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page.
127
160
  #
128
161
  # @param offset [Integer] Number of fans to skip. Must be at least 0.
129
162
  #
@@ -158,13 +191,13 @@ module Onlyfans
158
191
  #
159
192
  # @param account [String] The Account ID
160
193
  #
161
- # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when <
194
+ # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no
162
195
  #
163
- # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 10
196
+ # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 50
164
197
  #
165
198
  # @param offset [Integer] Number of fans to skip. Must be at least 0.
166
199
  #
167
- # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when <
200
+ # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no
168
201
  #
169
202
  # @param type [Symbol, Onlyfans::Models::FanListLatestParams::Type, nil] Filter by type: total, renew, or new.
170
203
  #
@@ -197,9 +230,9 @@ module Onlyfans
197
230
  #
198
231
  # @param by [Symbol, Onlyfans::Models::FanListTopParams::By, nil] Sort by: total (default), subscribes, tips, messages, post, streams.
199
232
  #
200
- # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when <
233
+ # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no
201
234
  #
202
- # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when <
235
+ # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no
203
236
  #
204
237
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
205
238
  #
@@ -7,9 +7,18 @@ module Onlyfans
7
7
  # Some parameter documentations has been truncated, see
8
8
  # {Onlyfans::Models::FollowingListActiveParams} for more details.
9
9
  #
10
- # Get a paginated list of followings for an Account. Newest followings are first.
11
- #
12
- # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {})
10
+ # Get a paginated list of followings for an Account. By default OnlyFans returns
11
+ # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The
12
+ # expired list does not share this order, so do not assume it applies there. Pass
13
+ # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter
14
+ # description for the caveat that OnlyFans persists the chosen order account-wide.
15
+ # An empty page is not the end of the list: OnlyFans applies `offset` to the whole
16
+ # following collection before filtering it down to the requested list, so a page
17
+ # can come back empty while more results follow. Keep following
18
+ # `_pagination.next_page` until it is `null` instead of stopping at the first
19
+ # empty page.
20
+ #
21
+ # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {})
13
22
  #
14
23
  # @param account [String] The Account ID
15
24
  #
@@ -21,6 +30,10 @@ module Onlyfans
21
30
  #
22
31
  # @param query [String, nil] Search within following name/username.
23
32
  #
33
+ # @param sort [Symbol, Onlyfans::Models::FollowingListActiveParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir
34
+ #
35
+ # @param sort_direction [Symbol, Onlyfans::Models::FollowingListActiveParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce
36
+ #
24
37
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
25
38
  #
26
39
  # @return [Onlyfans::Models::FollowingListActiveResponse]
@@ -32,7 +45,7 @@ module Onlyfans
32
45
  @client.request(
33
46
  method: :get,
34
47
  path: ["api/%1$s/following/active", account],
35
- query: query,
48
+ query: query.transform_keys(sort_direction: "sortDirection"),
36
49
  model: Onlyfans::Models::FollowingListActiveResponse,
37
50
  options: options
38
51
  )
@@ -41,9 +54,18 @@ module Onlyfans
41
54
  # Some parameter documentations has been truncated, see
42
55
  # {Onlyfans::Models::FollowingListAllParams} for more details.
43
56
  #
44
- # Get a paginated list of followings for an Account. Newest followings are first.
57
+ # Get a paginated list of followings for an Account. By default OnlyFans returns
58
+ # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The
59
+ # expired list does not share this order, so do not assume it applies there. Pass
60
+ # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter
61
+ # description for the caveat that OnlyFans persists the chosen order account-wide.
62
+ # An empty page is not the end of the list: OnlyFans applies `offset` to the whole
63
+ # following collection before filtering it down to the requested list, so a page
64
+ # can come back empty while more results follow. Keep following
65
+ # `_pagination.next_page` until it is `null` instead of stopping at the first
66
+ # empty page.
45
67
  #
46
- # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {})
68
+ # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {})
47
69
  #
48
70
  # @param account [String] The Account ID
49
71
  #
@@ -55,6 +77,10 @@ module Onlyfans
55
77
  #
56
78
  # @param query [String, nil] Search within following name/username.
57
79
  #
80
+ # @param sort [Symbol, Onlyfans::Models::FollowingListAllParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir
81
+ #
82
+ # @param sort_direction [Symbol, Onlyfans::Models::FollowingListAllParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce
83
+ #
58
84
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
59
85
  #
60
86
  # @return [Onlyfans::Models::FollowingListAllResponse]
@@ -66,7 +92,7 @@ module Onlyfans
66
92
  @client.request(
67
93
  method: :get,
68
94
  path: ["api/%1$s/following/all", account],
69
- query: query,
95
+ query: query.transform_keys(sort_direction: "sortDirection"),
70
96
  model: Onlyfans::Models::FollowingListAllResponse,
71
97
  options: options
72
98
  )
@@ -75,10 +101,26 @@ module Onlyfans
75
101
  # Some parameter documentations has been truncated, see
76
102
  # {Onlyfans::Models::FollowingListExpiredParams} for more details.
77
103
  #
78
- # Get a paginated list of expired followings for an Account. Newest followings are
79
- # first.
80
- #
81
- # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {})
104
+ # Get a paginated list of expired followings for an Account. This list has no
105
+ # order guarantee. Unlike the all and active lists, it is sorted by neither
106
+ # `subscribedByData.subscribeAt` nor `subscribedByData.expiredAt`. To poll for new
107
+ # expirations, page through the full list each cycle (`limit=50`, follow
108
+ # `_pagination.next_page` until it is null) and diff it against your own store
109
+ # using `subscribedByData.expiredAt`. Do NOT stop early at the first entry you
110
+ # have already seen, as that can silently skip real expirations. An empty page is
111
+ # not the end of the list either: OnlyFans applies `offset` to the whole following
112
+ # collection and only then filters that window down to expired subscriptions, so
113
+ # early pages can come back empty while hundreds of expired rows still follow.
114
+ # Keep following `_pagination.next_page` until it is `null` instead of stopping at
115
+ # the first empty page. Pass `sort=expire_date` (optionally with `sortDirection`)
116
+ # to get a deterministic order instead — see the parameter description for the
117
+ # caveat that OnlyFans persists the chosen order account-wide. Ordering by expiry
118
+ # descending puts the still-active subscriptions first and moves the expired rows
119
+ # to the tail of the collection, so prefer `sortDirection=asc` or
120
+ # `sort=is_expired` for expired-first results; for that reason `sort=expire_date`
121
+ # defaults to `asc` on this list when no `sortDirection` is given.
122
+ #
123
+ # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {})
82
124
  #
83
125
  # @param account [String] The Account ID
84
126
  #
@@ -90,6 +132,10 @@ module Onlyfans
90
132
  #
91
133
  # @param query [String, nil] Search within following name/username.
92
134
  #
135
+ # @param sort [Symbol, Onlyfans::Models::FollowingListExpiredParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir
136
+ #
137
+ # @param sort_direction [Symbol, Onlyfans::Models::FollowingListExpiredParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce
138
+ #
93
139
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
94
140
  #
95
141
  # @return [Onlyfans::Models::FollowingListExpiredResponse]
@@ -101,7 +147,7 @@ module Onlyfans
101
147
  @client.request(
102
148
  method: :get,
103
149
  path: ["api/%1$s/following/expired", account],
104
- query: query,
150
+ query: query.transform_keys(sort_direction: "sortDirection"),
105
151
  model: Onlyfans::Models::FollowingListExpiredResponse,
106
152
  options: options
107
153
  )
@@ -2,14 +2,14 @@
2
2
 
3
3
  module Onlyfans
4
4
  module Resources
5
- # APIs for managing tags on free trial links and tracking links
5
+ # APIs for managing tags on free trial links, tracking links, and Smart Links
6
6
  class LinkTags
7
- # Get all existing tags that have been used on free trial links and/or tracking
8
- # links for this account. This is a free endpoint.
7
+ # Get all existing tags that have been used on free trial links, tracking links,
8
+ # and/or Smart Links for this account. This is a free endpoint.
9
9
  #
10
10
  # @overload list(type: nil, request_options: {})
11
11
  #
12
- # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for both types.
12
+ # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for all types.
13
13
  #
14
14
  # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil]
15
15
  #