diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3c7a6458..17658902 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,7 +26,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
- node-version: '20'
+ node-version: '24'
- name: Set up pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0
@@ -53,7 +53,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
- node-version: '20'
+ node-version: '24'
- name: Set up pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0
@@ -95,7 +95,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
- node-version: '20'
+ node-version: '24'
- name: Set up pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 36638c43..9946a640 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -19,7 +19,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
with:
- node-version: '20'
+ node-version: '24'
- name: Set up pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 2be9c43c..0ee8c012 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.2.0"
+ ".": "0.3.0"
}
diff --git a/.stats.yml b/.stats.yml
index 46252709..31642603 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 266
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-b9b67bf32f2b519e3230760d49e20c30e66107a6991f1a1f1a108f6c578c2fde.yml
-openapi_spec_hash: da475361c28b843ddd1b45bbea333762
-config_hash: a522aab696c4535f715ae59ddfe8222f
+configured_endpoints: 265
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-c7b4dde3eb431e3c636e2b6bc3a7bc40aaee037783648040876793082942a877.yml
+openapi_spec_hash: b2059518c78b8c03fcbd4e1773ff4d77
+config_hash: 397c91e15c0024f8b5bbed9b82c2348c
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fbadecd7..6e15564d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,171 @@
# Changelog
+## 0.3.0 (2026-07-11)
+
+Full Changelog: [v0.2.0...v0.3.0](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/compare/v0.2.0...v0.3.0)
+
+### Features
+
+* **api:** api update ([1a1c5d2](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/1a1c5d2895fccf54710292faf345c839efc21910))
+* **api:** api update ([0729449](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/07294490fa8a639ae9cd7afae4e99cc6ad73716c))
+* **api:** api update ([1c8ed61](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/1c8ed614ee0a88bbaa8fd04da0c83be0b9e6086f))
+* **api:** api update ([09a7095](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/09a70956c32f0f132d7efc68eb3aa42719035ea7))
+* **api:** api update ([6110f07](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/6110f07a409b9fb1ea72f6947484295a4b6ec1cb))
+* **api:** api update ([ccab2a9](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ccab2a9e458023e5a5455d0e51a0f2792a4b7d6a))
+* **api:** api update ([c667de1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c667de1845506fe11beec46e6cea9acf9923d9e6))
+* **api:** api update ([ca3fa7d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ca3fa7ddbcd49c8605d373b58ba67b8274e15d12))
+* **api:** api update ([f69e7eb](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f69e7eb681f044222c5782ef01a64602fdf6c6ab))
+* **api:** api update ([ce1a135](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ce1a135817d04e5c3117460575c6020b04abffb1))
+* **api:** api update ([683e0b1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/683e0b105d4102f1bd666ae01daed62ac7c8790b))
+* **api:** api update ([fbf7e77](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/fbf7e77f0d648207ee5fc2d9bb71aee2b62a02e2))
+* **api:** api update ([838cd76](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/838cd7643d9b8deacf7791e53832be01e406b8b2))
+* **api:** api update ([b6c0885](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/b6c0885f19707df9d98c54b6f373e6df0fe4a798))
+* **api:** api update ([de18ad7](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/de18ad7686fff09d042877f87f0b6916ed9f850d))
+* **api:** api update ([1860995](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/186099583e86b9c51d6816952ec7b5e587868857))
+* **api:** api update ([057e021](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/057e021b08ec70e5fb1a0dc1c90e1ee893d9bdd9))
+* **api:** api update ([f219bef](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f219bef63b654d615304ee680f4fad139fbc049a))
+* **api:** api update ([9eb0b72](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/9eb0b72e2dbd58b45ff9fb8dcc584d1c81df100f))
+* **api:** api update ([2e87746](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2e87746284c269b0315ccea719df1c52acf9e2ee))
+* **api:** api update ([a933eb6](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a933eb65500d19109bedc378d3f3c1798bc27327))
+* **api:** api update ([78a6086](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/78a6086fd29d9f7f05a2aceb3398c98cd088662f))
+* **api:** api update ([6cfc271](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/6cfc2713a3bc70d590ae9108034fb0ef0cf91efd))
+* **api:** api update ([9fe6eae](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/9fe6eaeca808b011253e00774430bc183c67f9e8))
+* **api:** api update ([5ddb40a](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/5ddb40a3dbd792ee33ab4e16d3bfa71459fdb0c0))
+* **api:** api update ([4760ed2](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4760ed26064c793f74b4bf703af45d7fd29c87b1))
+* **api:** api update ([97fa1f7](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/97fa1f7abc78795df6a97f76803ea98e0464f73a))
+* **api:** api update ([f64165c](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f64165c927f64b9a71efa777cc9db3017b8be03b))
+* **api:** api update ([97c4d97](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/97c4d977ffa0de991bb420ab5227e0de2ce608f8))
+* **api:** api update ([148c5be](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/148c5be9ecaf607a045aaa8de69b445b32b42579))
+* **api:** api update ([66e3ff6](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/66e3ff6099d06788a97beb18b25f81ace59f621a))
+* **api:** api update ([e4b6686](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/e4b66860a66a2041ffbf5ea8a389e3f1381c812e))
+* **api:** api update ([3038a94](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3038a9435ec5a252da6402c6086a48de0f2f9e8a))
+* **api:** api update ([8b69c42](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8b69c4237e6944a1a70dab3bbdd860084565d8b7))
+* **api:** api update ([2afbb35](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2afbb351ea9dc6775eaf9d153287c5f2c0f3db8f))
+* **api:** api update ([56e0cc3](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/56e0cc3c3854b1d5c5b6c5bc4a7efb1374778459))
+* **api:** api update ([3238886](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/32388862eff60330248c922e532ab55ad96f56fb))
+* **api:** api update ([23a3de0](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/23a3de0f20ebb26e5f465052efa8b6150f23eee1))
+* **api:** api update ([2644339](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/264433997b883b834866128e11a1c82ccd34e029))
+* **api:** api update ([d9d3274](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/d9d3274e6e95514d06931ce67e32857537395713))
+* **api:** api update ([955f228](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/955f228cb735459ac88dc456e0c3cc373875eba4))
+* **api:** api update ([8674431](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8674431ec34f4908501f16a06ca18e3578b62bb0))
+* **api:** api update ([2410b93](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2410b936bb45023df611d5d8413e00f1ee48f8c0))
+* **api:** api update ([abf8dba](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/abf8dba90fb21497883acf3603107a8eaec6181a))
+* **api:** api update ([98972c7](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/98972c77e930a545b38bd36266cf4f698d6c54ea))
+* **api:** api update ([a613f4c](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a613f4c7ef30e0ae4ba0535b69b09ddb1f9bcfbd))
+* **api:** api update ([c4e478e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c4e478e44edaa13dae27abc3d12c31efa90cee4d))
+* **api:** api update ([95f1dfb](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/95f1dfbb8dc2d031124c0cdd4a88f9b0b03fc7bf))
+* **api:** api update ([778f909](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/778f909697924ee12cde9d3e077b06d50be2e6c2))
+* **api:** api update ([8eb5a2c](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8eb5a2cebf48c593a0bcb678f932079c9a21b40a))
+* **api:** api update ([a235e0f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a235e0f9f69796efa1dae6706a0aab68691d5e82))
+* **api:** api update ([f9a5724](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f9a5724970299d7be7ac5ed5e9f006413deb455f))
+* **api:** api update ([ee2c0d7](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ee2c0d776f70e34442181bb355bccda787a756b9))
+* **api:** api update ([6b4c186](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/6b4c186dec4378e46c32c7f27948f5699c6a80fd))
+* **api:** api update ([86f8ba8](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/86f8ba812c11263ecd6c6e207ea255fcbc9d0ff0))
+* **api:** api update ([3b4c759](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3b4c759f314a0f6ca3dc79a0e7880db08bf0b02b))
+* **api:** api update ([316d824](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/316d82489708356f77ff704c63fd5130d9f8254e))
+* **api:** api update ([58d1f67](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/58d1f67f10575b1d9bc3fa50ae9dbb03c38ed255))
+* **api:** api update ([c55e299](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c55e2999f032401ef6cba186e6cfd05153b61e6a))
+* **api:** api update ([8829b3d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8829b3d3a3539a166c1cb62d1c350736121cf57c))
+* **api:** api update ([37d10c0](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/37d10c068743a3535f8677cd0903ba3fb74f1d29))
+* **api:** api update ([c4bd5b1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c4bd5b1fb739e27c9f3fc9fb56c023961f203598))
+* **api:** api update ([b7c1073](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/b7c10733fedd5451641f86bb5110b4e961fc0d72))
+* **api:** api update ([4977171](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/497717178c8f21ac5d53cd649935e386943c7001))
+* **api:** api update ([c2716dd](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c2716dd0d249e110eda8fceacb15ecf62226c6a0))
+* **api:** api update ([e99b7a5](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/e99b7a5e42bf4401462d1857df9c7dd2818259c6))
+* **api:** api update ([d40bc24](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/d40bc248e2007524825da5e11411937106e84ae5))
+* **api:** api update ([ea37ee1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ea37ee11911649f40b998d54dd4a8b7ac584eef5))
+* **api:** api update ([38a5647](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/38a56478411ff2974e676c6d1ca82d16eff698a0))
+* **api:** api update ([f7ee288](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f7ee2880456193addd601b5c5688cdba838bc66e))
+* **api:** api update ([20e3d06](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/20e3d06c1ace9398301ba5453afe10f7304f524e))
+* **api:** api update ([8e3cd6f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8e3cd6f63633c2099203013eab8adfd00993b510))
+* **api:** api update ([16bb725](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/16bb72544eedd4aea207360fbafaef6b2a022984))
+* **api:** api update ([7e379ae](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/7e379ae329d208fb7dec30a45a90575e8b2556bb))
+* **api:** api update ([bf50100](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/bf50100ec625d9b035aa16871e9281b13cc2e037))
+* **api:** api update ([880fdc1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/880fdc106d2ffecd7d9167d24279707fbe4b141e))
+* **api:** api update ([9897ca1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/9897ca1b62bc83e7275c43f960682253265cfd21))
+* **api:** api update ([203522d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/203522d703c42cdb8c03e1e2e134b1fb0b36790e))
+* **api:** api update ([c85defa](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c85defafcf6fcb645823f6af12b1df6dc3231f51))
+* **api:** api update ([37abea6](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/37abea676a67e8b07ecdee2ae967bbbc57e328ec))
+* **api:** api update ([dc7480e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/dc7480e8cef2e141df3f6bbc1aae1d3da10d7b8c))
+* **api:** api update ([9aae0b0](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/9aae0b0ce7271c4d0f37d9e42457cbed86552a17))
+* **api:** api update ([f3b60cf](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f3b60cf920fcdb2779315eaa49a94b3030b8bbb4))
+* **api:** api update ([d5a171e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/d5a171e03d462137a5b217891711ff938e5f1700))
+* **api:** api update ([85c1517](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/85c1517138e5dc37a56f405d31363d9b2a9dee89))
+* **api:** api update ([8bed78d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8bed78da3c4bd1f286aa441b65576dafbd985ae6))
+* **api:** api update ([e928819](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/e9288199b8a3ea07445850bfb8ab109a5611f2ff))
+* **api:** api update ([e8f55e4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/e8f55e499778343f80fc11b423598ea1148f0881))
+* **api:** api update ([b1d6f19](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/b1d6f198688ba2d1b5aef8d12b65376ea431178f))
+* **api:** api update ([0e64ad9](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/0e64ad9145eab434d84cda92853ad4812e94f661))
+* **api:** api update ([5f32ddc](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/5f32ddcd443c1de9485003e8a1e9661781903bee))
+* **api:** api update ([a2eea78](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a2eea789ebbd99a4e4869d3abb5a227e4f8d6629))
+* **api:** api update ([212f078](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/212f078a3fffc70ede17b3e4de23903d14178086))
+* **api:** api update ([41b02ef](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/41b02efb70098a498ae0639a9b75e5f5450f81f0))
+* **api:** api update ([2db03f5](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2db03f51d66f3af287a0a20fae080b38474ac952))
+* **api:** api update ([e4dd2dd](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/e4dd2ddb74ae17f1abdf3baea48da5ff680f3d40))
+* **api:** api update ([0073ccc](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/0073ccce57bb70a2a33ac9f25eaa3f02c5947143))
+* **api:** api update ([93b27d8](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/93b27d8d781b405d7bed40880c4552423dd2de9a))
+* **api:** api update ([c4048c4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c4048c43712afebfbf52d6afa8ff0d9f61fa65eb))
+* **api:** api update ([07e7142](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/07e7142105072534c10d8a6f293ddb1540200039))
+* **api:** api update ([14b9f56](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/14b9f56d6162a62e5555d6727b9bac9a75aab24a))
+* **api:** api update ([891a201](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/891a20154858e332f6965a897a11c1e3eb60d46d))
+* **api:** api update ([980ff36](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/980ff369e0ef08500ae478ded5a232da7f38b5ed))
+* **api:** api update ([b25bee6](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/b25bee6f69bce712a4937386383ccec055309f39))
+* **api:** api update ([5a77418](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/5a77418eb4f2058adb334944d241e7b91f3711c7))
+* **api:** api update ([4a111d4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4a111d4f097391fdc6dc920ba1606c0d8621708a))
+* **api:** api update ([a43dc12](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a43dc1250b1a5933fa4af5a965447b93fc14e793))
+* **api:** api update ([f0b9fb8](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f0b9fb8ad5624c01e220df4381cc37a1213a1692))
+* **api:** api update ([ca21354](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ca2135486d6ca505afe5c49142f29adc7e227fa3))
+* **api:** api update ([01c6418](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/01c6418872a4dc0595e42f781d03386a82bff9be))
+* **api:** api update ([057180b](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/057180b905228cbb29c753be8ecac5683c600dd0))
+* **api:** api update ([a48a7e2](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a48a7e23be200f80b19c72e4b2c82f974cec1117))
+* **api:** api update ([f9977f2](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/f9977f213c80713606e9cfc600e15c7383e4644f))
+* **api:** api update ([aee1709](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/aee1709a9d39bd78be1db9aaaf0e3a2497a45f83))
+* **api:** api update ([66e39a4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/66e39a42bb0d0c4bb70d0450f0cbff98cc45fe5c))
+* **api:** api update ([9ca88c4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/9ca88c44a83eb4ab893c19c433044176fcc479d1))
+* **api:** api update ([59cc52a](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/59cc52af2ecf36763f5d1f06c7bba9a55519141e))
+* **api:** api update ([bc7b763](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/bc7b763675ba43a49f8cab78a30255866c35e4b2))
+* **api:** api update ([710d78e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/710d78e95405788e056f3a338a2d8fd772a26eee))
+* **api:** api update ([3bdb33f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3bdb33f46ecd9a661a99ffbe1eeb4ce7ddfb57cb))
+* **api:** api update ([0d0c1dc](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/0d0c1dcf0720c6f4ef56779a1c4e6f2fad1a33c3))
+* **api:** api update ([8d3c93c](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8d3c93c186cb7a11fd84226957137a7505e045d7))
+* **api:** api update ([0017f6f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/0017f6f209548fe6a8ead615b86b913a6df7baf1))
+* **api:** api update ([1f119f5](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/1f119f566c1f540f8a466d371fb6956ceecce30a))
+* **api:** api update ([a79343d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a79343d9a35f5a31e3d29320e1588e1d3c529f10))
+* **api:** api update ([8ebf680](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8ebf680384a856aed45875ae4453bb594d8316c6))
+* **api:** api update ([8b449c4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/8b449c44c869ab90ada7acc26123d58bfc083f1f))
+* **api:** api update ([4b821d9](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4b821d974a38d50ae58321f62a83cd6c62998bb5))
+* **api:** api update ([3dbb7ca](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3dbb7ca5c9b27baa4a7be982f69394a683db7090))
+* **api:** api update ([4019fcb](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4019fcbe6b6fdcc117c6b8dabc174ab166498520))
+* **api:** api update ([ebdc5d4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ebdc5d46ba1bec74cc573fafff2d20ac4849db76))
+* **api:** api update ([1de2a95](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/1de2a952889d464577df810a8da0d7af3bbc1c7c))
+* **api:** api update ([b5ac8cc](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/b5ac8ccaa35aab1bfd6c8d391a9cb42302a4849a))
+* **api:** api update ([882ec77](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/882ec779a553bf8f0d1db0ca35ef2609c5a8078c))
+* **api:** api update ([4eec03f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4eec03ff386d8c64bd83285865c82bb061bf70a6))
+* **api:** api update ([3df5007](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3df5007c69007088fc11a9aa01fb31088d9b5206))
+* **api:** api update ([3d8f2c4](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3d8f2c4ca4509051e645536e656d82dadc9a20f2))
+* **api:** api update ([ac2d398](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ac2d39857ba083470553fab82c27f940926081b6))
+* **api:** api update ([5ffb97d](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/5ffb97d9f3802d47f115a57bee40f3581801a3cd))
+* **api:** api update ([c2bc00b](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/c2bc00b282aca8daa45b24e6f4dc0fe66a606af4))
+* **api:** api update ([864ab2a](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/864ab2a56a9233228eb3053c0126794e1ae58182))
+* **api:** api update ([21aaa90](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/21aaa9051c98389cd43e3ed577b1a55dc90c1cdd))
+* **api:** api update ([a514bd1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/a514bd1af8d12749bf37af858f70087126d6efbf))
+* **api:** api update ([83acb2e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/83acb2edc04277e8494e469cd596cec1faa4ed81))
+* **api:** api update ([ad300ac](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ad300ac3fb405cebd716bdd0e28d40b419ca6012))
+* **api:** api update ([3974622](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/39746225a5043e7b0861eda2ef1f491f6407da3a))
+* **api:** api update ([4dc96ad](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4dc96addfdd7e241dcfcb967cd4c237ad417b85a))
+* **api:** api update ([2ba0e5f](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2ba0e5f5ee52365b833d6904268201f398aaa001))
+* **api:** api update ([1312108](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/131210835bbd489c99ed6056302e0e1c30b0de12))
+* **api:** api update ([ff87eb3](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/ff87eb31769d1fa7de42185fd8089f543809a6b5))
+* **api:** api update ([efe94c1](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/efe94c163c71dbf361316438c01dff00fb2d87d8))
+* **api:** api update ([2894f2a](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/2894f2a7ecb37a33faf9f9e7b128c14e9bb0c518))
+* **api:** api update ([7466589](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/74665892091c8009dc04edf23fea6acb36eda70d))
+
+
+### Bug Fixes
+
+* **ci:** bump @arethetypeswrong/cli to ^0.18.0 and run CI workflows on Node 24 ([3547c2a](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/3547c2afac2f2460d46c51a0624868f7c5a8c111))
+* **client:** send content-type header for requests with an omitted optional body ([4f2d93e](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/commit/4f2d93e20ba3469807891876d90405abac984b85))
+
## 0.2.0 (2026-05-25)
Full Changelog: [v0.1.1...v0.2.0](https://github.com/onlyfansapi/onlyfansapi-typescript-sdk/compare/v0.1.1...v0.2.0)
diff --git a/api.md b/api.md
index 3164dc40..43412799 100644
--- a/api.md
+++ b/api.md
@@ -192,14 +192,6 @@ Methods:
# Messages
-Types:
-
-- MessageAttachTagsResponse
-
-Methods:
-
-- client.messages.attachTags(messageID, { ...params }) -> MessageAttachTagsResponse
-
# ClientSessions
Types:
@@ -431,13 +423,12 @@ Methods:
Types:
-- MediaDownloadResponse
- MediaScrapeResponse
- MediaUploadResponse
Methods:
-- client.media.download(cdnURL, { ...params }) -> string
+- client.media.download(cdnURL, { ...params }) -> void
- client.media.scrape(account, { ...params }) -> MediaScrapeResponse
- client.media.upload(account, { ...params }) -> MediaUploadResponse
diff --git a/package.json b/package.json
index 36a7c755..7dcb9bdf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@onlyfansapi/onlyfans-sdk",
- "version": "0.2.0",
+ "version": "0.3.0",
"description": "The official TypeScript library for the Only Fans API API",
"author": "Only Fans API ",
"types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
},
"dependencies": {},
"devDependencies": {
- "@arethetypeswrong/cli": "^0.17.0",
+ "@arethetypeswrong/cli": "^0.18.0",
"@swc/core": "^1.3.102",
"@swc/jest": "^0.2.29",
"@types/jest": "^29.4.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6497094d..a953c6f7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11,8 +11,8 @@ importers:
.:
devDependencies:
'@arethetypeswrong/cli':
- specifier: ^0.17.0
- version: 0.17.0
+ specifier: ^0.18.0
+ version: 0.18.4
'@swc/core':
specifier: ^1.3.102
version: 1.4.16
@@ -78,20 +78,20 @@ packages:
integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==,
}
- '@arethetypeswrong/cli@0.17.0':
+ '@arethetypeswrong/cli@0.18.4':
resolution:
{
- integrity: sha512-xSMW7bfzVWpYw5JFgZqBXqr6PdR0/REmn3DkxCES5N0JTcB0CVgbIynJCvKBFmXaPc3hzmmTrb7+yPDRoOSZdA==,
+ integrity: sha512-kNWo6LTzGAuLYPpJ7Sgo63whSUeeSuKMlYx6IBgzs4ONEG807gW4hSSENvpeCHzO2H2wIzG5EFl0OKBbqGBAyA==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=20' }
hasBin: true
- '@arethetypeswrong/core@0.17.0':
+ '@arethetypeswrong/core@0.18.4':
resolution:
{
- integrity: sha512-FHyhFizXNetigTVsIhqXKGYLpazPS5YNojEPpZEUcBPt9wVvoEbNIvG+hybuBR+pjlRcbyuqhukHZm1fr+bDgA==,
+ integrity: sha512-M5F0ePyN6h2Z6XxRiyIPqjGbltotXLjR0CKA0uKspsDu0QmgTNYvRb4RSQPMUs2ZXZHCCYpbaZbFbYOXLxCjUA==,
}
- engines: { node: '>=18' }
+ engines: { node: '>=20' }
'@babel/code-frame@7.28.6':
resolution:
@@ -363,6 +363,12 @@ packages:
integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==,
}
+ '@braidai/lang@1.1.2':
+ resolution:
+ {
+ integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==,
+ }
+
'@colors/colors@1.5.0':
resolution:
{
@@ -665,6 +671,12 @@ packages:
integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
}
+ '@loaderkit/resolve@1.0.6':
+ resolution:
+ {
+ integrity: sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg==,
+ }
+
'@nodelib/fs.scandir@2.1.5':
resolution:
{
@@ -1678,10 +1690,10 @@ packages:
integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==,
}
- fflate@0.8.2:
+ fflate@0.8.3:
resolution:
{
- integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==,
+ integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==,
}
file-entry-cache@8.0.0:
@@ -2366,11 +2378,12 @@ packages:
integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
}
- lru-cache@10.4.3:
+ lru-cache@11.5.2:
resolution:
{
- integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==,
+ integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==,
}
+ engines: { node: 20 || >=22 }
lru-cache@5.1.1:
resolution:
@@ -2852,14 +2865,6 @@ packages:
}
hasBin: true
- semver@7.7.1:
- resolution:
- {
- integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==,
- }
- engines: { node: '>=10' }
- hasBin: true
-
semver@7.7.3:
resolution:
{
@@ -3365,23 +3370,24 @@ packages:
snapshots:
'@andrewbranch/untar.js@1.0.3': {}
- '@arethetypeswrong/cli@0.17.0':
+ '@arethetypeswrong/cli@0.18.4':
dependencies:
- '@arethetypeswrong/core': 0.17.0
+ '@arethetypeswrong/core': 0.18.4
chalk: 4.1.2
cli-table3: 0.6.5
commander: 10.0.1
marked: 9.1.6
marked-terminal: 7.2.1(marked@9.1.6)
- semver: 7.7.1
+ semver: 7.7.3
- '@arethetypeswrong/core@0.17.0':
+ '@arethetypeswrong/core@0.18.4':
dependencies:
'@andrewbranch/untar.js': 1.0.3
+ '@loaderkit/resolve': 1.0.6
cjs-module-lexer: 1.4.1
- fflate: 0.8.2
- lru-cache: 10.4.3
- semver: 7.7.1
+ fflate: 0.8.3
+ lru-cache: 11.5.2
+ semver: 7.7.3
typescript: 5.6.1-rc
validate-npm-package-name: 5.0.1
@@ -3574,6 +3580,8 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
+ '@braidai/lang@1.1.2': {}
+
'@colors/colors@1.5.0':
optional: true
@@ -3849,6 +3857,10 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
+ '@loaderkit/resolve@1.0.6':
+ dependencies:
+ '@braidai/lang': 1.1.2
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -4462,7 +4474,7 @@ snapshots:
dependencies:
bser: 2.1.1
- fflate@0.8.2: {}
+ fflate@0.8.3: {}
file-entry-cache@8.0.0:
dependencies:
@@ -4909,7 +4921,7 @@ snapshots:
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
- semver: 7.7.1
+ semver: 7.7.3
transitivePeerDependencies:
- supports-color
@@ -5013,7 +5025,7 @@ snapshots:
lodash.merge@4.6.2: {}
- lru-cache@10.4.3: {}
+ lru-cache@11.5.2: {}
lru-cache@5.1.1:
dependencies:
@@ -5254,8 +5266,6 @@ snapshots:
semver@6.3.1: {}
- semver@7.7.1: {}
-
semver@7.7.3: {}
shebang-command@2.0.0:
@@ -5512,7 +5522,7 @@ snapshots:
yargs@16.2.0:
dependencies:
cliui: 7.0.4
- escalade: 3.1.1
+ escalade: 3.2.0
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
diff --git a/src/client.ts b/src/client.ts
index 249b1c38..5223d108 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -104,7 +104,7 @@ import {
MeGetTopPercentageResponse,
MeRetrieveResponse,
} from './resources/me';
-import { MessageAttachTagsParams, MessageAttachTagsResponse, Messages } from './resources/messages';
+import { Messages } from './resources/messages';
import {
PayoutListRequestsParams,
PayoutListRequestsResponse,
@@ -256,7 +256,6 @@ import {
import {
Media,
MediaDownloadParams,
- MediaDownloadResponse,
MediaScrapeParams,
MediaScrapeResponse,
MediaUploadParams,
@@ -1045,11 +1044,19 @@ export class OnlyFansAPI {
return () => controller.abort();
}
- private buildBody({ options: { body, headers: rawHeaders } }: { options: FinalRequestOptions }): {
+ private buildBody({ options }: { options: FinalRequestOptions }): {
bodyHeaders: HeadersLike;
body: BodyInit | undefined;
} {
+ const { body, headers: rawHeaders } = options;
if (!body) {
+ // A resource method always passes a `body` key when its operation defines a
+ // request body, even if the caller omitted an optional body param. Keep the
+ // content-type for those, and only elide it for operations with no body at
+ // all (e.g. GET/DELETE).
+ if (body == null && 'body' in options) {
+ return this.#encoder({ body, headers: buildHeaders([rawHeaders]) });
+ }
return { bodyHeaders: undefined, body: undefined };
}
const headers = buildHeaders([rawHeaders]);
@@ -1147,7 +1154,7 @@ export class OnlyFansAPI {
trialLinks: API.TrialLinks = new API.TrialLinks(this);
giphy: API.Giphy = new API.Giphy(this);
/**
- * APIs for managing tags on free trial links and tracking links
+ * APIs for managing tags on free trial links, tracking links, and Smart Links
*/
linkTags: API.LinkTags = new API.LinkTags(this);
massMessaging: API.MassMessaging = new API.MassMessaging(this);
@@ -1314,11 +1321,7 @@ export declare namespace OnlyFansAPI {
type ChatUnmuteParams as ChatUnmuteParams,
};
- export {
- Messages as Messages,
- type MessageAttachTagsResponse as MessageAttachTagsResponse,
- type MessageAttachTagsParams as MessageAttachTagsParams,
- };
+ export { Messages as Messages };
export {
ClientSessions as ClientSessions,
@@ -1430,7 +1433,6 @@ export declare namespace OnlyFansAPI {
export {
Media as Media,
- type MediaDownloadResponse as MediaDownloadResponse,
type MediaScrapeResponse as MediaScrapeResponse,
type MediaUploadResponse as MediaUploadResponse,
type MediaDownloadParams as MediaDownloadParams,
diff --git a/src/resources/accounts.ts b/src/resources/accounts.ts
index e8b821f8..b1810840 100644
--- a/src/resources/accounts.ts
+++ b/src/resources/accounts.ts
@@ -29,7 +29,9 @@ export class Accounts extends APIResource {
*
* @example
* ```ts
- * const response = await client.accounts.disconnect('nobis');
+ * const response = await client.accounts.disconnect(
+ * 'ratione',
+ * );
* ```
*/
disconnect(id: string, options?: RequestOptions): APIPromise {
diff --git a/src/resources/analytics/financial/profitability.ts b/src/resources/analytics/financial/profitability.ts
index ec20b645..3f9fd712 100644
--- a/src/resources/analytics/financial/profitability.ts
+++ b/src/resources/analytics/financial/profitability.ts
@@ -56,45 +56,87 @@ export class Profitability extends APIResource {
}
}
-export type ProfitabilityGetHistoryResponse =
- Array;
+export interface ProfitabilityGetHistoryResponse {
+ data?: Array;
+}
export namespace ProfitabilityGetHistoryResponse {
- export interface ProfitabilityGetHistoryResponseItem {
- gross_revenue?: number;
+ export interface Data {
+ activeMilestones?: string | null;
+
+ agencyEarnings?: string;
+
+ commissionAmount?: string;
+
+ commissionRate?: string;
+
+ costs?: Array;
+
+ creatorName?: string;
- margin?: number;
+ hasCommissionForPeriod?: boolean;
+
+ hasCostsForPeriod?: boolean;
+
+ marginPercentage?: string;
month?: number;
- net_revenue?: number;
+ onlyFansUserId?: number;
+
+ profit?: string;
+
+ projectedNet?: string;
+
+ ratePeriods?: Array;
+
+ referralNote?: string | null;
- profit?: number;
+ totalCosts?: string;
year?: number;
}
}
-export type ProfitabilityGetProfitabilityResponse =
- Array;
+export interface ProfitabilityGetProfitabilityResponse {
+ data?: Array;
+}
export namespace ProfitabilityGetProfitabilityResponse {
- export interface ProfitabilityGetProfitabilityResponseItem {
- commission?: number;
+ export interface Data {
+ activeMilestones?: string | null;
+
+ agencyEarnings?: string;
+
+ commissionAmount?: string;
+
+ commissionRate?: string;
+
+ costs?: Array;
+
+ creatorName?: string;
- creator_id?: number;
+ hasCommissionForPeriod?: boolean;
- gross_revenue?: number;
+ hasCostsForPeriod?: boolean;
- margin?: number;
+ marginPercentage?: string;
- name?: string;
+ month?: number;
+
+ onlyFansUserId?: number;
+
+ profit?: string;
- net_revenue?: number;
+ projectedNet?: string;
- profit?: number;
+ ratePeriods?: Array;
- total_costs?: number;
+ referralNote?: string | null;
+
+ totalCosts?: string;
+
+ year?: number;
}
}
diff --git a/src/resources/authenticate.ts b/src/resources/authenticate.ts
index d10eea6c..9d00c7a9 100644
--- a/src/resources/authenticate.ts
+++ b/src/resources/authenticate.ts
@@ -511,7 +511,7 @@ export interface AuthenticateStartParams {
* The country of the managed proxy server you want to use. Eg. "us" for United
* States. Cannot be used together with customProxy.
*/
- proxyCountry?: 'us' | 'uk';
+ proxyCountry?: 'us' | 'uk' | 'gb';
/**
* The browser User-Agent string. Required when auth_type is `raw_data`.
diff --git a/src/resources/chats/chats.ts b/src/resources/chats/chats.ts
index 77c97030..560f791e 100644
--- a/src/resources/chats/chats.ts
+++ b/src/resources/chats/chats.ts
@@ -157,8 +157,8 @@ export class Chats extends APIResource {
/**
* Calling this endpoint will show the target fan a "Model is typing..." note in
- * the chat for ~4 seconds. If you want to continue showing the indicator call this
- * endpoint multiple times. Free - no credits charged.
+ * the chat for ~4 seconds. Duplicate calls for the same account and chat are
+ * coalesced during that window.
*
* @example
* ```ts
diff --git a/src/resources/client-sessions.ts b/src/resources/client-sessions.ts
index fa88e804..51ee2e89 100644
--- a/src/resources/client-sessions.ts
+++ b/src/resources/client-sessions.ts
@@ -82,7 +82,7 @@ export interface ClientSessionCreateParams {
*/
client_reference_id?: string;
- proxy_country?: 'us' | 'uk' | null;
+ proxy_country?: 'us' | 'uk' | 'gb' | null;
}
export declare namespace ClientSessions {
diff --git a/src/resources/data-exports.ts b/src/resources/data-exports.ts
index 7655bbef..c1631a20 100644
--- a/src/resources/data-exports.ts
+++ b/src/resources/data-exports.ts
@@ -230,6 +230,8 @@ export namespace DataExportRetrieveResponse {
failed_at?: string | null;
+ failed_downloads?: number;
+
failed_reason?: string | null;
file_type?: string;
@@ -327,6 +329,8 @@ export namespace DataExportListResponse {
failed_at?: string | null;
+ failed_downloads?: number;
+
failed_reason?: string | null;
file_type?: string;
@@ -588,11 +592,12 @@ export interface DataExportCreateParams {
* (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional),
* `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum
* photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount`
- * (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date),
- * `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601
- * date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date,
- * profile added to DB before), `instagram` (optional), `twitter` (optional),
- * `tiktok` (optional), `maxResults` (optional, limit results).
+ * (optional, minimum subscribers), `maxSubscribersCount` (optional, maximum
+ * subscribers), `minJoinDate` (optional, ISO 8601 date), `minLastSeenAt`
+ * (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601 date, profile
+ * added to DB after), `createdAtTo` (optional, ISO 8601 date, profile added to DB
+ * before), `instagram` (optional), `twitter` (optional), `tiktok` (optional),
+ * `maxResults` (optional, limit results).
*/
options?: { [key: string]: unknown };
}
diff --git a/src/resources/engagement/messages/messages.ts b/src/resources/engagement/messages/messages.ts
index 7e83f2ad..5b26103c 100644
--- a/src/resources/engagement/messages/messages.ts
+++ b/src/resources/engagement/messages/messages.ts
@@ -31,9 +31,10 @@ export class Messages extends APIResource {
* @example
* ```ts
* const response =
- * await client.engagement.messages.getMessageBuyers('et', {
- * account: 'acct_XXXXXXXXXXXXXXX',
- * });
+ * await client.engagement.messages.getMessageBuyers(
+ * 'odio',
+ * { account: 'acct_XXXXXXXXXXXXXXX' },
+ * );
* ```
*/
getMessageBuyers(
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 05009760..cf7a6854 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -134,14 +134,13 @@ export {
} from './me';
export {
Media,
- type MediaDownloadResponse,
type MediaScrapeResponse,
type MediaUploadResponse,
type MediaDownloadParams,
type MediaScrapeParams,
type MediaUploadParams,
} from './media/media';
-export { Messages, type MessageAttachTagsResponse, type MessageAttachTagsParams } from './messages';
+export { Messages } from './messages';
export {
Notifications,
type NotificationListResponse,
diff --git a/src/resources/link-tags.ts b/src/resources/link-tags.ts
index 5489cf2d..104cf494 100644
--- a/src/resources/link-tags.ts
+++ b/src/resources/link-tags.ts
@@ -5,12 +5,12 @@ import { APIPromise } from '../core/api-promise';
import { RequestOptions } from '../internal/request-options';
/**
- * APIs for managing tags on free trial links and tracking links
+ * APIs for managing tags on free trial links, tracking links, and Smart Links
*/
export class LinkTags extends APIResource {
/**
- * Get all existing tags that have been used on free trial links and/or tracking
- * links for this account. This is a free endpoint.
+ * Get all existing tags that have been used on free trial links, tracking links,
+ * and/or Smart Links for this account. This is a free endpoint.
*
* @example
* ```ts
@@ -73,9 +73,9 @@ export namespace LinkTagListResponse {
export interface LinkTagListParams {
/**
- * Filter by link type. If not provided, returns tags for both types.
+ * Filter by link type. If not provided, returns tags for all types.
*/
- type?: 'trial_links' | 'tracking_links';
+ type?: 'trial_links' | 'tracking_links' | 'smart_links';
}
export declare namespace LinkTags {
diff --git a/src/resources/media/index.ts b/src/resources/media/index.ts
index da4dede6..a471989a 100644
--- a/src/resources/media/index.ts
+++ b/src/resources/media/index.ts
@@ -2,7 +2,6 @@
export {
Media,
- type MediaDownloadResponse,
type MediaScrapeResponse,
type MediaUploadResponse,
type MediaDownloadParams,
diff --git a/src/resources/media/media.ts b/src/resources/media/media.ts
index 08cee5e2..6debd803 100644
--- a/src/resources/media/media.ts
+++ b/src/resources/media/media.ts
@@ -30,21 +30,22 @@ export class Media extends APIResource {
* Downloads a file directly from a `https://cdn*.onlyfans.com/*` URL. When the
* file is already cached on our CDN, this endpoint returns a `302` redirect to a
* `https://cdn.fansapi.com/*` URL. Most HTTP clients follow redirects
- * automatically (`curl` requires `-L`). Otherwise, the file is streamed through
- * our proxies and queued for caching.
+ * automatically (`curl` requires `-L`). Otherwise, the file is redirected to
+ * `dl.fansapi.com`, which streams it through the account proxy and reports billing
+ * back to the API.
*
* @example
* ```ts
- * const response = await client.media.download('cdnUrl', {
+ * await client.media.download('cdnUrl', {
* account: 'acct_XXXXXXXXXXXXXXX',
* });
* ```
*/
- download(cdnURL: string, params: MediaDownloadParams, options?: RequestOptions): APIPromise {
+ download(cdnURL: string, params: MediaDownloadParams, options?: RequestOptions): APIPromise {
const { account } = params;
return this._client.get(path`/api/${account}/media/download/${cdnURL}`, {
...options,
- headers: buildHeaders([{ Accept: 'text/plain' }, options?.headers]),
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
});
}
@@ -93,8 +94,6 @@ export class Media extends APIResource {
}
}
-export type MediaDownloadResponse = string;
-
export interface MediaScrapeResponse {
expiration_date?: string;
@@ -201,7 +200,6 @@ Media.Vault = Vault;
export declare namespace Media {
export {
- type MediaDownloadResponse as MediaDownloadResponse,
type MediaScrapeResponse as MediaScrapeResponse,
type MediaUploadResponse as MediaUploadResponse,
type MediaDownloadParams as MediaDownloadParams,
diff --git a/src/resources/media/vault/lists/lists.ts b/src/resources/media/vault/lists/lists.ts
index 2161d5cb..57026c25 100644
--- a/src/resources/media/vault/lists/lists.ts
+++ b/src/resources/media/vault/lists/lists.ts
@@ -58,12 +58,13 @@ export class Lists extends APIResource {
* ```ts
* const list = await client.media.vault.lists.update('123', {
* account: 'acct_XXXXXXXXXXXXXXX',
+ * name: 'My renamed list',
* });
* ```
*/
update(listID: string, params: ListUpdateParams, options?: RequestOptions): APIPromise {
- const { account } = params;
- return this._client.put(path`/api/${account}/media/vault/lists/${listID}`, options);
+ const { account, ...body } = params;
+ return this._client.put(path`/api/${account}/media/vault/lists/${listID}`, { body, ...options });
}
/**
@@ -462,9 +463,15 @@ export interface ListRetrieveParams {
export interface ListUpdateParams {
/**
- * The Account ID
+ * Path param: The Account ID
*/
account: string;
+
+ /**
+ * Body param: The new name for the vault list. Must not be greater than 255
+ * characters.
+ */
+ name: string;
}
export interface ListListParams {
diff --git a/src/resources/media/vault/lists/media.ts b/src/resources/media/vault/lists/media.ts
index 6f8aff53..aa4c0497 100644
--- a/src/resources/media/vault/lists/media.ts
+++ b/src/resources/media/vault/lists/media.ts
@@ -12,7 +12,7 @@ export class Media extends APIResource {
* @example
* ```ts
* const response = await client.media.vault.lists.media.add(
- * 'nihil',
+ * 'iure',
* { account: 'acct_XXXXXXXXXXXXXXX', mediaIds: ['string'] },
* );
* ```
@@ -28,7 +28,7 @@ export class Media extends APIResource {
* @example
* ```ts
* const media = await client.media.vault.lists.media.remove(
- * 'nihil',
+ * 'iure',
* { account: 'acct_XXXXXXXXXXXXXXX', mediaIds: ['string'] },
* );
* ```
diff --git a/src/resources/messages.ts b/src/resources/messages.ts
index 7793d393..458bbdfc 100644
--- a/src/resources/messages.ts
+++ b/src/resources/messages.ts
@@ -1,105 +1,5 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../core/resource';
-import { APIPromise } from '../core/api-promise';
-import { RequestOptions } from '../internal/request-options';
-import { path } from '../internal/utils/path';
-export class Messages extends APIResource {
- /**
- * Attach Tags (Release Forms) to a message that has already been sent. Please
- * note, that this is a "sync" operation - for example, if you provide empty
- * `rfTag` it will remove all existing tags already attached to the message.
- *
- * @example
- * ```ts
- * const response = await client.messages.attachTags(
- * '123456789',
- * { account: 'acct_XXXXXXXXXXXXXXX' },
- * );
- * ```
- */
- attachTags(
- messageID: string,
- params: MessageAttachTagsParams,
- options?: RequestOptions,
- ): APIPromise {
- const { account, ...body } = params;
- return this._client.post(path`/api/${account}/messages/${messageID}/attach-tags`, { body, ...options });
- }
-}
-
-export interface MessageAttachTagsResponse {
- _meta?: MessageAttachTagsResponse._Meta;
-
- data?: MessageAttachTagsResponse.Data;
-}
-
-export namespace MessageAttachTagsResponse {
- export interface _Meta {
- _cache?: _Meta._Cache;
-
- _credits?: _Meta._Credits;
-
- _rate_limits?: _Meta._RateLimits;
- }
-
- export namespace _Meta {
- export interface _Cache {
- is_cached?: boolean;
-
- note?: string;
- }
-
- export interface _Credits {
- balance?: number;
-
- note?: string;
-
- used?: number;
- }
-
- export interface _RateLimits {
- limit_day?: number;
-
- limit_minute?: number;
-
- remaining_day?: number;
-
- remaining_minute?: number;
- }
- }
-
- export interface Data {
- success?: boolean;
- }
-}
-
-export interface MessageAttachTagsParams {
- /**
- * Path param: The Account ID
- */
- account: string;
-
- /**
- * Body param: Array of OnlyFans Release Form Guest IDs to tag in your message
- */
- rfGuest?: string;
-
- /**
- * Body param: Array of OnlyFans Release Form Partners IDs to tag in your message
- */
- rfPartner?: string;
-
- /**
- * Body param: Array of OnlyFans Creator User IDs to tag in your message
- */
- rfTag?: string;
-}
-
-export declare namespace Messages {
- export {
- type MessageAttachTagsResponse as MessageAttachTagsResponse,
- type MessageAttachTagsParams as MessageAttachTagsParams,
- };
-}
+export class Messages extends APIResource {}
diff --git a/src/resources/posts/comments.ts b/src/resources/posts/comments.ts
index 1da3469e..e1526dec 100644
--- a/src/resources/posts/comments.ts
+++ b/src/resources/posts/comments.ts
@@ -12,7 +12,7 @@ export class Comments extends APIResource {
* @example
* ```ts
* const comment = await client.posts.comments.create(
- * 'impedit',
+ * 'illum',
* {
* account: 'acct_XXXXXXXXXXXXXXX',
* text: 'This is a comment.',
@@ -37,10 +37,9 @@ export class Comments extends APIResource {
*
* @example
* ```ts
- * const comments = await client.posts.comments.list(
- * 'impedit',
- * { account: 'acct_XXXXXXXXXXXXXXX' },
- * );
+ * const comments = await client.posts.comments.list('illum', {
+ * account: 'acct_XXXXXXXXXXXXXXX',
+ * });
* ```
*/
list(postID: string, params: CommentListParams, options?: RequestOptions): APIPromise {
diff --git a/src/resources/release-forms.ts b/src/resources/release-forms.ts
index 13463acf..ca0b3863 100644
--- a/src/resources/release-forms.ts
+++ b/src/resources/release-forms.ts
@@ -55,7 +55,8 @@ export class ReleaseForms extends APIResource {
/**
* Get a paginated list of users that can be tagged in release forms. These are
* verified creators who have signed release forms to appear in your content. Use
- * `offset` and `limit` for pagination.
+ * `offset` and `limit` for pagination, following `_pagination.next_page` until it
+ * is `null`.
*
* @example
* ```ts
@@ -331,11 +332,11 @@ export namespace ReleaseFormListTaggableUsersResponse {
export interface _Pagination {
next_page?: string;
+
+ notice?: string;
}
export interface Data {
- hasMore?: boolean;
-
items?: Array;
}
diff --git a/src/resources/saved-for-later/messages/settings.ts b/src/resources/saved-for-later/messages/settings.ts
index 599a9525..a9767818 100644
--- a/src/resources/saved-for-later/messages/settings.ts
+++ b/src/resources/saved-for-later/messages/settings.ts
@@ -50,7 +50,7 @@ export class Settings extends APIResource {
* const response =
* await client.savedForLater.messages.settings.enableOrUpdateAutomaticMessaging(
* 'acct_XXXXXXXXXXXXXXX',
- * { period: 12 },
+ * { period: 6 },
* );
* ```
*/
diff --git a/src/resources/saved-for-later/posts/settings.ts b/src/resources/saved-for-later/posts/settings.ts
index 2b04cbb2..41feb4c0 100644
--- a/src/resources/saved-for-later/posts/settings.ts
+++ b/src/resources/saved-for-later/posts/settings.ts
@@ -50,7 +50,7 @@ export class Settings extends APIResource {
* const response =
* await client.savedForLater.posts.settings.enableOrUpdateAutomaticPosting(
* 'acct_XXXXXXXXXXXXXXX',
- * { period: 12 },
+ * { period: 24 },
* );
* ```
*/
diff --git a/src/resources/smart-link-postbacks.ts b/src/resources/smart-link-postbacks.ts
index 82dbf90d..255e9d2d 100644
--- a/src/resources/smart-link-postbacks.ts
+++ b/src/resources/smart-link-postbacks.ts
@@ -18,7 +18,7 @@ export class SmartLinkPostbacks extends APIResource {
* await client.smartLinkPostbacks.create({
* conversion_types: ['new_subscriber', 'new_transaction'],
* smart_link_scope: 'campaign_specific',
- * url: 'https://example.com/postback?click={click_id}&type={conversion_type}&gclid={gclid}',
+ * url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}&gclid={gclid}',
* });
* ```
*/
@@ -51,7 +51,7 @@ export class SmartLinkPostbacks extends APIResource {
* await client.smartLinkPostbacks.update(123, {
* conversion_types: ['new_subscriber'],
* smart_link_scope: 'global',
- * url: 'https://example.com/postback?click={click_id}&type={conversion_type}',
+ * url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}',
* });
* ```
*/
@@ -122,10 +122,16 @@ export namespace SmartLinkPostbackCreateResponse {
export interface Data {
id?: number;
+ body?: string;
+
conversion_types?: Array;
created_at?: string;
+ headers?: Array;
+
+ http_method?: string;
+
latest_response?: string | null;
smart_link_ids?: Array;
@@ -138,6 +144,14 @@ export namespace SmartLinkPostbackCreateResponse {
url?: string;
}
+
+ export namespace Data {
+ export interface Header {
+ name?: string;
+
+ value?: string;
+ }
+ }
}
export interface SmartLinkPostbackRetrieveResponse {
@@ -172,10 +186,16 @@ export namespace SmartLinkPostbackRetrieveResponse {
export interface Data {
id?: number;
+ body?: string;
+
conversion_types?: Array;
created_at?: string;
+ headers?: Array;
+
+ http_method?: string;
+
latest_response?: string | null;
smart_link_ids?: Array;
@@ -190,6 +210,12 @@ export namespace SmartLinkPostbackRetrieveResponse {
}
export namespace Data {
+ export interface Header {
+ name?: string;
+
+ value?: string;
+ }
+
export interface SmartLink {
account_display_name?: string;
@@ -234,10 +260,16 @@ export namespace SmartLinkPostbackUpdateResponse {
export interface Data {
id?: number;
+ body?: string;
+
conversion_types?: Array;
created_at?: string;
+ headers?: Array;
+
+ http_method?: string;
+
latest_response?: string | null;
smart_link_ids?: Array;
@@ -252,6 +284,12 @@ export namespace SmartLinkPostbackUpdateResponse {
}
export namespace Data {
+ export interface Header {
+ name?: string;
+
+ value?: string;
+ }
+
export interface SmartLink {
account_display_name?: string;
@@ -296,10 +334,16 @@ export namespace SmartLinkPostbackListResponse {
export interface Data {
id?: number;
+ body?: string;
+
conversion_types?: Array;
created_at?: string;
+ headers?: Array;
+
+ http_method?: string;
+
latest_response?: Data.LatestResponse;
smart_link_ids?: Array;
@@ -314,6 +358,12 @@ export namespace SmartLinkPostbackListResponse {
}
export namespace Data {
+ export interface Header {
+ name?: string;
+
+ value?: string;
+ }
+
export interface LatestResponse {
id?: number;
@@ -359,17 +409,49 @@ export interface SmartLinkPostbackCreateParams {
smart_link_scope: 'global' | 'campaign_specific';
/**
- * The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and
- * `{ttclid}` are replaced when the postback is dispatched.
+ * The destination URL. Variables such as `{external_click_id}`, `{fbclid}`,
+ * `{gclid}`, and `{ttclid}` are replaced when the postback is dispatched.
*/
url: string;
+ /**
+ * Optional request body template for POST postbacks. Variables are replaced when
+ * the postback is dispatched.
+ */
+ body?: string;
+
+ /**
+ * Optional request headers. Header values may include postback variables.
+ */
+ headers?: Array;
+
+ /**
+ * HTTP method used for the postback request. Defaults to `GET` when omitted.
+ */
+ http_method?: 'GET' | 'POST';
+
/**
* Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`.
*/
smart_link_ids?: Array;
}
+export namespace SmartLinkPostbackCreateParams {
+ export interface Header {
+ /**
+ * This field is required when headers._.value is present. Must match
+ * the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100
+ * characters.
+ */
+ name?: string | null;
+
+ /**
+ * Must not be greater than 2000 characters.
+ */
+ value?: string | null;
+ }
+}
+
export interface SmartLinkPostbackUpdateParams {
/**
* One or more Smart Link conversion types that should trigger this postback.
@@ -386,12 +468,44 @@ export interface SmartLinkPostbackUpdateParams {
*/
url: string;
+ /**
+ * Optional request body template for POST postbacks. Variables are replaced when
+ * the postback is dispatched.
+ */
+ body?: string;
+
+ /**
+ * Optional request headers. Header values may include postback variables.
+ */
+ headers?: Array;
+
+ /**
+ * HTTP method used for the postback request. Existing value is kept when omitted.
+ */
+ http_method?: 'GET' | 'POST';
+
/**
* Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`.
*/
smart_link_ids?: Array;
}
+export namespace SmartLinkPostbackUpdateParams {
+ export interface Header {
+ /**
+ * This field is required when headers._.value is present. Must match
+ * the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100
+ * characters.
+ */
+ name?: string | null;
+
+ /**
+ * Must not be greater than 2000 characters.
+ */
+ value?: string | null;
+ }
+}
+
export declare namespace SmartLinkPostbacks {
export {
type SmartLinkPostbackCreateResponse as SmartLinkPostbackCreateResponse,
diff --git a/src/resources/smart-links.ts b/src/resources/smart-links.ts
index 5d729c2f..977596e7 100644
--- a/src/resources/smart-links.ts
+++ b/src/resources/smart-links.ts
@@ -76,7 +76,7 @@ export class SmartLinks extends APIResource {
* @example
* ```ts
* const response = await client.smartLinks.listClicks(
- * 'rerum',
+ * 'tenetur',
* );
* ```
*/
@@ -95,7 +95,7 @@ export class SmartLinks extends APIResource {
* @example
* ```ts
* const response = await client.smartLinks.listConversions(
- * 'facilis',
+ * 'alias',
* );
* ```
*/
@@ -113,9 +113,7 @@ export class SmartLinks extends APIResource {
*
* @example
* ```ts
- * const response = await client.smartLinks.listFans(
- * 'ducimus',
- * );
+ * const response = await client.smartLinks.listFans('earum');
* ```
*/
listFans(
@@ -132,7 +130,7 @@ export class SmartLinks extends APIResource {
* @example
* ```ts
* const response = await client.smartLinks.listSpenders(
- * 'nam',
+ * 'rerum',
* );
* ```
*/
@@ -149,7 +147,7 @@ export class SmartLinks extends APIResource {
*
* @example
* ```ts
- * await client.smartLinks.retrieveCohortArps('eaque');
+ * await client.smartLinks.retrieveCohortArps('voluptas');
* ```
*/
retrieveCohortArps(
@@ -171,7 +169,7 @@ export class SmartLinks extends APIResource {
* @example
* ```ts
* const response = await client.smartLinks.retrieveStats(
- * 'impedit',
+ * 'ad',
* );
* ```
*/
@@ -853,7 +851,11 @@ export namespace SmartLinkListFansResponse {
offset?: number;
+ previously_subscribed?: string | null;
+
sort?: string;
+
+ subscribed_using_promo?: string | null;
}
export interface Row {
@@ -877,11 +879,41 @@ export namespace SmartLinkListFansResponse {
revenue_net?: number;
+ subscription_insights?: Row.SubscriptionInsights;
+
tips_net?: number;
username?: string;
}
+ export namespace Row {
+ export interface SubscriptionInsights {
+ current_subscription?: SubscriptionInsights.CurrentSubscription;
+
+ current_subscription_from_smart_link?: boolean;
+
+ has_subscription_data?: boolean;
+
+ previously_subscribed?: boolean;
+
+ subscribed_using_promo?: boolean;
+ }
+
+ export namespace SubscriptionInsights {
+ export interface CurrentSubscription {
+ action?: string;
+
+ is_free?: boolean;
+
+ price?: number;
+
+ regular_price?: number;
+
+ type?: string;
+ }
+ }
+ }
+
export interface Summary {
fans_total?: number;
@@ -1043,6 +1075,8 @@ export interface SmartLinkListParams {
*/
account_ids?: string | null;
+ filter?: SmartLinkListParams.Filter;
+
/**
* The number of Smart Links to return. Default `50`. Must be at least 1. Must not
* be greater than 1000.
@@ -1050,7 +1084,7 @@ export interface SmartLinkListParams {
limit?: number;
/**
- * Comma-separated Meta Pixel IDs to include.
+ * Deprecated alias for `pixel_ids`. Comma-separated Pixel IDs to include.
*/
meta_pixel_ids?: string | null;
@@ -1063,6 +1097,20 @@ export interface SmartLinkListParams {
* The offset used for pagination. Default `0`. Must be at least 0.
*/
offset?: number;
+
+ /**
+ * Comma-separated ad platform Pixel IDs to include.
+ */
+ pixel_ids?: string | null;
+}
+
+export namespace SmartLinkListParams {
+ export interface Filter {
+ /**
+ * Must not be greater than 50 characters.
+ */
+ tags?: Array;
+ }
}
export interface SmartLinkListClicksParams {
@@ -1170,6 +1218,12 @@ export interface SmartLinkListFansParams {
*/
offset?: number;
+ /**
+ * Optional - Filter to returning subscribers (fans previously subscribed before
+ * this subscription)
+ */
+ previously_subscribed?: boolean;
+
/**
* Optional sort field. Default `-revenue_net`
*/
@@ -1182,6 +1236,11 @@ export interface SmartLinkListFansParams {
| '-messages_sent_by_fan'
| 'converted_at'
| '-converted_at';
+
+ /**
+ * Optional - Filter to fans who subscribed via a promotion/offer
+ */
+ subscribed_using_promo?: boolean;
}
export interface SmartLinkListSpendersParams {
diff --git a/src/resources/stories/highlights.ts b/src/resources/stories/highlights.ts
index a61cc3b3..62984c5e 100644
--- a/src/resources/stories/highlights.ts
+++ b/src/resources/stories/highlights.ts
@@ -121,7 +121,7 @@ export class Highlights extends APIResource {
* @example
* ```ts
* const response = await client.stories.highlights.addStory(
- * 'maxime',
+ * 'eos',
* {
* account: 'acct_XXXXXXXXXXXXXXX',
* highlight_id: 1234567890,
@@ -148,7 +148,7 @@ export class Highlights extends APIResource {
* @example
* ```ts
* const response =
- * await client.stories.highlights.removeStory('maxime', {
+ * await client.stories.highlights.removeStory('eos', {
* account: 'acct_XXXXXXXXXXXXXXX',
* highlight_id: 1234567890,
* });
diff --git a/src/resources/tracking-links/tracking-links.ts b/src/resources/tracking-links/tracking-links.ts
index d9224e62..0cc3a623 100644
--- a/src/resources/tracking-links/tracking-links.ts
+++ b/src/resources/tracking-links/tracking-links.ts
@@ -47,7 +47,7 @@ export class TrackingLinks extends APIResource {
* @example
* ```ts
* const trackingLink = await client.trackingLinks.retrieve(
- * 'et',
+ * 'est',
* { account: 'acct_XXXXXXXXXXXXXXX' },
* );
* ```
@@ -85,7 +85,7 @@ export class TrackingLinks extends APIResource {
* @example
* ```ts
* const trackingLink = await client.trackingLinks.delete(
- * 'et',
+ * 'est',
* { account: 'acct_XXXXXXXXXXXXXXX' },
* );
* ```
@@ -104,7 +104,7 @@ export class TrackingLinks extends APIResource {
*
* @example
* ```ts
- * await client.trackingLinks.getCohortArps('et', {
+ * await client.trackingLinks.getCohortArps('temporibus', {
* account: 'acct_XXXXXXXXXXXXXXX',
* });
* ```
@@ -134,7 +134,7 @@ export class TrackingLinks extends APIResource {
* @example
* ```ts
* const response = await client.trackingLinks.getStats(
- * 'voluptatem',
+ * 'quidem',
* { account: 'acct_XXXXXXXXXXXXXXX' },
* );
* ```
diff --git a/src/resources/trial-links/trial-links.ts b/src/resources/trial-links/trial-links.ts
index a13402e7..da3db2a5 100644
--- a/src/resources/trial-links/trial-links.ts
+++ b/src/resources/trial-links/trial-links.ts
@@ -50,10 +50,9 @@ export class TrialLinks extends APIResource {
*
* @example
* ```ts
- * const trialLink = await client.trialLinks.retrieve(
- * 'officia',
- * { account: 'acct_XXXXXXXXXXXXXXX' },
- * );
+ * const trialLink = await client.trialLinks.retrieve('qui', {
+ * account: 'acct_XXXXXXXXXXXXXXX',
+ * });
* ```
*/
retrieve(
@@ -89,10 +88,9 @@ export class TrialLinks extends APIResource {
*
* @example
* ```ts
- * const trialLink = await client.trialLinks.delete(
- * 'officia',
- * { account: 'acct_XXXXXXXXXXXXXXX' },
- * );
+ * const trialLink = await client.trialLinks.delete('qui', {
+ * account: 'acct_XXXXXXXXXXXXXXX',
+ * });
* ```
*/
delete(
@@ -130,7 +128,7 @@ export class TrialLinks extends APIResource {
* @example
* ```ts
* const response = await client.trialLinks.listSubscribers(
- * 'eum',
+ * 'nihil',
* {
* account: 'acct_XXXXXXXXXXXXXXX',
* limit: 10,
@@ -156,7 +154,7 @@ export class TrialLinks extends APIResource {
*
* @example
* ```ts
- * await client.trialLinks.retrieveCohortArps('eius', {
+ * await client.trialLinks.retrieveCohortArps('atque', {
* account: 'acct_XXXXXXXXXXXXXXX',
* });
* ```
@@ -181,7 +179,7 @@ export class TrialLinks extends APIResource {
* @example
* ```ts
* const response = await client.trialLinks.retrieveStats(
- * 'aut',
+ * 'voluptatibus',
* { account: 'acct_XXXXXXXXXXXXXXX' },
* );
* ```
diff --git a/src/resources/user-lists/user-lists.ts b/src/resources/user-lists/user-lists.ts
index f96c64b6..2feb2e70 100644
--- a/src/resources/user-lists/user-lists.ts
+++ b/src/resources/user-lists/user-lists.ts
@@ -31,7 +31,7 @@ export class UserLists extends APIResource {
* ```ts
* const userList = await client.userLists.create(
* 'acct_XXXXXXXXXXXXXXX',
- * { name: 'sdqtzwslsvoxbkxj' },
+ * { name: 'masdmhkug' },
* );
* ```
*/
diff --git a/src/version.ts b/src/version.ts
index bade2ffc..88f4d403 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.2.0'; // x-release-please-version
+export const VERSION = '0.3.0'; // x-release-please-version
diff --git a/tests/api-resources/accounts.test.ts b/tests/api-resources/accounts.test.ts
index 1e3be330..cc97b828 100644
--- a/tests/api-resources/accounts.test.ts
+++ b/tests/api-resources/accounts.test.ts
@@ -37,7 +37,7 @@ describe('resource accounts', () => {
// Mock server tests are disabled
test.skip('disconnect', async () => {
- const responsePromise = client.accounts.disconnect('nobis');
+ const responsePromise = client.accounts.disconnect('ratione');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
diff --git a/tests/api-resources/authenticate.test.ts b/tests/api-resources/authenticate.test.ts
index a62f86a9..4c74103b 100644
--- a/tests/api-resources/authenticate.test.ts
+++ b/tests/api-resources/authenticate.test.ts
@@ -62,22 +62,22 @@ describe('resource authenticate', () => {
await expect(
client.authenticate.start(
{
- auth_id: 'accusamus',
- auth_type: 'email_password',
- cookies: 'unde',
+ auth_id: 'quis',
+ auth_type: 'mobile_app',
+ cookies: 'et',
customProxy: {
host: 'proxy.example.com',
- password: '}b2XD-AinlA~Cg9=',
+ password: 'Qyz]@%i*',
port: 8080,
- username: 'et',
+ username: 'possimus',
},
- email: 'ismael91@example.com',
- force_connect: false,
- name: 'molestiae',
- password: 'iRPp(K"M[C1Qv,f',
- proxyCountry: 'us',
- user_agent: 'velit',
- xbc: 'suscipit',
+ email: 'leslie.bechtelar@example.org',
+ force_connect: true,
+ name: 'id',
+ password: "r|QC&G$'g5",
+ proxyCountry: 'uk',
+ user_agent: 'molestiae',
+ xbc: 'voluptatem',
},
{ path: '/_stainless_unknown_path' },
),
diff --git a/tests/api-resources/client-sessions.test.ts b/tests/api-resources/client-sessions.test.ts
index 229de463..9c8f1bea 100644
--- a/tests/api-resources/client-sessions.test.ts
+++ b/tests/api-resources/client-sessions.test.ts
@@ -27,7 +27,7 @@ describe('resource clientSessions', () => {
const response = await client.clientSessions.create({
display_name: 'STRLCxGLVC Agency / Model: Stella',
client_reference_id: 'my_crm_model_12345',
- proxy_country: 'uk',
+ proxy_country: 'gb',
});
});
});
diff --git a/tests/api-resources/engagement/messages/messages.test.ts b/tests/api-resources/engagement/messages/messages.test.ts
index 32dab22b..9699c17b 100644
--- a/tests/api-resources/engagement/messages/messages.test.ts
+++ b/tests/api-resources/engagement/messages/messages.test.ts
@@ -10,7 +10,7 @@ const client = new OnlyFansAPI({
describe('resource messages', () => {
// Mock server tests are disabled
test.skip('getMessageBuyers: only required params', async () => {
- const responsePromise = client.engagement.messages.getMessageBuyers('et', {
+ const responsePromise = client.engagement.messages.getMessageBuyers('odio', {
account: 'acct_XXXXXXXXXXXXXXX',
});
const rawResponse = await responsePromise.asResponse();
@@ -24,7 +24,7 @@ describe('resource messages', () => {
// Mock server tests are disabled
test.skip('getMessageBuyers: required and optional params', async () => {
- const response = await client.engagement.messages.getMessageBuyers('et', {
+ const response = await client.engagement.messages.getMessageBuyers('odio', {
account: 'acct_XXXXXXXXXXXXXXX',
limit: 10,
marker: 0,
diff --git a/tests/api-resources/media/vault/lists/lists.test.ts b/tests/api-resources/media/vault/lists/lists.test.ts
index e3f6929f..5731d552 100644
--- a/tests/api-resources/media/vault/lists/lists.test.ts
+++ b/tests/api-resources/media/vault/lists/lists.test.ts
@@ -44,7 +44,10 @@ describe('resource lists', () => {
// Mock server tests are disabled
test.skip('update: only required params', async () => {
- const responsePromise = client.media.vault.lists.update('123', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.media.vault.lists.update('123', {
+ account: 'acct_XXXXXXXXXXXXXXX',
+ name: 'My renamed list',
+ });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -56,7 +59,10 @@ describe('resource lists', () => {
// Mock server tests are disabled
test.skip('update: required and optional params', async () => {
- const response = await client.media.vault.lists.update('123', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const response = await client.media.vault.lists.update('123', {
+ account: 'acct_XXXXXXXXXXXXXXX',
+ name: 'My renamed list',
+ });
});
// Mock server tests are disabled
diff --git a/tests/api-resources/media/vault/lists/media.test.ts b/tests/api-resources/media/vault/lists/media.test.ts
index 0195dda8..fad0158b 100644
--- a/tests/api-resources/media/vault/lists/media.test.ts
+++ b/tests/api-resources/media/vault/lists/media.test.ts
@@ -10,7 +10,7 @@ const client = new OnlyFansAPI({
describe('resource media', () => {
// Mock server tests are disabled
test.skip('add: only required params', async () => {
- const responsePromise = client.media.vault.lists.media.add('nihil', {
+ const responsePromise = client.media.vault.lists.media.add('iure', {
account: 'acct_XXXXXXXXXXXXXXX',
mediaIds: ['string'],
});
@@ -25,7 +25,7 @@ describe('resource media', () => {
// Mock server tests are disabled
test.skip('add: required and optional params', async () => {
- const response = await client.media.vault.lists.media.add('nihil', {
+ const response = await client.media.vault.lists.media.add('iure', {
account: 'acct_XXXXXXXXXXXXXXX',
mediaIds: ['string'],
});
@@ -33,7 +33,7 @@ describe('resource media', () => {
// Mock server tests are disabled
test.skip('remove: only required params', async () => {
- const responsePromise = client.media.vault.lists.media.remove('nihil', {
+ const responsePromise = client.media.vault.lists.media.remove('iure', {
account: 'acct_XXXXXXXXXXXXXXX',
mediaIds: ['string'],
});
@@ -48,7 +48,7 @@ describe('resource media', () => {
// Mock server tests are disabled
test.skip('remove: required and optional params', async () => {
- const response = await client.media.vault.lists.media.remove('nihil', {
+ const response = await client.media.vault.lists.media.remove('iure', {
account: 'acct_XXXXXXXXXXXXXXX',
mediaIds: ['string'],
});
diff --git a/tests/api-resources/messages.test.ts b/tests/api-resources/messages.test.ts
deleted file mode 100644
index 448c31ad..00000000
--- a/tests/api-resources/messages.test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import OnlyFansAPI from '@onlyfansapi/onlyfans-sdk';
-
-const client = new OnlyFansAPI({
- apiKey: 'My API Key',
- baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010',
-});
-
-describe('resource messages', () => {
- // Mock server tests are disabled
- test.skip('attachTags: only required params', async () => {
- const responsePromise = client.messages.attachTags('123456789', { account: 'acct_XXXXXXXXXXXXXXX' });
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- // Mock server tests are disabled
- test.skip('attachTags: required and optional params', async () => {
- const response = await client.messages.attachTags('123456789', {
- account: 'acct_XXXXXXXXXXXXXXX',
- rfGuest: 'rfGuest',
- rfPartner: 'rfPartner',
- rfTag: 'rfTag',
- });
- });
-});
diff --git a/tests/api-resources/posts/comments.test.ts b/tests/api-resources/posts/comments.test.ts
index bf709685..c58dd531 100644
--- a/tests/api-resources/posts/comments.test.ts
+++ b/tests/api-resources/posts/comments.test.ts
@@ -10,7 +10,7 @@ const client = new OnlyFansAPI({
describe('resource comments', () => {
// Mock server tests are disabled
test.skip('create: only required params', async () => {
- const responsePromise = client.posts.comments.create('impedit', {
+ const responsePromise = client.posts.comments.create('illum', {
account: 'acct_XXXXXXXXXXXXXXX',
text: 'This is a comment.',
});
@@ -25,7 +25,7 @@ describe('resource comments', () => {
// Mock server tests are disabled
test.skip('create: required and optional params', async () => {
- const response = await client.posts.comments.create('impedit', {
+ const response = await client.posts.comments.create('illum', {
account: 'acct_XXXXXXXXXXXXXXX',
text: 'This is a comment.',
answerTo: 123,
@@ -35,7 +35,7 @@ describe('resource comments', () => {
// Mock server tests are disabled
test.skip('list: only required params', async () => {
- const responsePromise = client.posts.comments.list('impedit', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.posts.comments.list('illum', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -47,7 +47,7 @@ describe('resource comments', () => {
// Mock server tests are disabled
test.skip('list: required and optional params', async () => {
- const response = await client.posts.comments.list('impedit', {
+ const response = await client.posts.comments.list('illum', {
account: 'acct_XXXXXXXXXXXXXXX',
limit: 10,
offset: 0,
diff --git a/tests/api-resources/saved-for-later/messages/settings.test.ts b/tests/api-resources/saved-for-later/messages/settings.test.ts
index 8e5b0566..4ec8acc7 100644
--- a/tests/api-resources/saved-for-later/messages/settings.test.ts
+++ b/tests/api-resources/saved-for-later/messages/settings.test.ts
@@ -37,7 +37,7 @@ describe('resource settings', () => {
test.skip('enableOrUpdateAutomaticMessaging: only required params', async () => {
const responsePromise = client.savedForLater.messages.settings.enableOrUpdateAutomaticMessaging(
'acct_XXXXXXXXXXXXXXX',
- { period: 12 },
+ { period: 6 },
);
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
@@ -52,7 +52,7 @@ describe('resource settings', () => {
test.skip('enableOrUpdateAutomaticMessaging: required and optional params', async () => {
const response = await client.savedForLater.messages.settings.enableOrUpdateAutomaticMessaging(
'acct_XXXXXXXXXXXXXXX',
- { period: 12 },
+ { period: 6 },
);
});
});
diff --git a/tests/api-resources/saved-for-later/posts/settings.test.ts b/tests/api-resources/saved-for-later/posts/settings.test.ts
index 96d399de..c1510622 100644
--- a/tests/api-resources/saved-for-later/posts/settings.test.ts
+++ b/tests/api-resources/saved-for-later/posts/settings.test.ts
@@ -37,7 +37,7 @@ describe('resource settings', () => {
test.skip('enableOrUpdateAutomaticPosting: only required params', async () => {
const responsePromise = client.savedForLater.posts.settings.enableOrUpdateAutomaticPosting(
'acct_XXXXXXXXXXXXXXX',
- { period: 12 },
+ { period: 24 },
);
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
@@ -52,7 +52,7 @@ describe('resource settings', () => {
test.skip('enableOrUpdateAutomaticPosting: required and optional params', async () => {
const response = await client.savedForLater.posts.settings.enableOrUpdateAutomaticPosting(
'acct_XXXXXXXXXXXXXXX',
- { period: 12 },
+ { period: 24 },
);
});
});
diff --git a/tests/api-resources/settings/welcome-message.test.ts b/tests/api-resources/settings/welcome-message.test.ts
index d13ad1ce..6b1dc2fd 100644
--- a/tests/api-resources/settings/welcome-message.test.ts
+++ b/tests/api-resources/settings/welcome-message.test.ts
@@ -39,7 +39,7 @@ describe('resource welcomeMessage', () => {
client.settings.welcomeMessage.update(
'acct_XXXXXXXXXXXXXXX',
{
- isForward: true,
+ isForward: false,
lockedText: false,
mediaFiles: ['ofapi_media_abc123', 1234567890],
previews: ['ofapi_media_abc123', 1234567890],
diff --git a/tests/api-resources/smart-link-postbacks.test.ts b/tests/api-resources/smart-link-postbacks.test.ts
index 9aec6406..09984bfe 100644
--- a/tests/api-resources/smart-link-postbacks.test.ts
+++ b/tests/api-resources/smart-link-postbacks.test.ts
@@ -13,7 +13,7 @@ describe('resource smartLinkPostbacks', () => {
const responsePromise = client.smartLinkPostbacks.create({
conversion_types: ['new_subscriber', 'new_transaction'],
smart_link_scope: 'campaign_specific',
- url: 'https://example.com/postback?click={click_id}&type={conversion_type}&gclid={gclid}',
+ url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}&gclid={gclid}',
});
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
@@ -29,7 +29,10 @@ describe('resource smartLinkPostbacks', () => {
const response = await client.smartLinkPostbacks.create({
conversion_types: ['new_subscriber', 'new_transaction'],
smart_link_scope: 'campaign_specific',
- url: 'https://example.com/postback?click={click_id}&type={conversion_type}&gclid={gclid}',
+ url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}&gclid={gclid}',
+ body: '{"click_id":"{click_id}","value":"{amount_gross}"}',
+ headers: [{ name: 'Authorization', value: 'Bearer token' }],
+ http_method: 'POST',
smart_link_ids: ['01JTESTLINK000000000000001'],
});
});
@@ -51,7 +54,7 @@ describe('resource smartLinkPostbacks', () => {
const responsePromise = client.smartLinkPostbacks.update(123, {
conversion_types: ['new_subscriber'],
smart_link_scope: 'global',
- url: 'https://example.com/postback?click={click_id}&type={conversion_type}',
+ url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}',
});
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
@@ -67,7 +70,10 @@ describe('resource smartLinkPostbacks', () => {
const response = await client.smartLinkPostbacks.update(123, {
conversion_types: ['new_subscriber'],
smart_link_scope: 'global',
- url: 'https://example.com/postback?click={click_id}&type={conversion_type}',
+ url: 'https://example.com/postback?click={external_click_id}&type={conversion_type}',
+ body: '{"click_id":"{click_id}","value":"{amount_gross}"}',
+ headers: [{ name: 'Authorization', value: 'Bearer token' }],
+ http_method: 'POST',
smart_link_ids: ['01JTESTLINK000000000000001'],
});
});
diff --git a/tests/api-resources/smart-links.test.ts b/tests/api-resources/smart-links.test.ts
index 5f67b788..ef894cbb 100644
--- a/tests/api-resources/smart-links.test.ts
+++ b/tests/api-resources/smart-links.test.ts
@@ -65,10 +65,12 @@ describe('resource smartLinks', () => {
client.smartLinks.list(
{
account_ids: 'acct_abc123,acct_def456',
+ filter: { tags: ['dw'] },
limit: 50,
meta_pixel_ids: '1,2',
name: 'Instagram',
offset: 0,
+ pixel_ids: '1,2',
},
{ path: '/_stainless_unknown_path' },
),
@@ -89,7 +91,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('listClicks', async () => {
- const responsePromise = client.smartLinks.listClicks('rerum');
+ const responsePromise = client.smartLinks.listClicks('tenetur');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -104,7 +106,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.listClicks(
- 'rerum',
+ 'tenetur',
{
date_end: '2026-01-07T23:59:59Z',
date_start: '2026-01-01T00:00:00Z',
@@ -120,7 +122,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('listConversions', async () => {
- const responsePromise = client.smartLinks.listConversions('facilis');
+ const responsePromise = client.smartLinks.listConversions('alias');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -135,7 +137,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.listConversions(
- 'facilis',
+ 'alias',
{
conversion_type: 'new_transaction',
date_end: '2026-01-07T23:59:59Z',
@@ -153,7 +155,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('listFans', async () => {
- const responsePromise = client.smartLinks.listFans('ducimus');
+ const responsePromise = client.smartLinks.listFans('earum');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -168,7 +170,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.listFans(
- 'ducimus',
+ 'earum',
{
has_messages: true,
limit: 100,
@@ -176,7 +178,9 @@ describe('resource smartLinks', () => {
min_revenue_net: 25,
min_tips_net: 10,
offset: 0,
+ previously_subscribed: true,
sort: '-revenue_net',
+ subscribed_using_promo: true,
},
{ path: '/_stainless_unknown_path' },
),
@@ -185,7 +189,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('listSpenders', async () => {
- const responsePromise = client.smartLinks.listSpenders('nam');
+ const responsePromise = client.smartLinks.listSpenders('rerum');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -200,7 +204,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.listSpenders(
- 'nam',
+ 'rerum',
{
limit: 50,
minSpend: 1,
@@ -213,7 +217,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('retrieveCohortArps', async () => {
- const responsePromise = client.smartLinks.retrieveCohortArps('eaque');
+ const responsePromise = client.smartLinks.retrieveCohortArps('voluptas');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -228,7 +232,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.retrieveCohortArps(
- 'eaque',
+ 'voluptas',
{
acquisition_end: '2026-01-31T23:59:59Z',
acquisition_start: '2026-01-01T00:00:00Z',
@@ -241,7 +245,7 @@ describe('resource smartLinks', () => {
// Mock server tests are disabled
test.skip('retrieveStats', async () => {
- const responsePromise = client.smartLinks.retrieveStats('impedit');
+ const responsePromise = client.smartLinks.retrieveStats('ad');
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -256,7 +260,7 @@ describe('resource smartLinks', () => {
// ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
await expect(
client.smartLinks.retrieveStats(
- 'impedit',
+ 'ad',
{ date_end: '2026-01-31T23:59:59Z', date_start: '2026-01-01T00:00:00Z' },
{ path: '/_stainless_unknown_path' },
),
diff --git a/tests/api-resources/stored.test.ts b/tests/api-resources/stored.test.ts
index 801e916b..a8d0097b 100644
--- a/tests/api-resources/stored.test.ts
+++ b/tests/api-resources/stored.test.ts
@@ -27,7 +27,7 @@ describe('resource stored', () => {
client.stored.listSharedTrackingLinks(
'acct_XXXXXXXXXXXXXXX',
{
- filter: { search: 'wjdlvaxlyadlqrwqppqxf', tags: ['eoekj'] },
+ filter: { search: 'pbfojbqujwt', tags: ['njflnpevoi'] },
limit: 10,
offset: 0,
},
@@ -55,7 +55,7 @@ describe('resource stored', () => {
client.stored.listSharedTrialLinks(
'acct_XXXXXXXXXXXXXXX',
{
- filter: { search: 'zeynkehufhzqvcaqjxnwtpibh', tags: ['vyjau'] },
+ filter: { search: 'an', tags: ['adgultzysfwajyujyajvtgr'] },
limit: 10,
offset: 0,
},
@@ -85,8 +85,8 @@ describe('resource stored', () => {
{
filter: {
include_smart_links: true,
- search: 'ycluqgbgiibws',
- tags: ['eisqsclddcipdx'],
+ search: 'hdawtfhcegirnvzcpmzipkk',
+ tags: ['xrfgvkoztdwfztpnuwgiry'],
},
limit: 10,
offset: 0,
@@ -117,8 +117,8 @@ describe('resource stored', () => {
{
filter: {
include_smart_links: true,
- search: 'dharcxleeeimxrrewpni',
- tags: ['kwqzrpj'],
+ search: 'fkcvfvpjxcsmpngjvszcn',
+ tags: ['pjyfddvbu'],
},
limit: 10,
offset: 0,
diff --git a/tests/api-resources/stories/highlights.test.ts b/tests/api-resources/stories/highlights.test.ts
index 86025987..303341f0 100644
--- a/tests/api-resources/stories/highlights.test.ts
+++ b/tests/api-resources/stories/highlights.test.ts
@@ -124,7 +124,7 @@ describe('resource highlights', () => {
// Mock server tests are disabled
test.skip('addStory: only required params', async () => {
- const responsePromise = client.stories.highlights.addStory('maxime', {
+ const responsePromise = client.stories.highlights.addStory('eos', {
account: 'acct_XXXXXXXXXXXXXXX',
highlight_id: 1234567890,
story_id: 2345678901,
@@ -140,7 +140,7 @@ describe('resource highlights', () => {
// Mock server tests are disabled
test.skip('addStory: required and optional params', async () => {
- const response = await client.stories.highlights.addStory('maxime', {
+ const response = await client.stories.highlights.addStory('eos', {
account: 'acct_XXXXXXXXXXXXXXX',
highlight_id: 1234567890,
story_id: 2345678901,
@@ -149,7 +149,7 @@ describe('resource highlights', () => {
// Mock server tests are disabled
test.skip('removeStory: only required params', async () => {
- const responsePromise = client.stories.highlights.removeStory('maxime', {
+ const responsePromise = client.stories.highlights.removeStory('eos', {
account: 'acct_XXXXXXXXXXXXXXX',
highlight_id: 1234567890,
});
@@ -164,7 +164,7 @@ describe('resource highlights', () => {
// Mock server tests are disabled
test.skip('removeStory: required and optional params', async () => {
- const response = await client.stories.highlights.removeStory('maxime', {
+ const response = await client.stories.highlights.removeStory('eos', {
account: 'acct_XXXXXXXXXXXXXXX',
highlight_id: 1234567890,
});
diff --git a/tests/api-resources/tracking-links/tracking-links.test.ts b/tests/api-resources/tracking-links/tracking-links.test.ts
index 3ad1eccd..37ae78ba 100644
--- a/tests/api-resources/tracking-links/tracking-links.test.ts
+++ b/tests/api-resources/tracking-links/tracking-links.test.ts
@@ -30,7 +30,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('retrieve: only required params', async () => {
- const responsePromise = client.trackingLinks.retrieve('et', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trackingLinks.retrieve('est', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -42,7 +42,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('retrieve: required and optional params', async () => {
- const response = await client.trackingLinks.retrieve('et', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const response = await client.trackingLinks.retrieve('est', { account: 'acct_XXXXXXXXXXXXXXX' });
});
// Mock server tests are disabled
@@ -80,7 +80,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('delete: only required params', async () => {
- const responsePromise = client.trackingLinks.delete('et', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trackingLinks.delete('est', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -92,12 +92,14 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('delete: required and optional params', async () => {
- const response = await client.trackingLinks.delete('et', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const response = await client.trackingLinks.delete('est', { account: 'acct_XXXXXXXXXXXXXXX' });
});
// Mock server tests are disabled
test.skip('getCohortArps: only required params', async () => {
- const responsePromise = client.trackingLinks.getCohortArps('et', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trackingLinks.getCohortArps('temporibus', {
+ account: 'acct_XXXXXXXXXXXXXXX',
+ });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -109,7 +111,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('getCohortArps: required and optional params', async () => {
- const response = await client.trackingLinks.getCohortArps('et', {
+ const response = await client.trackingLinks.getCohortArps('temporibus', {
account: 'acct_XXXXXXXXXXXXXXX',
acquisition_end: '2026-01-31T23:59:59Z',
acquisition_start: '2026-01-01T00:00:00Z',
@@ -119,7 +121,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('getStats: only required params', async () => {
- const responsePromise = client.trackingLinks.getStats('voluptatem', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trackingLinks.getStats('quidem', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -131,7 +133,7 @@ describe('resource trackingLinks', () => {
// Mock server tests are disabled
test.skip('getStats: required and optional params', async () => {
- const response = await client.trackingLinks.getStats('voluptatem', {
+ const response = await client.trackingLinks.getStats('quidem', {
account: 'acct_XXXXXXXXXXXXXXX',
date_end: '2026-01-31T23:59:59Z',
date_start: '2026-01-01T00:00:00Z',
diff --git a/tests/api-resources/trial-links/trial-links.test.ts b/tests/api-resources/trial-links/trial-links.test.ts
index e273b87d..c0885fc6 100644
--- a/tests/api-resources/trial-links/trial-links.test.ts
+++ b/tests/api-resources/trial-links/trial-links.test.ts
@@ -37,7 +37,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieve: only required params', async () => {
- const responsePromise = client.trialLinks.retrieve('officia', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trialLinks.retrieve('qui', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -49,7 +49,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieve: required and optional params', async () => {
- const response = await client.trialLinks.retrieve('officia', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const response = await client.trialLinks.retrieve('qui', { account: 'acct_XXXXXXXXXXXXXXX' });
});
// Mock server tests are disabled
@@ -77,7 +77,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('delete: only required params', async () => {
- const responsePromise = client.trialLinks.delete('officia', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trialLinks.delete('qui', { account: 'acct_XXXXXXXXXXXXXXX' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -89,7 +89,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('delete: required and optional params', async () => {
- const response = await client.trialLinks.delete('officia', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const response = await client.trialLinks.delete('qui', { account: 'acct_XXXXXXXXXXXXXXX' });
});
// Mock server tests are disabled
@@ -118,7 +118,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('listSubscribers: only required params', async () => {
- const responsePromise = client.trialLinks.listSubscribers('eum', {
+ const responsePromise = client.trialLinks.listSubscribers('nihil', {
account: 'acct_XXXXXXXXXXXXXXX',
limit: 10,
offset: 0,
@@ -134,7 +134,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('listSubscribers: required and optional params', async () => {
- const response = await client.trialLinks.listSubscribers('eum', {
+ const response = await client.trialLinks.listSubscribers('nihil', {
account: 'acct_XXXXXXXXXXXXXXX',
limit: 10,
offset: 0,
@@ -143,7 +143,9 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieveCohortArps: only required params', async () => {
- const responsePromise = client.trialLinks.retrieveCohortArps('eius', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trialLinks.retrieveCohortArps('atque', {
+ account: 'acct_XXXXXXXXXXXXXXX',
+ });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -155,7 +157,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieveCohortArps: required and optional params', async () => {
- const response = await client.trialLinks.retrieveCohortArps('eius', {
+ const response = await client.trialLinks.retrieveCohortArps('atque', {
account: 'acct_XXXXXXXXXXXXXXX',
acquisition_end: '2026-01-31T23:59:59Z',
acquisition_start: '2026-01-01T00:00:00Z',
@@ -165,7 +167,9 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieveStats: only required params', async () => {
- const responsePromise = client.trialLinks.retrieveStats('aut', { account: 'acct_XXXXXXXXXXXXXXX' });
+ const responsePromise = client.trialLinks.retrieveStats('voluptatibus', {
+ account: 'acct_XXXXXXXXXXXXXXX',
+ });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -177,7 +181,7 @@ describe('resource trialLinks', () => {
// Mock server tests are disabled
test.skip('retrieveStats: required and optional params', async () => {
- const response = await client.trialLinks.retrieveStats('aut', {
+ const response = await client.trialLinks.retrieveStats('voluptatibus', {
account: 'acct_XXXXXXXXXXXXXXX',
date_end: '2026-01-31T23:59:59Z',
date_start: '2026-01-01T00:00:00Z',
diff --git a/tests/api-resources/user-lists/user-lists.test.ts b/tests/api-resources/user-lists/user-lists.test.ts
index c1e9d27d..9f200aa3 100644
--- a/tests/api-resources/user-lists/user-lists.test.ts
+++ b/tests/api-resources/user-lists/user-lists.test.ts
@@ -10,7 +10,7 @@ const client = new OnlyFansAPI({
describe('resource userLists', () => {
// Mock server tests are disabled
test.skip('create: only required params', async () => {
- const responsePromise = client.userLists.create('acct_XXXXXXXXXXXXXXX', { name: 'sdqtzwslsvoxbkxj' });
+ const responsePromise = client.userLists.create('acct_XXXXXXXXXXXXXXX', { name: 'masdmhkug' });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -22,7 +22,7 @@ describe('resource userLists', () => {
// Mock server tests are disabled
test.skip('create: required and optional params', async () => {
- const response = await client.userLists.create('acct_XXXXXXXXXXXXXXX', { name: 'sdqtzwslsvoxbkxj' });
+ const response = await client.userLists.create('acct_XXXXXXXXXXXXXXX', { name: 'masdmhkug' });
});
// Mock server tests are disabled