captapi 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- captapi/__init__.py +21 -0
- captapi/_generated.py +3164 -0
- captapi/_transport.py +99 -0
- captapi-0.1.0.dist-info/METADATA +0 -0
- captapi-0.1.0.dist-info/RECORD +6 -0
- captapi-0.1.0.dist-info/WHEEL +4 -0
captapi/_generated.py
ADDED
|
@@ -0,0 +1,3164 @@
|
|
|
1
|
+
# AUTO-GENERATED by scripts/gen-sdk.mts -- do not edit by hand.
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from ._transport import AsyncTransport, SyncTransport
|
|
7
|
+
|
|
8
|
+
class YoutubeApi:
|
|
9
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
10
|
+
self._t = transport
|
|
11
|
+
|
|
12
|
+
def transcript(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
13
|
+
"""YouTube Transcript — Extract the full timestamped transcript of a YouTube video. (2 credits)
|
|
14
|
+
|
|
15
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
16
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
17
|
+
"""
|
|
18
|
+
return self._t.get("/v1/youtube/transcript", {"url": url, "language": language})
|
|
19
|
+
|
|
20
|
+
def summarize(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
21
|
+
"""YouTube Summarizer — AI summary (key points, topics, sentiment) of a YouTube video. (4 credits)
|
|
22
|
+
|
|
23
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
24
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
25
|
+
"""
|
|
26
|
+
return self._t.get("/v1/youtube/summarize", {"url": url, "language": language})
|
|
27
|
+
|
|
28
|
+
def video_details(self, *, url: str) -> dict[str, Any]:
|
|
29
|
+
"""YouTube Video Details — Metadata + engagement stats for a YouTube video. (1 credit)
|
|
30
|
+
|
|
31
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
32
|
+
"""
|
|
33
|
+
return self._t.get("/v1/youtube/video-details", {"url": url})
|
|
34
|
+
|
|
35
|
+
def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
36
|
+
"""YouTube Comments — Comments on a YouTube video. (20 credits)
|
|
37
|
+
|
|
38
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
39
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
40
|
+
"""
|
|
41
|
+
return self._t.get("/v1/youtube/comments", {"url": url, "limit": limit})
|
|
42
|
+
|
|
43
|
+
def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
44
|
+
"""YouTube Channel Details — Channel info & subscriber/stats for a YouTube channel. (1 credit)
|
|
45
|
+
|
|
46
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
47
|
+
"""
|
|
48
|
+
return self._t.get("/v1/youtube/channel-details", {"url": url})
|
|
49
|
+
|
|
50
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
51
|
+
"""YouTube Search — Search YouTube videos by keyword. (20 credits)
|
|
52
|
+
|
|
53
|
+
:param q: Search query or keywords (min 2 chars).
|
|
54
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
55
|
+
"""
|
|
56
|
+
return self._t.get("/v1/youtube/search", {"q": q, "limit": limit})
|
|
57
|
+
|
|
58
|
+
def channel_videos(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
59
|
+
"""YouTube Channel Videos — List a channel's uploaded videos. (20 credits)
|
|
60
|
+
|
|
61
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
62
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
63
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
64
|
+
"""
|
|
65
|
+
return self._t.get("/v1/youtube/channel-videos", {"url": url, "limit": limit, "fast": fast})
|
|
66
|
+
|
|
67
|
+
def playlist_videos(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
68
|
+
"""YouTube Playlist Videos — List videos in a YouTube playlist. (50 credits)
|
|
69
|
+
|
|
70
|
+
:param url: YouTube playlist URL, e.g. https://youtube.com/playlist?list=ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
71
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
72
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
73
|
+
"""
|
|
74
|
+
return self._t.get("/v1/youtube/playlist-videos", {"url": url, "limit": limit, "fast": fast})
|
|
75
|
+
|
|
76
|
+
def playlist(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
77
|
+
"""YouTube Playlist — Playlist metadata plus videos from a YouTube playlist. (50 credits)
|
|
78
|
+
|
|
79
|
+
:param url: YouTube playlist URL, e.g. https://youtube.com/playlist?list=ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
80
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
81
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
82
|
+
"""
|
|
83
|
+
return self._t.get("/v1/youtube/playlist", {"url": url, "limit": limit, "fast": fast})
|
|
84
|
+
|
|
85
|
+
def video_download(self, *, url: str) -> dict[str, Any]:
|
|
86
|
+
"""YouTube Video Download — Direct download URLs for a YouTube video. (3 credits)
|
|
87
|
+
|
|
88
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
89
|
+
"""
|
|
90
|
+
return self._t.get("/v1/youtube/video-download", {"url": url})
|
|
91
|
+
|
|
92
|
+
def shorts_transcript(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
93
|
+
"""YouTube Shorts Transcript — Transcript of a YouTube Short. (2 credits)
|
|
94
|
+
|
|
95
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
96
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
97
|
+
"""
|
|
98
|
+
return self._t.get("/v1/youtube/shorts/transcript", {"url": url, "language": language})
|
|
99
|
+
|
|
100
|
+
def shorts_summarize(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
101
|
+
"""YouTube Shorts Summarizer — AI summary of a YouTube Short. (4 credits)
|
|
102
|
+
|
|
103
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
104
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
105
|
+
"""
|
|
106
|
+
return self._t.get("/v1/youtube/shorts/summarize", {"url": url, "language": language})
|
|
107
|
+
|
|
108
|
+
def shorts_details(self, *, url: str) -> dict[str, Any]:
|
|
109
|
+
"""YouTube Shorts Stats — Metadata + stats for a YouTube Short. (1 credit)
|
|
110
|
+
|
|
111
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
112
|
+
"""
|
|
113
|
+
return self._t.get("/v1/youtube/shorts/video-details", {"url": url})
|
|
114
|
+
|
|
115
|
+
def shorts_comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
116
|
+
"""YouTube Shorts Comments — Comments on a YouTube Short. (20 credits)
|
|
117
|
+
|
|
118
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
119
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
120
|
+
"""
|
|
121
|
+
return self._t.get("/v1/youtube/shorts/comments", {"url": url, "limit": limit})
|
|
122
|
+
|
|
123
|
+
def channel_shorts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
124
|
+
"""YouTube Channel Shorts — List a channel's Shorts. (20 credits)
|
|
125
|
+
|
|
126
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
127
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
128
|
+
"""
|
|
129
|
+
return self._t.get("/v1/youtube/channel-shorts", {"url": url, "limit": limit})
|
|
130
|
+
|
|
131
|
+
def trending_shorts(self, *, q: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
132
|
+
"""YouTube Trending Shorts — Discover trending YouTube Shorts by seed keyword. (28 credits)
|
|
133
|
+
|
|
134
|
+
:param q: Seed keyword for trending Shorts. Default trending.
|
|
135
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
136
|
+
"""
|
|
137
|
+
return self._t.get("/v1/youtube/trending-shorts", {"q": q, "limit": limit})
|
|
138
|
+
|
|
139
|
+
def channel_streams(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
140
|
+
"""YouTube Channel Streams — List a channel's live/past streams. (20 credits)
|
|
141
|
+
|
|
142
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
143
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
144
|
+
"""
|
|
145
|
+
return self._t.get("/v1/youtube/channel-streams", {"url": url, "limit": limit})
|
|
146
|
+
|
|
147
|
+
def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
148
|
+
"""YouTube Hashtag Search — Search YouTube videos by hashtag. (20 credits)
|
|
149
|
+
|
|
150
|
+
:param q: Hashtag with or without the # (min 2 chars).
|
|
151
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
152
|
+
"""
|
|
153
|
+
return self._t.get("/v1/youtube/hashtag-search", {"q": q, "limit": limit})
|
|
154
|
+
|
|
155
|
+
def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
156
|
+
"""YouTube Comment Replies — Replies to a specific YouTube comment. (20 credits)
|
|
157
|
+
|
|
158
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
159
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
160
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
161
|
+
"""
|
|
162
|
+
return self._t.get("/v1/youtube/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
163
|
+
|
|
164
|
+
def channel_playlists(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
165
|
+
"""YouTube Channel Playlists — List a channel's playlists. (20 credits)
|
|
166
|
+
|
|
167
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
168
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
169
|
+
"""
|
|
170
|
+
return self._t.get("/v1/youtube/channel-playlists", {"url": url, "limit": limit})
|
|
171
|
+
|
|
172
|
+
def community_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
173
|
+
"""YouTube Community Posts — List a channel's community (posts) tab. (10 credits)
|
|
174
|
+
|
|
175
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
176
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
177
|
+
"""
|
|
178
|
+
return self._t.get("/v1/youtube/community-posts", {"url": url, "limit": limit})
|
|
179
|
+
|
|
180
|
+
def community_post_details(self, *, url: str) -> dict[str, Any]:
|
|
181
|
+
"""YouTube Community Post Details — Details for a single YouTube community post. (7 credits)
|
|
182
|
+
|
|
183
|
+
:param url: YouTube community post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
184
|
+
"""
|
|
185
|
+
return self._t.get("/v1/youtube/community-post-details", {"url": url})
|
|
186
|
+
|
|
187
|
+
def video_sponsors(self, *, url: str) -> dict[str, Any]:
|
|
188
|
+
"""YouTube Video Sponsors — Sponsor / self-promo / interaction segments in a YouTube video (via SponsorBlock). (1 credit)
|
|
189
|
+
|
|
190
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
191
|
+
"""
|
|
192
|
+
return self._t.get("/v1/youtube/video-sponsors", {"url": url})
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class AsyncYoutubeApi:
|
|
196
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
197
|
+
self._t = transport
|
|
198
|
+
|
|
199
|
+
async def transcript(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
200
|
+
"""YouTube Transcript — Extract the full timestamped transcript of a YouTube video. (2 credits)
|
|
201
|
+
|
|
202
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
203
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
204
|
+
"""
|
|
205
|
+
return await self._t.get("/v1/youtube/transcript", {"url": url, "language": language})
|
|
206
|
+
|
|
207
|
+
async def summarize(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
208
|
+
"""YouTube Summarizer — AI summary (key points, topics, sentiment) of a YouTube video. (4 credits)
|
|
209
|
+
|
|
210
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
211
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
212
|
+
"""
|
|
213
|
+
return await self._t.get("/v1/youtube/summarize", {"url": url, "language": language})
|
|
214
|
+
|
|
215
|
+
async def video_details(self, *, url: str) -> dict[str, Any]:
|
|
216
|
+
"""YouTube Video Details — Metadata + engagement stats for a YouTube video. (1 credit)
|
|
217
|
+
|
|
218
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
219
|
+
"""
|
|
220
|
+
return await self._t.get("/v1/youtube/video-details", {"url": url})
|
|
221
|
+
|
|
222
|
+
async def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
223
|
+
"""YouTube Comments — Comments on a YouTube video. (20 credits)
|
|
224
|
+
|
|
225
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
226
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
227
|
+
"""
|
|
228
|
+
return await self._t.get("/v1/youtube/comments", {"url": url, "limit": limit})
|
|
229
|
+
|
|
230
|
+
async def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
231
|
+
"""YouTube Channel Details — Channel info & subscriber/stats for a YouTube channel. (1 credit)
|
|
232
|
+
|
|
233
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
234
|
+
"""
|
|
235
|
+
return await self._t.get("/v1/youtube/channel-details", {"url": url})
|
|
236
|
+
|
|
237
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
238
|
+
"""YouTube Search — Search YouTube videos by keyword. (20 credits)
|
|
239
|
+
|
|
240
|
+
:param q: Search query or keywords (min 2 chars).
|
|
241
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
242
|
+
"""
|
|
243
|
+
return await self._t.get("/v1/youtube/search", {"q": q, "limit": limit})
|
|
244
|
+
|
|
245
|
+
async def channel_videos(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
246
|
+
"""YouTube Channel Videos — List a channel's uploaded videos. (20 credits)
|
|
247
|
+
|
|
248
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
249
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
250
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
251
|
+
"""
|
|
252
|
+
return await self._t.get("/v1/youtube/channel-videos", {"url": url, "limit": limit, "fast": fast})
|
|
253
|
+
|
|
254
|
+
async def playlist_videos(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
255
|
+
"""YouTube Playlist Videos — List videos in a YouTube playlist. (50 credits)
|
|
256
|
+
|
|
257
|
+
:param url: YouTube playlist URL, e.g. https://youtube.com/playlist?list=ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
258
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
259
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
260
|
+
"""
|
|
261
|
+
return await self._t.get("/v1/youtube/playlist-videos", {"url": url, "limit": limit, "fast": fast})
|
|
262
|
+
|
|
263
|
+
async def playlist(self, *, url: str, limit: float | None = None, fast: bool | None = None) -> dict[str, Any]:
|
|
264
|
+
"""YouTube Playlist — Playlist metadata plus videos from a YouTube playlist. (50 credits)
|
|
265
|
+
|
|
266
|
+
:param url: YouTube playlist URL, e.g. https://youtube.com/playlist?list=ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
267
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
268
|
+
:param fast: Set true to use YouTube RSS for faster results with less detailed metadata. Leave false when viewCount/duration quality matters.
|
|
269
|
+
"""
|
|
270
|
+
return await self._t.get("/v1/youtube/playlist", {"url": url, "limit": limit, "fast": fast})
|
|
271
|
+
|
|
272
|
+
async def video_download(self, *, url: str) -> dict[str, Any]:
|
|
273
|
+
"""YouTube Video Download — Direct download URLs for a YouTube video. (3 credits)
|
|
274
|
+
|
|
275
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
276
|
+
"""
|
|
277
|
+
return await self._t.get("/v1/youtube/video-download", {"url": url})
|
|
278
|
+
|
|
279
|
+
async def shorts_transcript(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
280
|
+
"""YouTube Shorts Transcript — Transcript of a YouTube Short. (2 credits)
|
|
281
|
+
|
|
282
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
283
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
284
|
+
"""
|
|
285
|
+
return await self._t.get("/v1/youtube/shorts/transcript", {"url": url, "language": language})
|
|
286
|
+
|
|
287
|
+
async def shorts_summarize(self, *, url: str, language: str | None = None) -> dict[str, Any]:
|
|
288
|
+
"""YouTube Shorts Summarizer — AI summary of a YouTube Short. (4 credits)
|
|
289
|
+
|
|
290
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
291
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
292
|
+
"""
|
|
293
|
+
return await self._t.get("/v1/youtube/shorts/summarize", {"url": url, "language": language})
|
|
294
|
+
|
|
295
|
+
async def shorts_details(self, *, url: str) -> dict[str, Any]:
|
|
296
|
+
"""YouTube Shorts Stats — Metadata + stats for a YouTube Short. (1 credit)
|
|
297
|
+
|
|
298
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
299
|
+
"""
|
|
300
|
+
return await self._t.get("/v1/youtube/shorts/video-details", {"url": url})
|
|
301
|
+
|
|
302
|
+
async def shorts_comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
303
|
+
"""YouTube Shorts Comments — Comments on a YouTube Short. (20 credits)
|
|
304
|
+
|
|
305
|
+
:param url: Public YouTube Shorts URL, e.g. https://youtube.com/shorts/ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
306
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
307
|
+
"""
|
|
308
|
+
return await self._t.get("/v1/youtube/shorts/comments", {"url": url, "limit": limit})
|
|
309
|
+
|
|
310
|
+
async def channel_shorts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
311
|
+
"""YouTube Channel Shorts — List a channel's Shorts. (20 credits)
|
|
312
|
+
|
|
313
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
314
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
315
|
+
"""
|
|
316
|
+
return await self._t.get("/v1/youtube/channel-shorts", {"url": url, "limit": limit})
|
|
317
|
+
|
|
318
|
+
async def trending_shorts(self, *, q: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
319
|
+
"""YouTube Trending Shorts — Discover trending YouTube Shorts by seed keyword. (28 credits)
|
|
320
|
+
|
|
321
|
+
:param q: Seed keyword for trending Shorts. Default trending.
|
|
322
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
323
|
+
"""
|
|
324
|
+
return await self._t.get("/v1/youtube/trending-shorts", {"q": q, "limit": limit})
|
|
325
|
+
|
|
326
|
+
async def channel_streams(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
327
|
+
"""YouTube Channel Streams — List a channel's live/past streams. (20 credits)
|
|
328
|
+
|
|
329
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
330
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
331
|
+
"""
|
|
332
|
+
return await self._t.get("/v1/youtube/channel-streams", {"url": url, "limit": limit})
|
|
333
|
+
|
|
334
|
+
async def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
335
|
+
"""YouTube Hashtag Search — Search YouTube videos by hashtag. (20 credits)
|
|
336
|
+
|
|
337
|
+
:param q: Hashtag with or without the # (min 2 chars).
|
|
338
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
339
|
+
"""
|
|
340
|
+
return await self._t.get("/v1/youtube/hashtag-search", {"q": q, "limit": limit})
|
|
341
|
+
|
|
342
|
+
async def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
343
|
+
"""YouTube Comment Replies — Replies to a specific YouTube comment. (20 credits)
|
|
344
|
+
|
|
345
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
346
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
347
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
348
|
+
"""
|
|
349
|
+
return await self._t.get("/v1/youtube/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
350
|
+
|
|
351
|
+
async def channel_playlists(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
352
|
+
"""YouTube Channel Playlists — List a channel's playlists. (20 credits)
|
|
353
|
+
|
|
354
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
355
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
356
|
+
"""
|
|
357
|
+
return await self._t.get("/v1/youtube/channel-playlists", {"url": url, "limit": limit})
|
|
358
|
+
|
|
359
|
+
async def community_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
360
|
+
"""YouTube Community Posts — List a channel's community (posts) tab. (10 credits)
|
|
361
|
+
|
|
362
|
+
:param url: YouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
363
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
364
|
+
"""
|
|
365
|
+
return await self._t.get("/v1/youtube/community-posts", {"url": url, "limit": limit})
|
|
366
|
+
|
|
367
|
+
async def community_post_details(self, *, url: str) -> dict[str, Any]:
|
|
368
|
+
"""YouTube Community Post Details — Details for a single YouTube community post. (7 credits)
|
|
369
|
+
|
|
370
|
+
:param url: YouTube community post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
371
|
+
"""
|
|
372
|
+
return await self._t.get("/v1/youtube/community-post-details", {"url": url})
|
|
373
|
+
|
|
374
|
+
async def video_sponsors(self, *, url: str) -> dict[str, Any]:
|
|
375
|
+
"""YouTube Video Sponsors — Sponsor / self-promo / interaction segments in a YouTube video (via SponsorBlock). (1 credit)
|
|
376
|
+
|
|
377
|
+
:param url: Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
378
|
+
"""
|
|
379
|
+
return await self._t.get("/v1/youtube/video-sponsors", {"url": url})
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
class TiktokApi:
|
|
383
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
384
|
+
self._t = transport
|
|
385
|
+
|
|
386
|
+
def transcript(self, *, url: str) -> dict[str, Any]:
|
|
387
|
+
"""TikTok Transcript — Transcript of a TikTok video (via captions). (2 credits)
|
|
388
|
+
|
|
389
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
390
|
+
"""
|
|
391
|
+
return self._t.get("/v1/tiktok/transcript", {"url": url})
|
|
392
|
+
|
|
393
|
+
def summarize(self, *, url: str) -> dict[str, Any]:
|
|
394
|
+
"""TikTok Summarizer — AI summary of a TikTok video. (4 credits)
|
|
395
|
+
|
|
396
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
397
|
+
"""
|
|
398
|
+
return self._t.get("/v1/tiktok/summarize", {"url": url})
|
|
399
|
+
|
|
400
|
+
def video_details(self, *, url: str) -> dict[str, Any]:
|
|
401
|
+
"""TikTok Video Details — Metadata + stats for a TikTok video. (1 credit)
|
|
402
|
+
|
|
403
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
404
|
+
"""
|
|
405
|
+
return self._t.get("/v1/tiktok/video-details", {"url": url})
|
|
406
|
+
|
|
407
|
+
def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
408
|
+
"""TikTok Comments — Comments on a TikTok video. (10 credits)
|
|
409
|
+
|
|
410
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
411
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
412
|
+
"""
|
|
413
|
+
return self._t.get("/v1/tiktok/comments", {"url": url, "limit": limit})
|
|
414
|
+
|
|
415
|
+
def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
416
|
+
"""TikTok Channel Details — Profile info & stats for a TikTok user. (1 credit)
|
|
417
|
+
|
|
418
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
419
|
+
"""
|
|
420
|
+
return self._t.get("/v1/tiktok/channel-details", {"url": url})
|
|
421
|
+
|
|
422
|
+
def profile_region(self, *, url: str) -> dict[str, Any]:
|
|
423
|
+
"""TikTok Profile Region — Region and language signals for a TikTok profile. (7 credits)
|
|
424
|
+
|
|
425
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
426
|
+
"""
|
|
427
|
+
return self._t.get("/v1/tiktok/profile-region", {"url": url})
|
|
428
|
+
|
|
429
|
+
def audience_demographics(self, *, url: str) -> dict[str, Any]:
|
|
430
|
+
"""TikTok Audience Demographics — Audience and demographic signals for a TikTok profile. (7 credits)
|
|
431
|
+
|
|
432
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
433
|
+
"""
|
|
434
|
+
return self._t.get("/v1/tiktok/audience-demographics", {"url": url})
|
|
435
|
+
|
|
436
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
437
|
+
"""TikTok Search — Search TikTok videos by keyword/hashtag. (14 credits)
|
|
438
|
+
|
|
439
|
+
:param q: Search query or keywords (min 2 chars).
|
|
440
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
441
|
+
"""
|
|
442
|
+
return self._t.get("/v1/tiktok/search", {"q": q, "limit": limit})
|
|
443
|
+
|
|
444
|
+
def search_suggestions(self, *, q: str, country: str | None = None, language: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
445
|
+
"""TikTok Search Suggestions — TikTok search/autocomplete suggestions for a seed keyword. (28 credits)
|
|
446
|
+
|
|
447
|
+
:param q: Seed keyword for autocomplete suggestions.
|
|
448
|
+
:param country: Two-letter ISO country code. Default US.
|
|
449
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
450
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
451
|
+
"""
|
|
452
|
+
return self._t.get("/v1/tiktok/search-suggestions", {"q": q, "country": country, "language": language, "limit": limit})
|
|
453
|
+
|
|
454
|
+
def video_download(self, *, url: str) -> dict[str, Any]:
|
|
455
|
+
"""TikTok Video Download — No-watermark download URL for a TikTok video. (3 credits)
|
|
456
|
+
|
|
457
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
458
|
+
"""
|
|
459
|
+
return self._t.get("/v1/tiktok/video-download", {"url": url})
|
|
460
|
+
|
|
461
|
+
def channel_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
462
|
+
"""TikTok Channel Posts — Latest posts from a TikTok profile. (14 credits)
|
|
463
|
+
|
|
464
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
465
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
466
|
+
"""
|
|
467
|
+
return self._t.get("/v1/tiktok/channel-posts", {"url": url, "limit": limit})
|
|
468
|
+
|
|
469
|
+
def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
470
|
+
"""TikTok Comment Replies — Replies to a specific TikTok comment. (50 credits)
|
|
471
|
+
|
|
472
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
473
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
474
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
475
|
+
"""
|
|
476
|
+
return self._t.get("/v1/tiktok/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
477
|
+
|
|
478
|
+
def user_followers(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
479
|
+
"""TikTok User Followers — List a TikTok user's followers. (20 credits)
|
|
480
|
+
|
|
481
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
482
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
483
|
+
"""
|
|
484
|
+
return self._t.get("/v1/tiktok/user-followers", {"url": url, "limit": limit})
|
|
485
|
+
|
|
486
|
+
def user_followings(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
487
|
+
"""TikTok User Followings — List who a TikTok user follows. (20 credits)
|
|
488
|
+
|
|
489
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
490
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
491
|
+
"""
|
|
492
|
+
return self._t.get("/v1/tiktok/user-followings", {"url": url, "limit": limit})
|
|
493
|
+
|
|
494
|
+
def music_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
495
|
+
"""TikTok Music Posts — Posts using a specific TikTok sound/music. (32 credits)
|
|
496
|
+
|
|
497
|
+
:param url: TikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
498
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
499
|
+
"""
|
|
500
|
+
return self._t.get("/v1/tiktok/music-posts", {"url": url, "limit": limit})
|
|
501
|
+
|
|
502
|
+
def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
503
|
+
"""TikTok Hashtag Search — Search TikTok videos by hashtag. (14 credits)
|
|
504
|
+
|
|
505
|
+
:param q: Hashtag with or without the # (min 2 chars).
|
|
506
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
507
|
+
"""
|
|
508
|
+
return self._t.get("/v1/tiktok/hashtag-search", {"q": q, "limit": limit})
|
|
509
|
+
|
|
510
|
+
def top_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
511
|
+
"""TikTok Top Search — Top mixed TikTok results for a keyword. (14 credits)
|
|
512
|
+
|
|
513
|
+
:param q: Search query or keywords (min 2 chars).
|
|
514
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
515
|
+
"""
|
|
516
|
+
return self._t.get("/v1/tiktok/top-search", {"q": q, "limit": limit})
|
|
517
|
+
|
|
518
|
+
def user_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
519
|
+
"""TikTok User Search — Search TikTok users/creators by keyword. (8 credits)
|
|
520
|
+
|
|
521
|
+
:param q: Search query or keywords (min 2 chars).
|
|
522
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
523
|
+
"""
|
|
524
|
+
return self._t.get("/v1/tiktok/user-search", {"q": q, "limit": limit})
|
|
525
|
+
|
|
526
|
+
def song_details(self, *, url: str) -> dict[str, Any]:
|
|
527
|
+
"""TikTok Song Details — Details of a TikTok sound/song. (2 credits)
|
|
528
|
+
|
|
529
|
+
:param url: TikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
530
|
+
"""
|
|
531
|
+
return self._t.get("/v1/tiktok/song-details", {"url": url})
|
|
532
|
+
|
|
533
|
+
def trending_feed(self, *, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
534
|
+
"""TikTok Trending Feed — TikTok trending (For You) videos by region. (14 credits)
|
|
535
|
+
|
|
536
|
+
:param country: Two-letter ISO country code, e.g. US, GB, TR. Default US.
|
|
537
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
538
|
+
"""
|
|
539
|
+
return self._t.get("/v1/tiktok/trending-feed", {"country": country, "limit": limit})
|
|
540
|
+
|
|
541
|
+
def popular_hashtags(self, *, query: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
542
|
+
"""TikTok Popular Hashtags — Trending TikTok hashtags for a topic/keyword. (14 credits)
|
|
543
|
+
|
|
544
|
+
:param query: Topic or keyword to discover trending hashtags for. Default "trending".
|
|
545
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
546
|
+
"""
|
|
547
|
+
return self._t.get("/v1/tiktok/popular-hashtags", {"query": query, "limit": limit})
|
|
548
|
+
|
|
549
|
+
def live(self, *, url: str) -> dict[str, Any]:
|
|
550
|
+
"""TikTok Live — Live status & room info for a TikTok creator. (1 credit)
|
|
551
|
+
|
|
552
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
553
|
+
"""
|
|
554
|
+
return self._t.get("/v1/tiktok/live", {"url": url})
|
|
555
|
+
|
|
556
|
+
def live_info(self, *, url: str) -> dict[str, Any]:
|
|
557
|
+
"""TikTok Live Info — Live room details for a TikTok creator. (7 credits)
|
|
558
|
+
|
|
559
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
560
|
+
"""
|
|
561
|
+
return self._t.get("/v1/tiktok/live-info", {"url": url})
|
|
562
|
+
|
|
563
|
+
def popular_creators(self, *, country: str | None = None, sort: str | None = None, follower_count: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
564
|
+
"""TikTok Popular Creators — Popular TikTok creators by country and ranking mode. (28 credits)
|
|
565
|
+
|
|
566
|
+
:param country: Two-letter ISO country code. Default US.
|
|
567
|
+
:param sort: follower, engagement, or popularity. Default follower.
|
|
568
|
+
:param follower_count: Optional range: 10k-100k, 100k-1m, 1m-10m, >10m.
|
|
569
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
570
|
+
"""
|
|
571
|
+
return self._t.get("/v1/tiktok/popular-creators", {"country": country, "sort": sort, "follower_count": follower_count, "limit": limit})
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
class AsyncTiktokApi:
|
|
575
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
576
|
+
self._t = transport
|
|
577
|
+
|
|
578
|
+
async def transcript(self, *, url: str) -> dict[str, Any]:
|
|
579
|
+
"""TikTok Transcript — Transcript of a TikTok video (via captions). (2 credits)
|
|
580
|
+
|
|
581
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
582
|
+
"""
|
|
583
|
+
return await self._t.get("/v1/tiktok/transcript", {"url": url})
|
|
584
|
+
|
|
585
|
+
async def summarize(self, *, url: str) -> dict[str, Any]:
|
|
586
|
+
"""TikTok Summarizer — AI summary of a TikTok video. (4 credits)
|
|
587
|
+
|
|
588
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
589
|
+
"""
|
|
590
|
+
return await self._t.get("/v1/tiktok/summarize", {"url": url})
|
|
591
|
+
|
|
592
|
+
async def video_details(self, *, url: str) -> dict[str, Any]:
|
|
593
|
+
"""TikTok Video Details — Metadata + stats for a TikTok video. (1 credit)
|
|
594
|
+
|
|
595
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
596
|
+
"""
|
|
597
|
+
return await self._t.get("/v1/tiktok/video-details", {"url": url})
|
|
598
|
+
|
|
599
|
+
async def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
600
|
+
"""TikTok Comments — Comments on a TikTok video. (10 credits)
|
|
601
|
+
|
|
602
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
603
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
604
|
+
"""
|
|
605
|
+
return await self._t.get("/v1/tiktok/comments", {"url": url, "limit": limit})
|
|
606
|
+
|
|
607
|
+
async def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
608
|
+
"""TikTok Channel Details — Profile info & stats for a TikTok user. (1 credit)
|
|
609
|
+
|
|
610
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
611
|
+
"""
|
|
612
|
+
return await self._t.get("/v1/tiktok/channel-details", {"url": url})
|
|
613
|
+
|
|
614
|
+
async def profile_region(self, *, url: str) -> dict[str, Any]:
|
|
615
|
+
"""TikTok Profile Region — Region and language signals for a TikTok profile. (7 credits)
|
|
616
|
+
|
|
617
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
618
|
+
"""
|
|
619
|
+
return await self._t.get("/v1/tiktok/profile-region", {"url": url})
|
|
620
|
+
|
|
621
|
+
async def audience_demographics(self, *, url: str) -> dict[str, Any]:
|
|
622
|
+
"""TikTok Audience Demographics — Audience and demographic signals for a TikTok profile. (7 credits)
|
|
623
|
+
|
|
624
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
625
|
+
"""
|
|
626
|
+
return await self._t.get("/v1/tiktok/audience-demographics", {"url": url})
|
|
627
|
+
|
|
628
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
629
|
+
"""TikTok Search — Search TikTok videos by keyword/hashtag. (14 credits)
|
|
630
|
+
|
|
631
|
+
:param q: Search query or keywords (min 2 chars).
|
|
632
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
633
|
+
"""
|
|
634
|
+
return await self._t.get("/v1/tiktok/search", {"q": q, "limit": limit})
|
|
635
|
+
|
|
636
|
+
async def search_suggestions(self, *, q: str, country: str | None = None, language: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
637
|
+
"""TikTok Search Suggestions — TikTok search/autocomplete suggestions for a seed keyword. (28 credits)
|
|
638
|
+
|
|
639
|
+
:param q: Seed keyword for autocomplete suggestions.
|
|
640
|
+
:param country: Two-letter ISO country code. Default US.
|
|
641
|
+
:param language: Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
|
|
642
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
643
|
+
"""
|
|
644
|
+
return await self._t.get("/v1/tiktok/search-suggestions", {"q": q, "country": country, "language": language, "limit": limit})
|
|
645
|
+
|
|
646
|
+
async def video_download(self, *, url: str) -> dict[str, Any]:
|
|
647
|
+
"""TikTok Video Download — No-watermark download URL for a TikTok video. (3 credits)
|
|
648
|
+
|
|
649
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
650
|
+
"""
|
|
651
|
+
return await self._t.get("/v1/tiktok/video-download", {"url": url})
|
|
652
|
+
|
|
653
|
+
async def channel_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
654
|
+
"""TikTok Channel Posts — Latest posts from a TikTok profile. (14 credits)
|
|
655
|
+
|
|
656
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
657
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
658
|
+
"""
|
|
659
|
+
return await self._t.get("/v1/tiktok/channel-posts", {"url": url, "limit": limit})
|
|
660
|
+
|
|
661
|
+
async def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
662
|
+
"""TikTok Comment Replies — Replies to a specific TikTok comment. (50 credits)
|
|
663
|
+
|
|
664
|
+
:param url: Public TikTok video URL, e.g. https://tiktok.com/@user/video/ID. Not a YouTube/Instagram/Facebook URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
665
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
666
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
667
|
+
"""
|
|
668
|
+
return await self._t.get("/v1/tiktok/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
669
|
+
|
|
670
|
+
async def user_followers(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
671
|
+
"""TikTok User Followers — List a TikTok user's followers. (20 credits)
|
|
672
|
+
|
|
673
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
674
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
675
|
+
"""
|
|
676
|
+
return await self._t.get("/v1/tiktok/user-followers", {"url": url, "limit": limit})
|
|
677
|
+
|
|
678
|
+
async def user_followings(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
679
|
+
"""TikTok User Followings — List who a TikTok user follows. (20 credits)
|
|
680
|
+
|
|
681
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
682
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
683
|
+
"""
|
|
684
|
+
return await self._t.get("/v1/tiktok/user-followings", {"url": url, "limit": limit})
|
|
685
|
+
|
|
686
|
+
async def music_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
687
|
+
"""TikTok Music Posts — Posts using a specific TikTok sound/music. (32 credits)
|
|
688
|
+
|
|
689
|
+
:param url: TikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
690
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
691
|
+
"""
|
|
692
|
+
return await self._t.get("/v1/tiktok/music-posts", {"url": url, "limit": limit})
|
|
693
|
+
|
|
694
|
+
async def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
695
|
+
"""TikTok Hashtag Search — Search TikTok videos by hashtag. (14 credits)
|
|
696
|
+
|
|
697
|
+
:param q: Hashtag with or without the # (min 2 chars).
|
|
698
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
699
|
+
"""
|
|
700
|
+
return await self._t.get("/v1/tiktok/hashtag-search", {"q": q, "limit": limit})
|
|
701
|
+
|
|
702
|
+
async def top_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
703
|
+
"""TikTok Top Search — Top mixed TikTok results for a keyword. (14 credits)
|
|
704
|
+
|
|
705
|
+
:param q: Search query or keywords (min 2 chars).
|
|
706
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
707
|
+
"""
|
|
708
|
+
return await self._t.get("/v1/tiktok/top-search", {"q": q, "limit": limit})
|
|
709
|
+
|
|
710
|
+
async def user_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
711
|
+
"""TikTok User Search — Search TikTok users/creators by keyword. (8 credits)
|
|
712
|
+
|
|
713
|
+
:param q: Search query or keywords (min 2 chars).
|
|
714
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
715
|
+
"""
|
|
716
|
+
return await self._t.get("/v1/tiktok/user-search", {"q": q, "limit": limit})
|
|
717
|
+
|
|
718
|
+
async def song_details(self, *, url: str) -> dict[str, Any]:
|
|
719
|
+
"""TikTok Song Details — Details of a TikTok sound/song. (2 credits)
|
|
720
|
+
|
|
721
|
+
:param url: TikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
722
|
+
"""
|
|
723
|
+
return await self._t.get("/v1/tiktok/song-details", {"url": url})
|
|
724
|
+
|
|
725
|
+
async def trending_feed(self, *, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
726
|
+
"""TikTok Trending Feed — TikTok trending (For You) videos by region. (14 credits)
|
|
727
|
+
|
|
728
|
+
:param country: Two-letter ISO country code, e.g. US, GB, TR. Default US.
|
|
729
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
730
|
+
"""
|
|
731
|
+
return await self._t.get("/v1/tiktok/trending-feed", {"country": country, "limit": limit})
|
|
732
|
+
|
|
733
|
+
async def popular_hashtags(self, *, query: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
734
|
+
"""TikTok Popular Hashtags — Trending TikTok hashtags for a topic/keyword. (14 credits)
|
|
735
|
+
|
|
736
|
+
:param query: Topic or keyword to discover trending hashtags for. Default "trending".
|
|
737
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
738
|
+
"""
|
|
739
|
+
return await self._t.get("/v1/tiktok/popular-hashtags", {"query": query, "limit": limit})
|
|
740
|
+
|
|
741
|
+
async def live(self, *, url: str) -> dict[str, Any]:
|
|
742
|
+
"""TikTok Live — Live status & room info for a TikTok creator. (1 credit)
|
|
743
|
+
|
|
744
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
745
|
+
"""
|
|
746
|
+
return await self._t.get("/v1/tiktok/live", {"url": url})
|
|
747
|
+
|
|
748
|
+
async def live_info(self, *, url: str) -> dict[str, Any]:
|
|
749
|
+
"""TikTok Live Info — Live room details for a TikTok creator. (7 credits)
|
|
750
|
+
|
|
751
|
+
:param url: TikTok profile URL, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
752
|
+
"""
|
|
753
|
+
return await self._t.get("/v1/tiktok/live-info", {"url": url})
|
|
754
|
+
|
|
755
|
+
async def popular_creators(self, *, country: str | None = None, sort: str | None = None, follower_count: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
756
|
+
"""TikTok Popular Creators — Popular TikTok creators by country and ranking mode. (28 credits)
|
|
757
|
+
|
|
758
|
+
:param country: Two-letter ISO country code. Default US.
|
|
759
|
+
:param sort: follower, engagement, or popularity. Default follower.
|
|
760
|
+
:param follower_count: Optional range: 10k-100k, 100k-1m, 1m-10m, >10m.
|
|
761
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
762
|
+
"""
|
|
763
|
+
return await self._t.get("/v1/tiktok/popular-creators", {"country": country, "sort": sort, "follower_count": follower_count, "limit": limit})
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
class InstagramApi:
|
|
767
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
768
|
+
self._t = transport
|
|
769
|
+
|
|
770
|
+
def transcript(self, *, url: str) -> dict[str, Any]:
|
|
771
|
+
"""Instagram Transcript — Transcript of an Instagram Reel. (2 credits)
|
|
772
|
+
|
|
773
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
774
|
+
"""
|
|
775
|
+
return self._t.get("/v1/instagram/transcript", {"url": url})
|
|
776
|
+
|
|
777
|
+
def summarize(self, *, url: str) -> dict[str, Any]:
|
|
778
|
+
"""Instagram Summarizer — AI summary of an Instagram Reel. (4 credits)
|
|
779
|
+
|
|
780
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
781
|
+
"""
|
|
782
|
+
return self._t.get("/v1/instagram/summarize", {"url": url})
|
|
783
|
+
|
|
784
|
+
def details(self, *, url: str) -> dict[str, Any]:
|
|
785
|
+
"""Instagram Details — Details for an Instagram post or reel. (1 credit)
|
|
786
|
+
|
|
787
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
788
|
+
"""
|
|
789
|
+
return self._t.get("/v1/instagram/details", {"url": url})
|
|
790
|
+
|
|
791
|
+
def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
792
|
+
"""Instagram Comments — Comments on an Instagram post or reel. (45 credits)
|
|
793
|
+
|
|
794
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
795
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
796
|
+
"""
|
|
797
|
+
return self._t.get("/v1/instagram/comments", {"url": url, "limit": limit})
|
|
798
|
+
|
|
799
|
+
def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
800
|
+
"""Instagram Channel Details — Profile info & stats for an Instagram account. (1 credit)
|
|
801
|
+
|
|
802
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
803
|
+
"""
|
|
804
|
+
return self._t.get("/v1/instagram/channel-details", {"url": url})
|
|
805
|
+
|
|
806
|
+
def channel_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
807
|
+
"""Instagram Channel Posts — Latest posts from an Instagram profile. (12 credits)
|
|
808
|
+
|
|
809
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
810
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
811
|
+
"""
|
|
812
|
+
return self._t.get("/v1/instagram/channel-posts", {"url": url, "limit": limit})
|
|
813
|
+
|
|
814
|
+
def channel_reels(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
815
|
+
"""Instagram Channel Reels — Latest Reels from an Instagram profile. (12 credits)
|
|
816
|
+
|
|
817
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
818
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
819
|
+
"""
|
|
820
|
+
return self._t.get("/v1/instagram/channel-reels", {"url": url, "limit": limit})
|
|
821
|
+
|
|
822
|
+
def reels_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
823
|
+
"""Instagram Reels Search — Search Instagram Reels by hashtag/keyword. (12 credits)
|
|
824
|
+
|
|
825
|
+
:param q: Hashtag (without #) or keyword (min 2 chars).
|
|
826
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
827
|
+
"""
|
|
828
|
+
return self._t.get("/v1/instagram/reels-search", {"q": q, "limit": limit})
|
|
829
|
+
|
|
830
|
+
def trending_reels(self, *, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
831
|
+
"""Instagram Trending Reels — Trending Instagram Reels / Explore posts by country. (28 credits)
|
|
832
|
+
|
|
833
|
+
:param country: Country name for Explore localization. Default United States.
|
|
834
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
835
|
+
"""
|
|
836
|
+
return self._t.get("/v1/instagram/trending-reels", {"country": country, "limit": limit})
|
|
837
|
+
|
|
838
|
+
def video_download(self, *, url: str) -> dict[str, Any]:
|
|
839
|
+
"""Instagram Video Download — Direct video URL for an Instagram Reel. (3 credits)
|
|
840
|
+
|
|
841
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
842
|
+
"""
|
|
843
|
+
return self._t.get("/v1/instagram/video-download", {"url": url})
|
|
844
|
+
|
|
845
|
+
def tagged_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
846
|
+
"""Instagram Tagged Posts — Posts an Instagram user is tagged in. (18 credits)
|
|
847
|
+
|
|
848
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
849
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
850
|
+
"""
|
|
851
|
+
return self._t.get("/v1/instagram/tagged-posts", {"url": url, "limit": limit})
|
|
852
|
+
|
|
853
|
+
def music_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
854
|
+
"""Instagram Music Posts — Posts/Reels using an Instagram audio. (18 credits)
|
|
855
|
+
|
|
856
|
+
:param url: Instagram audio/music page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
857
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
858
|
+
"""
|
|
859
|
+
return self._t.get("/v1/instagram/music-posts", {"url": url, "limit": limit})
|
|
860
|
+
|
|
861
|
+
def reels_by_audio_id(self, *, audio_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
862
|
+
"""Instagram Reels By Audio ID — Posts/Reels using an Instagram audio ID. (28 credits)
|
|
863
|
+
|
|
864
|
+
:param audio_id: Instagram audio/music ID or full audio URL.
|
|
865
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
866
|
+
"""
|
|
867
|
+
return self._t.get("/v1/instagram/reels-by-audio-id", {"audio_id": audio_id, "limit": limit})
|
|
868
|
+
|
|
869
|
+
def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
870
|
+
"""Instagram Hashtag Search — Search Instagram posts by hashtag. (12 credits)
|
|
871
|
+
|
|
872
|
+
:param q: Hashtag without the # (min 2 chars).
|
|
873
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
874
|
+
"""
|
|
875
|
+
return self._t.get("/v1/instagram/hashtag-search", {"q": q, "limit": limit})
|
|
876
|
+
|
|
877
|
+
def profile_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
878
|
+
"""Instagram Profile Search — Search Instagram profiles by keyword. (12 credits)
|
|
879
|
+
|
|
880
|
+
:param q: Search query or keywords (min 2 chars).
|
|
881
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
882
|
+
"""
|
|
883
|
+
return self._t.get("/v1/instagram/profile-search", {"q": q, "limit": limit})
|
|
884
|
+
|
|
885
|
+
def story_highlights(self, *, url: str) -> dict[str, Any]:
|
|
886
|
+
"""Instagram Story Highlights — List a profile's story highlight covers. (5 credits)
|
|
887
|
+
|
|
888
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
889
|
+
"""
|
|
890
|
+
return self._t.get("/v1/instagram/story-highlights", {"url": url})
|
|
891
|
+
|
|
892
|
+
def highlights_details(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
893
|
+
"""Instagram Highlights Details — Items inside a profile's story highlights. (9 credits)
|
|
894
|
+
|
|
895
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
896
|
+
:param limit: Max highlights to expand. Default 10, max 50.
|
|
897
|
+
"""
|
|
898
|
+
return self._t.get("/v1/instagram/highlights-details", {"url": url, "limit": limit})
|
|
899
|
+
|
|
900
|
+
def embed(self, *, url: str) -> dict[str, Any]:
|
|
901
|
+
"""Instagram Embed — Embed HTML for an Instagram post/reel. (1 credit)
|
|
902
|
+
|
|
903
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
904
|
+
"""
|
|
905
|
+
return self._t.get("/v1/instagram/embed", {"url": url})
|
|
906
|
+
|
|
907
|
+
def basic_profile(self, *, url: str) -> dict[str, Any]:
|
|
908
|
+
"""Instagram Basic Profile — Lightweight Instagram profile lookup (core fields). (1 credit)
|
|
909
|
+
|
|
910
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
911
|
+
"""
|
|
912
|
+
return self._t.get("/v1/instagram/basic-profile", {"url": url})
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
class AsyncInstagramApi:
|
|
916
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
917
|
+
self._t = transport
|
|
918
|
+
|
|
919
|
+
async def transcript(self, *, url: str) -> dict[str, Any]:
|
|
920
|
+
"""Instagram Transcript — Transcript of an Instagram Reel. (2 credits)
|
|
921
|
+
|
|
922
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
923
|
+
"""
|
|
924
|
+
return await self._t.get("/v1/instagram/transcript", {"url": url})
|
|
925
|
+
|
|
926
|
+
async def summarize(self, *, url: str) -> dict[str, Any]:
|
|
927
|
+
"""Instagram Summarizer — AI summary of an Instagram Reel. (4 credits)
|
|
928
|
+
|
|
929
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
930
|
+
"""
|
|
931
|
+
return await self._t.get("/v1/instagram/summarize", {"url": url})
|
|
932
|
+
|
|
933
|
+
async def details(self, *, url: str) -> dict[str, Any]:
|
|
934
|
+
"""Instagram Details — Details for an Instagram post or reel. (1 credit)
|
|
935
|
+
|
|
936
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
937
|
+
"""
|
|
938
|
+
return await self._t.get("/v1/instagram/details", {"url": url})
|
|
939
|
+
|
|
940
|
+
async def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
941
|
+
"""Instagram Comments — Comments on an Instagram post or reel. (45 credits)
|
|
942
|
+
|
|
943
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
944
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
945
|
+
"""
|
|
946
|
+
return await self._t.get("/v1/instagram/comments", {"url": url, "limit": limit})
|
|
947
|
+
|
|
948
|
+
async def channel_details(self, *, url: str) -> dict[str, Any]:
|
|
949
|
+
"""Instagram Channel Details — Profile info & stats for an Instagram account. (1 credit)
|
|
950
|
+
|
|
951
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
952
|
+
"""
|
|
953
|
+
return await self._t.get("/v1/instagram/channel-details", {"url": url})
|
|
954
|
+
|
|
955
|
+
async def channel_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
956
|
+
"""Instagram Channel Posts — Latest posts from an Instagram profile. (12 credits)
|
|
957
|
+
|
|
958
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
959
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
960
|
+
"""
|
|
961
|
+
return await self._t.get("/v1/instagram/channel-posts", {"url": url, "limit": limit})
|
|
962
|
+
|
|
963
|
+
async def channel_reels(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
964
|
+
"""Instagram Channel Reels — Latest Reels from an Instagram profile. (12 credits)
|
|
965
|
+
|
|
966
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
967
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
968
|
+
"""
|
|
969
|
+
return await self._t.get("/v1/instagram/channel-reels", {"url": url, "limit": limit})
|
|
970
|
+
|
|
971
|
+
async def reels_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
972
|
+
"""Instagram Reels Search — Search Instagram Reels by hashtag/keyword. (12 credits)
|
|
973
|
+
|
|
974
|
+
:param q: Hashtag (without #) or keyword (min 2 chars).
|
|
975
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
976
|
+
"""
|
|
977
|
+
return await self._t.get("/v1/instagram/reels-search", {"q": q, "limit": limit})
|
|
978
|
+
|
|
979
|
+
async def trending_reels(self, *, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
980
|
+
"""Instagram Trending Reels — Trending Instagram Reels / Explore posts by country. (28 credits)
|
|
981
|
+
|
|
982
|
+
:param country: Country name for Explore localization. Default United States.
|
|
983
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
984
|
+
"""
|
|
985
|
+
return await self._t.get("/v1/instagram/trending-reels", {"country": country, "limit": limit})
|
|
986
|
+
|
|
987
|
+
async def video_download(self, *, url: str) -> dict[str, Any]:
|
|
988
|
+
"""Instagram Video Download — Direct video URL for an Instagram Reel. (3 credits)
|
|
989
|
+
|
|
990
|
+
:param url: Instagram Reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
991
|
+
"""
|
|
992
|
+
return await self._t.get("/v1/instagram/video-download", {"url": url})
|
|
993
|
+
|
|
994
|
+
async def tagged_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
995
|
+
"""Instagram Tagged Posts — Posts an Instagram user is tagged in. (18 credits)
|
|
996
|
+
|
|
997
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
998
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
999
|
+
"""
|
|
1000
|
+
return await self._t.get("/v1/instagram/tagged-posts", {"url": url, "limit": limit})
|
|
1001
|
+
|
|
1002
|
+
async def music_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1003
|
+
"""Instagram Music Posts — Posts/Reels using an Instagram audio. (18 credits)
|
|
1004
|
+
|
|
1005
|
+
:param url: Instagram audio/music page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1006
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1007
|
+
"""
|
|
1008
|
+
return await self._t.get("/v1/instagram/music-posts", {"url": url, "limit": limit})
|
|
1009
|
+
|
|
1010
|
+
async def reels_by_audio_id(self, *, audio_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
1011
|
+
"""Instagram Reels By Audio ID — Posts/Reels using an Instagram audio ID. (28 credits)
|
|
1012
|
+
|
|
1013
|
+
:param audio_id: Instagram audio/music ID or full audio URL.
|
|
1014
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1015
|
+
"""
|
|
1016
|
+
return await self._t.get("/v1/instagram/reels-by-audio-id", {"audio_id": audio_id, "limit": limit})
|
|
1017
|
+
|
|
1018
|
+
async def hashtag_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1019
|
+
"""Instagram Hashtag Search — Search Instagram posts by hashtag. (12 credits)
|
|
1020
|
+
|
|
1021
|
+
:param q: Hashtag without the # (min 2 chars).
|
|
1022
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1023
|
+
"""
|
|
1024
|
+
return await self._t.get("/v1/instagram/hashtag-search", {"q": q, "limit": limit})
|
|
1025
|
+
|
|
1026
|
+
async def profile_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1027
|
+
"""Instagram Profile Search — Search Instagram profiles by keyword. (12 credits)
|
|
1028
|
+
|
|
1029
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1030
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1031
|
+
"""
|
|
1032
|
+
return await self._t.get("/v1/instagram/profile-search", {"q": q, "limit": limit})
|
|
1033
|
+
|
|
1034
|
+
async def story_highlights(self, *, url: str) -> dict[str, Any]:
|
|
1035
|
+
"""Instagram Story Highlights — List a profile's story highlight covers. (5 credits)
|
|
1036
|
+
|
|
1037
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1038
|
+
"""
|
|
1039
|
+
return await self._t.get("/v1/instagram/story-highlights", {"url": url})
|
|
1040
|
+
|
|
1041
|
+
async def highlights_details(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1042
|
+
"""Instagram Highlights Details — Items inside a profile's story highlights. (9 credits)
|
|
1043
|
+
|
|
1044
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1045
|
+
:param limit: Max highlights to expand. Default 10, max 50.
|
|
1046
|
+
"""
|
|
1047
|
+
return await self._t.get("/v1/instagram/highlights-details", {"url": url, "limit": limit})
|
|
1048
|
+
|
|
1049
|
+
async def embed(self, *, url: str) -> dict[str, Any]:
|
|
1050
|
+
"""Instagram Embed — Embed HTML for an Instagram post/reel. (1 credit)
|
|
1051
|
+
|
|
1052
|
+
:param url: Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1053
|
+
"""
|
|
1054
|
+
return await self._t.get("/v1/instagram/embed", {"url": url})
|
|
1055
|
+
|
|
1056
|
+
async def basic_profile(self, *, url: str) -> dict[str, Any]:
|
|
1057
|
+
"""Instagram Basic Profile — Lightweight Instagram profile lookup (core fields). (1 credit)
|
|
1058
|
+
|
|
1059
|
+
:param url: Instagram profile URL, e.g. https://instagram.com/username/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1060
|
+
"""
|
|
1061
|
+
return await self._t.get("/v1/instagram/basic-profile", {"url": url})
|
|
1062
|
+
|
|
1063
|
+
|
|
1064
|
+
class FacebookApi:
|
|
1065
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1066
|
+
self._t = transport
|
|
1067
|
+
|
|
1068
|
+
def details(self, *, url: str) -> dict[str, Any]:
|
|
1069
|
+
"""Facebook Details — Details for a Facebook video or post. (1 credit)
|
|
1070
|
+
|
|
1071
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1072
|
+
"""
|
|
1073
|
+
return self._t.get("/v1/facebook/details", {"url": url})
|
|
1074
|
+
|
|
1075
|
+
def transcript(self, *, url: str) -> dict[str, Any]:
|
|
1076
|
+
"""Facebook Transcript — Transcript of a Facebook video. (2 credits)
|
|
1077
|
+
|
|
1078
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1079
|
+
"""
|
|
1080
|
+
return self._t.get("/v1/facebook/transcript", {"url": url})
|
|
1081
|
+
|
|
1082
|
+
def summarize(self, *, url: str) -> dict[str, Any]:
|
|
1083
|
+
"""Facebook Summarizer — AI summary of a Facebook video or post. (4 credits)
|
|
1084
|
+
|
|
1085
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1086
|
+
"""
|
|
1087
|
+
return self._t.get("/v1/facebook/summarize", {"url": url})
|
|
1088
|
+
|
|
1089
|
+
def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1090
|
+
"""Facebook Comments — Comments on a Facebook post. (30 credits)
|
|
1091
|
+
|
|
1092
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1093
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1094
|
+
"""
|
|
1095
|
+
return self._t.get("/v1/facebook/comments", {"url": url, "limit": limit})
|
|
1096
|
+
|
|
1097
|
+
def page_details(self, *, url: str) -> dict[str, Any]:
|
|
1098
|
+
"""Facebook Page Details — Info & stats for a Facebook page. (1 credit)
|
|
1099
|
+
|
|
1100
|
+
:param url: Facebook page URL, e.g. https://facebook.com/PageName. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1101
|
+
"""
|
|
1102
|
+
return self._t.get("/v1/facebook/page-details", {"url": url})
|
|
1103
|
+
|
|
1104
|
+
def profile_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1105
|
+
"""Facebook Profile Posts — Latest posts from a Facebook profile/page. (12 credits)
|
|
1106
|
+
|
|
1107
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1108
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1109
|
+
"""
|
|
1110
|
+
return self._t.get("/v1/facebook/profile-posts", {"url": url, "limit": limit})
|
|
1111
|
+
|
|
1112
|
+
def profile_reels(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1113
|
+
"""Facebook Profile Reels — Latest Reels from a Facebook profile/page. (36 credits)
|
|
1114
|
+
|
|
1115
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1116
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1117
|
+
"""
|
|
1118
|
+
return self._t.get("/v1/facebook/profile-reels", {"url": url, "limit": limit})
|
|
1119
|
+
|
|
1120
|
+
def group_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1121
|
+
"""Facebook Group Posts — Posts from a public Facebook group. (12 credits)
|
|
1122
|
+
|
|
1123
|
+
:param url: Public Facebook group URL, e.g. https://facebook.com/groups/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1124
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1125
|
+
"""
|
|
1126
|
+
return self._t.get("/v1/facebook/group-posts", {"url": url, "limit": limit})
|
|
1127
|
+
|
|
1128
|
+
def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
1129
|
+
"""Facebook Comment Replies — Replies to a specific Facebook comment. (30 credits)
|
|
1130
|
+
|
|
1131
|
+
:param url: Facebook post URL the comment belongs to. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1132
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
1133
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1134
|
+
"""
|
|
1135
|
+
return self._t.get("/v1/facebook/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
1136
|
+
|
|
1137
|
+
def marketplace_search(self, *, q: str, location: str, limit: float | None = None, details: str | None = None) -> dict[str, Any]:
|
|
1138
|
+
"""Facebook Marketplace Search — Search Facebook Marketplace listings by keyword and location. (28 credits)
|
|
1139
|
+
|
|
1140
|
+
:param q: Product or keyword to search for (min 2 chars).
|
|
1141
|
+
:param location: City or place name, e.g. 'Austin, TX'.
|
|
1142
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1143
|
+
:param details: Set true to fetch full description, photos and coordinates per listing (slower, costs more).
|
|
1144
|
+
"""
|
|
1145
|
+
return self._t.get("/v1/facebook/marketplace-search", {"q": q, "location": location, "limit": limit, "details": details})
|
|
1146
|
+
|
|
1147
|
+
def marketplace_location_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1148
|
+
"""Facebook Marketplace Location Search — Find Facebook Marketplace location candidates for a city or place query. (17 credits)
|
|
1149
|
+
|
|
1150
|
+
:param q: City/place search query, e.g. Austin.
|
|
1151
|
+
:param limit: Max items to return. Default 10, max 50. Billed per result.
|
|
1152
|
+
"""
|
|
1153
|
+
return self._t.get("/v1/facebook/marketplace-location-search", {"q": q, "limit": limit})
|
|
1154
|
+
|
|
1155
|
+
def event_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1156
|
+
"""Facebook Event Search — Search Facebook events by topic and/or location. (40 credits)
|
|
1157
|
+
|
|
1158
|
+
:param q: Topic and/or place, e.g. 'comedy Chicago' (min 2 chars).
|
|
1159
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1160
|
+
"""
|
|
1161
|
+
return self._t.get("/v1/facebook/event-search", {"q": q, "limit": limit})
|
|
1162
|
+
|
|
1163
|
+
def event_details(self, *, url: str) -> dict[str, Any]:
|
|
1164
|
+
"""Facebook Event Details — Details for a Facebook event (date, location, attendees, tickets). (2 credits)
|
|
1165
|
+
|
|
1166
|
+
:param url: Facebook event URL, e.g. https://facebook.com/events/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1167
|
+
"""
|
|
1168
|
+
return self._t.get("/v1/facebook/event-details", {"url": url})
|
|
1169
|
+
|
|
1170
|
+
def profile_photos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1171
|
+
"""Facebook Profile Photos — Photos from a Facebook profile or page. (12 credits)
|
|
1172
|
+
|
|
1173
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1174
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1175
|
+
"""
|
|
1176
|
+
return self._t.get("/v1/facebook/profile-photos", {"url": url, "limit": limit})
|
|
1177
|
+
|
|
1178
|
+
def profile_events(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1179
|
+
"""Facebook Profile Events — Events from a Facebook profile or page. (40 credits)
|
|
1180
|
+
|
|
1181
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1182
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1183
|
+
"""
|
|
1184
|
+
return self._t.get("/v1/facebook/profile-events", {"url": url, "limit": limit})
|
|
1185
|
+
|
|
1186
|
+
def marketplace_item(self, *, url: str) -> dict[str, Any]:
|
|
1187
|
+
"""Facebook Marketplace Item — Details for a single Facebook Marketplace listing. (17 credits)
|
|
1188
|
+
|
|
1189
|
+
:param url: Facebook Marketplace item URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1190
|
+
"""
|
|
1191
|
+
return self._t.get("/v1/facebook/marketplace-item", {"url": url})
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
class AsyncFacebookApi:
|
|
1195
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1196
|
+
self._t = transport
|
|
1197
|
+
|
|
1198
|
+
async def details(self, *, url: str) -> dict[str, Any]:
|
|
1199
|
+
"""Facebook Details — Details for a Facebook video or post. (1 credit)
|
|
1200
|
+
|
|
1201
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1202
|
+
"""
|
|
1203
|
+
return await self._t.get("/v1/facebook/details", {"url": url})
|
|
1204
|
+
|
|
1205
|
+
async def transcript(self, *, url: str) -> dict[str, Any]:
|
|
1206
|
+
"""Facebook Transcript — Transcript of a Facebook video. (2 credits)
|
|
1207
|
+
|
|
1208
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1209
|
+
"""
|
|
1210
|
+
return await self._t.get("/v1/facebook/transcript", {"url": url})
|
|
1211
|
+
|
|
1212
|
+
async def summarize(self, *, url: str) -> dict[str, Any]:
|
|
1213
|
+
"""Facebook Summarizer — AI summary of a Facebook video or post. (4 credits)
|
|
1214
|
+
|
|
1215
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1216
|
+
"""
|
|
1217
|
+
return await self._t.get("/v1/facebook/summarize", {"url": url})
|
|
1218
|
+
|
|
1219
|
+
async def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1220
|
+
"""Facebook Comments — Comments on a Facebook post. (30 credits)
|
|
1221
|
+
|
|
1222
|
+
:param url: Public Facebook video or post URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1223
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1224
|
+
"""
|
|
1225
|
+
return await self._t.get("/v1/facebook/comments", {"url": url, "limit": limit})
|
|
1226
|
+
|
|
1227
|
+
async def page_details(self, *, url: str) -> dict[str, Any]:
|
|
1228
|
+
"""Facebook Page Details — Info & stats for a Facebook page. (1 credit)
|
|
1229
|
+
|
|
1230
|
+
:param url: Facebook page URL, e.g. https://facebook.com/PageName. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1231
|
+
"""
|
|
1232
|
+
return await self._t.get("/v1/facebook/page-details", {"url": url})
|
|
1233
|
+
|
|
1234
|
+
async def profile_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1235
|
+
"""Facebook Profile Posts — Latest posts from a Facebook profile/page. (12 credits)
|
|
1236
|
+
|
|
1237
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1238
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1239
|
+
"""
|
|
1240
|
+
return await self._t.get("/v1/facebook/profile-posts", {"url": url, "limit": limit})
|
|
1241
|
+
|
|
1242
|
+
async def profile_reels(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1243
|
+
"""Facebook Profile Reels — Latest Reels from a Facebook profile/page. (36 credits)
|
|
1244
|
+
|
|
1245
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1246
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1247
|
+
"""
|
|
1248
|
+
return await self._t.get("/v1/facebook/profile-reels", {"url": url, "limit": limit})
|
|
1249
|
+
|
|
1250
|
+
async def group_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1251
|
+
"""Facebook Group Posts — Posts from a public Facebook group. (12 credits)
|
|
1252
|
+
|
|
1253
|
+
:param url: Public Facebook group URL, e.g. https://facebook.com/groups/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1254
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1255
|
+
"""
|
|
1256
|
+
return await self._t.get("/v1/facebook/group-posts", {"url": url, "limit": limit})
|
|
1257
|
+
|
|
1258
|
+
async def comment_replies(self, *, url: str, comment_id: str, limit: float | None = None) -> dict[str, Any]:
|
|
1259
|
+
"""Facebook Comment Replies — Replies to a specific Facebook comment. (30 credits)
|
|
1260
|
+
|
|
1261
|
+
:param url: Facebook post URL the comment belongs to. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1262
|
+
:param comment_id: ID of the parent comment to fetch replies for (from the comments endpoint).
|
|
1263
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1264
|
+
"""
|
|
1265
|
+
return await self._t.get("/v1/facebook/comment-replies", {"url": url, "comment_id": comment_id, "limit": limit})
|
|
1266
|
+
|
|
1267
|
+
async def marketplace_search(self, *, q: str, location: str, limit: float | None = None, details: str | None = None) -> dict[str, Any]:
|
|
1268
|
+
"""Facebook Marketplace Search — Search Facebook Marketplace listings by keyword and location. (28 credits)
|
|
1269
|
+
|
|
1270
|
+
:param q: Product or keyword to search for (min 2 chars).
|
|
1271
|
+
:param location: City or place name, e.g. 'Austin, TX'.
|
|
1272
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1273
|
+
:param details: Set true to fetch full description, photos and coordinates per listing (slower, costs more).
|
|
1274
|
+
"""
|
|
1275
|
+
return await self._t.get("/v1/facebook/marketplace-search", {"q": q, "location": location, "limit": limit, "details": details})
|
|
1276
|
+
|
|
1277
|
+
async def marketplace_location_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1278
|
+
"""Facebook Marketplace Location Search — Find Facebook Marketplace location candidates for a city or place query. (17 credits)
|
|
1279
|
+
|
|
1280
|
+
:param q: City/place search query, e.g. Austin.
|
|
1281
|
+
:param limit: Max items to return. Default 10, max 50. Billed per result.
|
|
1282
|
+
"""
|
|
1283
|
+
return await self._t.get("/v1/facebook/marketplace-location-search", {"q": q, "limit": limit})
|
|
1284
|
+
|
|
1285
|
+
async def event_search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1286
|
+
"""Facebook Event Search — Search Facebook events by topic and/or location. (40 credits)
|
|
1287
|
+
|
|
1288
|
+
:param q: Topic and/or place, e.g. 'comedy Chicago' (min 2 chars).
|
|
1289
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1290
|
+
"""
|
|
1291
|
+
return await self._t.get("/v1/facebook/event-search", {"q": q, "limit": limit})
|
|
1292
|
+
|
|
1293
|
+
async def event_details(self, *, url: str) -> dict[str, Any]:
|
|
1294
|
+
"""Facebook Event Details — Details for a Facebook event (date, location, attendees, tickets). (2 credits)
|
|
1295
|
+
|
|
1296
|
+
:param url: Facebook event URL, e.g. https://facebook.com/events/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1297
|
+
"""
|
|
1298
|
+
return await self._t.get("/v1/facebook/event-details", {"url": url})
|
|
1299
|
+
|
|
1300
|
+
async def profile_photos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1301
|
+
"""Facebook Profile Photos — Photos from a Facebook profile or page. (12 credits)
|
|
1302
|
+
|
|
1303
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1304
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1305
|
+
"""
|
|
1306
|
+
return await self._t.get("/v1/facebook/profile-photos", {"url": url, "limit": limit})
|
|
1307
|
+
|
|
1308
|
+
async def profile_events(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1309
|
+
"""Facebook Profile Events — Events from a Facebook profile or page. (40 credits)
|
|
1310
|
+
|
|
1311
|
+
:param url: Facebook profile or page URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1312
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1313
|
+
"""
|
|
1314
|
+
return await self._t.get("/v1/facebook/profile-events", {"url": url, "limit": limit})
|
|
1315
|
+
|
|
1316
|
+
async def marketplace_item(self, *, url: str) -> dict[str, Any]:
|
|
1317
|
+
"""Facebook Marketplace Item — Details for a single Facebook Marketplace listing. (17 credits)
|
|
1318
|
+
|
|
1319
|
+
:param url: Facebook Marketplace item URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1320
|
+
"""
|
|
1321
|
+
return await self._t.get("/v1/facebook/marketplace-item", {"url": url})
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
class TwitterApi:
|
|
1325
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1326
|
+
self._t = transport
|
|
1327
|
+
|
|
1328
|
+
def tweet_details(self, *, url: str) -> dict[str, Any]:
|
|
1329
|
+
"""Twitter/X Tweet Details — Metadata + engagement stats for a tweet. (1 credit)
|
|
1330
|
+
|
|
1331
|
+
:param url: Public tweet URL, e.g. https://x.com/user/status/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1332
|
+
"""
|
|
1333
|
+
return self._t.get("/v1/twitter/tweet-details", {"url": url})
|
|
1334
|
+
|
|
1335
|
+
def transcript(self, *, url: str) -> dict[str, Any]:
|
|
1336
|
+
"""Twitter/X Transcript — Extract tweet text as transcript text. (7 credits)
|
|
1337
|
+
|
|
1338
|
+
:param url: Public tweet URL, e.g. https://x.com/user/status/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1339
|
+
"""
|
|
1340
|
+
return self._t.get("/v1/twitter/transcript", {"url": url})
|
|
1341
|
+
|
|
1342
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
1343
|
+
"""Twitter/X Profile — Profile info & stats for a Twitter/X account. (1 credit)
|
|
1344
|
+
|
|
1345
|
+
:param url: Twitter/X profile URL or @handle, e.g. https://x.com/username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1346
|
+
"""
|
|
1347
|
+
return self._t.get("/v1/twitter/profile", {"url": url})
|
|
1348
|
+
|
|
1349
|
+
def user_tweets(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1350
|
+
"""Twitter/X User Tweets — Recent tweets from a Twitter/X profile. (14 credits)
|
|
1351
|
+
|
|
1352
|
+
:param url: Twitter/X profile URL or @handle, e.g. https://x.com/username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1353
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1354
|
+
"""
|
|
1355
|
+
return self._t.get("/v1/twitter/user-tweets", {"url": url, "limit": limit})
|
|
1356
|
+
|
|
1357
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1358
|
+
"""Twitter/X Search — Search tweets by keyword. (14 credits)
|
|
1359
|
+
|
|
1360
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1361
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1362
|
+
"""
|
|
1363
|
+
return self._t.get("/v1/twitter/search", {"q": q, "limit": limit})
|
|
1364
|
+
|
|
1365
|
+
def community(self, *, url: str) -> dict[str, Any]:
|
|
1366
|
+
"""Twitter/X Community — Details for an X (Twitter) community. (1 credit)
|
|
1367
|
+
|
|
1368
|
+
:param url: X community URL (x.com/i/communities/ID) or community ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1369
|
+
"""
|
|
1370
|
+
return self._t.get("/v1/twitter/community", {"url": url})
|
|
1371
|
+
|
|
1372
|
+
def community_tweets(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1373
|
+
"""Twitter/X Community Tweets — Tweets posted in an X community. (18 credits)
|
|
1374
|
+
|
|
1375
|
+
:param url: X community URL (x.com/i/communities/ID) or community ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1376
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1377
|
+
"""
|
|
1378
|
+
return self._t.get("/v1/twitter/community-tweets", {"url": url, "limit": limit})
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
class AsyncTwitterApi:
|
|
1382
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1383
|
+
self._t = transport
|
|
1384
|
+
|
|
1385
|
+
async def tweet_details(self, *, url: str) -> dict[str, Any]:
|
|
1386
|
+
"""Twitter/X Tweet Details — Metadata + engagement stats for a tweet. (1 credit)
|
|
1387
|
+
|
|
1388
|
+
:param url: Public tweet URL, e.g. https://x.com/user/status/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1389
|
+
"""
|
|
1390
|
+
return await self._t.get("/v1/twitter/tweet-details", {"url": url})
|
|
1391
|
+
|
|
1392
|
+
async def transcript(self, *, url: str) -> dict[str, Any]:
|
|
1393
|
+
"""Twitter/X Transcript — Extract tweet text as transcript text. (7 credits)
|
|
1394
|
+
|
|
1395
|
+
:param url: Public tweet URL, e.g. https://x.com/user/status/ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1396
|
+
"""
|
|
1397
|
+
return await self._t.get("/v1/twitter/transcript", {"url": url})
|
|
1398
|
+
|
|
1399
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
1400
|
+
"""Twitter/X Profile — Profile info & stats for a Twitter/X account. (1 credit)
|
|
1401
|
+
|
|
1402
|
+
:param url: Twitter/X profile URL or @handle, e.g. https://x.com/username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1403
|
+
"""
|
|
1404
|
+
return await self._t.get("/v1/twitter/profile", {"url": url})
|
|
1405
|
+
|
|
1406
|
+
async def user_tweets(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1407
|
+
"""Twitter/X User Tweets — Recent tweets from a Twitter/X profile. (14 credits)
|
|
1408
|
+
|
|
1409
|
+
:param url: Twitter/X profile URL or @handle, e.g. https://x.com/username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1410
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1411
|
+
"""
|
|
1412
|
+
return await self._t.get("/v1/twitter/user-tweets", {"url": url, "limit": limit})
|
|
1413
|
+
|
|
1414
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1415
|
+
"""Twitter/X Search — Search tweets by keyword. (14 credits)
|
|
1416
|
+
|
|
1417
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1418
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1419
|
+
"""
|
|
1420
|
+
return await self._t.get("/v1/twitter/search", {"q": q, "limit": limit})
|
|
1421
|
+
|
|
1422
|
+
async def community(self, *, url: str) -> dict[str, Any]:
|
|
1423
|
+
"""Twitter/X Community — Details for an X (Twitter) community. (1 credit)
|
|
1424
|
+
|
|
1425
|
+
:param url: X community URL (x.com/i/communities/ID) or community ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1426
|
+
"""
|
|
1427
|
+
return await self._t.get("/v1/twitter/community", {"url": url})
|
|
1428
|
+
|
|
1429
|
+
async def community_tweets(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1430
|
+
"""Twitter/X Community Tweets — Tweets posted in an X community. (18 credits)
|
|
1431
|
+
|
|
1432
|
+
:param url: X community URL (x.com/i/communities/ID) or community ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1433
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1434
|
+
"""
|
|
1435
|
+
return await self._t.get("/v1/twitter/community-tweets", {"url": url, "limit": limit})
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
class RedditApi:
|
|
1439
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1440
|
+
self._t = transport
|
|
1441
|
+
|
|
1442
|
+
def subreddit_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1443
|
+
"""Reddit Subreddit Posts — Recent posts in a subreddit. (10 credits)
|
|
1444
|
+
|
|
1445
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1446
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1447
|
+
"""
|
|
1448
|
+
return self._t.get("/v1/reddit/subreddit-posts", {"url": url, "limit": limit})
|
|
1449
|
+
|
|
1450
|
+
def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1451
|
+
"""Reddit Post Details — Metadata + stats for a Reddit post. (1 credit)
|
|
1452
|
+
|
|
1453
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1454
|
+
"""
|
|
1455
|
+
return self._t.get("/v1/reddit/post-details", {"url": url})
|
|
1456
|
+
|
|
1457
|
+
def post_comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1458
|
+
"""Reddit Post Comments — Comments on a Reddit post. (20 credits)
|
|
1459
|
+
|
|
1460
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1461
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1462
|
+
"""
|
|
1463
|
+
return self._t.get("/v1/reddit/post-comments", {"url": url, "limit": limit})
|
|
1464
|
+
|
|
1465
|
+
def post_transcript(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1466
|
+
"""Reddit Post Transcript — Extract Reddit post text and top comments as a discussion transcript. (20 credits)
|
|
1467
|
+
|
|
1468
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1469
|
+
:param limit: Max items to return. Default 50, max 200. Billed per result.
|
|
1470
|
+
"""
|
|
1471
|
+
return self._t.get("/v1/reddit/post-transcript", {"url": url, "limit": limit})
|
|
1472
|
+
|
|
1473
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1474
|
+
"""Reddit Search — Search Reddit posts by keyword. (10 credits)
|
|
1475
|
+
|
|
1476
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1477
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1478
|
+
"""
|
|
1479
|
+
return self._t.get("/v1/reddit/search", {"q": q, "limit": limit})
|
|
1480
|
+
|
|
1481
|
+
def subreddit_details(self, *, url: str) -> dict[str, Any]:
|
|
1482
|
+
"""Reddit Subreddit Details — Info & member stats for a subreddit. (1 credit)
|
|
1483
|
+
|
|
1484
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1485
|
+
"""
|
|
1486
|
+
return self._t.get("/v1/reddit/subreddit-details", {"url": url})
|
|
1487
|
+
|
|
1488
|
+
def subreddit_search(self, *, url: str, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1489
|
+
"""Reddit Subreddit Search — Search posts within a specific subreddit. (10 credits)
|
|
1490
|
+
|
|
1491
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1492
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1493
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1494
|
+
"""
|
|
1495
|
+
return self._t.get("/v1/reddit/subreddit-search", {"url": url, "q": q, "limit": limit})
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
class AsyncRedditApi:
|
|
1499
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1500
|
+
self._t = transport
|
|
1501
|
+
|
|
1502
|
+
async def subreddit_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1503
|
+
"""Reddit Subreddit Posts — Recent posts in a subreddit. (10 credits)
|
|
1504
|
+
|
|
1505
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1506
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1507
|
+
"""
|
|
1508
|
+
return await self._t.get("/v1/reddit/subreddit-posts", {"url": url, "limit": limit})
|
|
1509
|
+
|
|
1510
|
+
async def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1511
|
+
"""Reddit Post Details — Metadata + stats for a Reddit post. (1 credit)
|
|
1512
|
+
|
|
1513
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1514
|
+
"""
|
|
1515
|
+
return await self._t.get("/v1/reddit/post-details", {"url": url})
|
|
1516
|
+
|
|
1517
|
+
async def post_comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1518
|
+
"""Reddit Post Comments — Comments on a Reddit post. (20 credits)
|
|
1519
|
+
|
|
1520
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1521
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1522
|
+
"""
|
|
1523
|
+
return await self._t.get("/v1/reddit/post-comments", {"url": url, "limit": limit})
|
|
1524
|
+
|
|
1525
|
+
async def post_transcript(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1526
|
+
"""Reddit Post Transcript — Extract Reddit post text and top comments as a discussion transcript. (20 credits)
|
|
1527
|
+
|
|
1528
|
+
:param url: Reddit post URL, e.g. https://reddit.com/r/sub/comments/ID/... The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1529
|
+
:param limit: Max items to return. Default 50, max 200. Billed per result.
|
|
1530
|
+
"""
|
|
1531
|
+
return await self._t.get("/v1/reddit/post-transcript", {"url": url, "limit": limit})
|
|
1532
|
+
|
|
1533
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1534
|
+
"""Reddit Search — Search Reddit posts by keyword. (10 credits)
|
|
1535
|
+
|
|
1536
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1537
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1538
|
+
"""
|
|
1539
|
+
return await self._t.get("/v1/reddit/search", {"q": q, "limit": limit})
|
|
1540
|
+
|
|
1541
|
+
async def subreddit_details(self, *, url: str) -> dict[str, Any]:
|
|
1542
|
+
"""Reddit Subreddit Details — Info & member stats for a subreddit. (1 credit)
|
|
1543
|
+
|
|
1544
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1545
|
+
"""
|
|
1546
|
+
return await self._t.get("/v1/reddit/subreddit-details", {"url": url})
|
|
1547
|
+
|
|
1548
|
+
async def subreddit_search(self, *, url: str, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1549
|
+
"""Reddit Subreddit Search — Search posts within a specific subreddit. (10 credits)
|
|
1550
|
+
|
|
1551
|
+
:param url: Subreddit URL, r/name, or bare name, e.g. r/technology. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1552
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1553
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1554
|
+
"""
|
|
1555
|
+
return await self._t.get("/v1/reddit/subreddit-search", {"url": url, "q": q, "limit": limit})
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
class ThreadsApi:
|
|
1559
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1560
|
+
self._t = transport
|
|
1561
|
+
|
|
1562
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
1563
|
+
"""Threads Profile — Profile info & stats for a Threads account. (1 credit)
|
|
1564
|
+
|
|
1565
|
+
:param url: Threads profile URL or @handle, e.g. https://threads.net/@username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1566
|
+
"""
|
|
1567
|
+
return self._t.get("/v1/threads/profile", {"url": url})
|
|
1568
|
+
|
|
1569
|
+
def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1570
|
+
"""Threads User Posts — Recent posts from a Threads profile. (14 credits)
|
|
1571
|
+
|
|
1572
|
+
:param url: Threads profile URL or @handle, e.g. https://threads.net/@username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1573
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1574
|
+
"""
|
|
1575
|
+
return self._t.get("/v1/threads/user-posts", {"url": url, "limit": limit})
|
|
1576
|
+
|
|
1577
|
+
def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1578
|
+
"""Threads Post Details — Metadata + engagement for a Threads post. (1 credit)
|
|
1579
|
+
|
|
1580
|
+
:param url: Threads post URL, e.g. https://threads.net/@user/post/CODE. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1581
|
+
"""
|
|
1582
|
+
return self._t.get("/v1/threads/post-details", {"url": url})
|
|
1583
|
+
|
|
1584
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1585
|
+
"""Threads Search — Search Threads posts by keyword. (18 credits)
|
|
1586
|
+
|
|
1587
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1588
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1589
|
+
"""
|
|
1590
|
+
return self._t.get("/v1/threads/search", {"q": q, "limit": limit})
|
|
1591
|
+
|
|
1592
|
+
def search_users(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1593
|
+
"""Threads Search Users — Find Threads users matching a keyword. (14 credits)
|
|
1594
|
+
|
|
1595
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1596
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1597
|
+
"""
|
|
1598
|
+
return self._t.get("/v1/threads/search-users", {"q": q, "limit": limit})
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
class AsyncThreadsApi:
|
|
1602
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1603
|
+
self._t = transport
|
|
1604
|
+
|
|
1605
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
1606
|
+
"""Threads Profile — Profile info & stats for a Threads account. (1 credit)
|
|
1607
|
+
|
|
1608
|
+
:param url: Threads profile URL or @handle, e.g. https://threads.net/@username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1609
|
+
"""
|
|
1610
|
+
return await self._t.get("/v1/threads/profile", {"url": url})
|
|
1611
|
+
|
|
1612
|
+
async def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1613
|
+
"""Threads User Posts — Recent posts from a Threads profile. (14 credits)
|
|
1614
|
+
|
|
1615
|
+
:param url: Threads profile URL or @handle, e.g. https://threads.net/@username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1616
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1617
|
+
"""
|
|
1618
|
+
return await self._t.get("/v1/threads/user-posts", {"url": url, "limit": limit})
|
|
1619
|
+
|
|
1620
|
+
async def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1621
|
+
"""Threads Post Details — Metadata + engagement for a Threads post. (1 credit)
|
|
1622
|
+
|
|
1623
|
+
:param url: Threads post URL, e.g. https://threads.net/@user/post/CODE. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1624
|
+
"""
|
|
1625
|
+
return await self._t.get("/v1/threads/post-details", {"url": url})
|
|
1626
|
+
|
|
1627
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1628
|
+
"""Threads Search — Search Threads posts by keyword. (18 credits)
|
|
1629
|
+
|
|
1630
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1631
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1632
|
+
"""
|
|
1633
|
+
return await self._t.get("/v1/threads/search", {"q": q, "limit": limit})
|
|
1634
|
+
|
|
1635
|
+
async def search_users(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1636
|
+
"""Threads Search Users — Find Threads users matching a keyword. (14 credits)
|
|
1637
|
+
|
|
1638
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1639
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1640
|
+
"""
|
|
1641
|
+
return await self._t.get("/v1/threads/search-users", {"q": q, "limit": limit})
|
|
1642
|
+
|
|
1643
|
+
|
|
1644
|
+
class BlueskyApi:
|
|
1645
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1646
|
+
self._t = transport
|
|
1647
|
+
|
|
1648
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
1649
|
+
"""Bluesky Profile — Profile info & stats for a Bluesky account. (1 credit)
|
|
1650
|
+
|
|
1651
|
+
:param url: Bluesky profile URL, @handle, or handle, e.g. bsky.app/profile/handle. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1652
|
+
"""
|
|
1653
|
+
return self._t.get("/v1/bluesky/profile", {"url": url})
|
|
1654
|
+
|
|
1655
|
+
def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1656
|
+
"""Bluesky User Posts — Recent posts from a Bluesky profile. (3 credits)
|
|
1657
|
+
|
|
1658
|
+
:param url: Bluesky profile URL, @handle, or handle, e.g. bsky.app/profile/handle. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1659
|
+
:param limit: Max items to return. Default 25, max 100. Billed per result.
|
|
1660
|
+
"""
|
|
1661
|
+
return self._t.get("/v1/bluesky/user-posts", {"url": url, "limit": limit})
|
|
1662
|
+
|
|
1663
|
+
def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1664
|
+
"""Bluesky Post Details — Metadata + engagement for a Bluesky post. (1 credit)
|
|
1665
|
+
|
|
1666
|
+
:param url: Bluesky post URL, e.g. https://bsky.app/profile/handle/post/RKEY. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1667
|
+
"""
|
|
1668
|
+
return self._t.get("/v1/bluesky/post-details", {"url": url})
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
class AsyncBlueskyApi:
|
|
1672
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1673
|
+
self._t = transport
|
|
1674
|
+
|
|
1675
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
1676
|
+
"""Bluesky Profile — Profile info & stats for a Bluesky account. (1 credit)
|
|
1677
|
+
|
|
1678
|
+
:param url: Bluesky profile URL, @handle, or handle, e.g. bsky.app/profile/handle. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1679
|
+
"""
|
|
1680
|
+
return await self._t.get("/v1/bluesky/profile", {"url": url})
|
|
1681
|
+
|
|
1682
|
+
async def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1683
|
+
"""Bluesky User Posts — Recent posts from a Bluesky profile. (3 credits)
|
|
1684
|
+
|
|
1685
|
+
:param url: Bluesky profile URL, @handle, or handle, e.g. bsky.app/profile/handle. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1686
|
+
:param limit: Max items to return. Default 25, max 100. Billed per result.
|
|
1687
|
+
"""
|
|
1688
|
+
return await self._t.get("/v1/bluesky/user-posts", {"url": url, "limit": limit})
|
|
1689
|
+
|
|
1690
|
+
async def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1691
|
+
"""Bluesky Post Details — Metadata + engagement for a Bluesky post. (1 credit)
|
|
1692
|
+
|
|
1693
|
+
:param url: Bluesky post URL, e.g. https://bsky.app/profile/handle/post/RKEY. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1694
|
+
"""
|
|
1695
|
+
return await self._t.get("/v1/bluesky/post-details", {"url": url})
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
class PinterestApi:
|
|
1699
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1700
|
+
self._t = transport
|
|
1701
|
+
|
|
1702
|
+
def pin_details(self, *, url: str) -> dict[str, Any]:
|
|
1703
|
+
"""Pinterest Pin Details — Metadata + saves for a Pinterest pin. (1 credit)
|
|
1704
|
+
|
|
1705
|
+
:param url: Pinterest pin URL, e.g. https://pinterest.com/pin/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1706
|
+
"""
|
|
1707
|
+
return self._t.get("/v1/pinterest/pin-details", {"url": url})
|
|
1708
|
+
|
|
1709
|
+
def user_pins(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1710
|
+
"""Pinterest User Pins — Pins from a Pinterest profile. (13 credits)
|
|
1711
|
+
|
|
1712
|
+
:param url: Pinterest profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1713
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1714
|
+
"""
|
|
1715
|
+
return self._t.get("/v1/pinterest/user-pins", {"url": url, "limit": limit})
|
|
1716
|
+
|
|
1717
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1718
|
+
"""Pinterest Search — Search Pinterest pins by keyword. (13 credits)
|
|
1719
|
+
|
|
1720
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1721
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1722
|
+
"""
|
|
1723
|
+
return self._t.get("/v1/pinterest/search", {"q": q, "limit": limit})
|
|
1724
|
+
|
|
1725
|
+
def board(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1726
|
+
"""Pinterest Board — List pins inside a Pinterest board. (13 credits)
|
|
1727
|
+
|
|
1728
|
+
:param url: Pinterest board URL, e.g. https://pinterest.com/username/board-name/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1729
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1730
|
+
"""
|
|
1731
|
+
return self._t.get("/v1/pinterest/board", {"url": url, "limit": limit})
|
|
1732
|
+
|
|
1733
|
+
def user_boards(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1734
|
+
"""Pinterest User Boards — List the boards on a Pinterest profile. (13 credits)
|
|
1735
|
+
|
|
1736
|
+
:param url: Pinterest profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1737
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1738
|
+
"""
|
|
1739
|
+
return self._t.get("/v1/pinterest/user-boards", {"url": url, "limit": limit})
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
class AsyncPinterestApi:
|
|
1743
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1744
|
+
self._t = transport
|
|
1745
|
+
|
|
1746
|
+
async def pin_details(self, *, url: str) -> dict[str, Any]:
|
|
1747
|
+
"""Pinterest Pin Details — Metadata + saves for a Pinterest pin. (1 credit)
|
|
1748
|
+
|
|
1749
|
+
:param url: Pinterest pin URL, e.g. https://pinterest.com/pin/ID/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1750
|
+
"""
|
|
1751
|
+
return await self._t.get("/v1/pinterest/pin-details", {"url": url})
|
|
1752
|
+
|
|
1753
|
+
async def user_pins(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1754
|
+
"""Pinterest User Pins — Pins from a Pinterest profile. (13 credits)
|
|
1755
|
+
|
|
1756
|
+
:param url: Pinterest profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1757
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1758
|
+
"""
|
|
1759
|
+
return await self._t.get("/v1/pinterest/user-pins", {"url": url, "limit": limit})
|
|
1760
|
+
|
|
1761
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1762
|
+
"""Pinterest Search — Search Pinterest pins by keyword. (13 credits)
|
|
1763
|
+
|
|
1764
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1765
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1766
|
+
"""
|
|
1767
|
+
return await self._t.get("/v1/pinterest/search", {"q": q, "limit": limit})
|
|
1768
|
+
|
|
1769
|
+
async def board(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1770
|
+
"""Pinterest Board — List pins inside a Pinterest board. (13 credits)
|
|
1771
|
+
|
|
1772
|
+
:param url: Pinterest board URL, e.g. https://pinterest.com/username/board-name/. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1773
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1774
|
+
"""
|
|
1775
|
+
return await self._t.get("/v1/pinterest/board", {"url": url, "limit": limit})
|
|
1776
|
+
|
|
1777
|
+
async def user_boards(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1778
|
+
"""Pinterest User Boards — List the boards on a Pinterest profile. (13 credits)
|
|
1779
|
+
|
|
1780
|
+
:param url: Pinterest profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1781
|
+
:param limit: Max items to return. Default 25, max 200. Billed per result.
|
|
1782
|
+
"""
|
|
1783
|
+
return await self._t.get("/v1/pinterest/user-boards", {"url": url, "limit": limit})
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
class LinkedinApi:
|
|
1787
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1788
|
+
self._t = transport
|
|
1789
|
+
|
|
1790
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
1791
|
+
"""LinkedIn Profile — Public LinkedIn person profile details. (2 credits)
|
|
1792
|
+
|
|
1793
|
+
:param url: LinkedIn profile URL, e.g. https://linkedin.com/in/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1794
|
+
"""
|
|
1795
|
+
return self._t.get("/v1/linkedin/profile", {"url": url})
|
|
1796
|
+
|
|
1797
|
+
def company(self, *, url: str) -> dict[str, Any]:
|
|
1798
|
+
"""LinkedIn Company — Public LinkedIn company page details. (2 credits)
|
|
1799
|
+
|
|
1800
|
+
:param url: LinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1801
|
+
"""
|
|
1802
|
+
return self._t.get("/v1/linkedin/company", {"url": url})
|
|
1803
|
+
|
|
1804
|
+
def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1805
|
+
"""LinkedIn Post Details — Metadata + engagement for a LinkedIn post. (1 credit)
|
|
1806
|
+
|
|
1807
|
+
:param url: LinkedIn post or activity URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1808
|
+
"""
|
|
1809
|
+
return self._t.get("/v1/linkedin/post-details", {"url": url})
|
|
1810
|
+
|
|
1811
|
+
def post_transcript(self, *, url: str) -> dict[str, Any]:
|
|
1812
|
+
"""LinkedIn Post Transcript — Extract post text as a transcript for a LinkedIn post. (7 credits)
|
|
1813
|
+
|
|
1814
|
+
:param url: LinkedIn post or activity URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1815
|
+
"""
|
|
1816
|
+
return self._t.get("/v1/linkedin/post-transcript", {"url": url})
|
|
1817
|
+
|
|
1818
|
+
def company_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1819
|
+
"""LinkedIn Company Posts — Recent public posts from a LinkedIn company page. (16 credits)
|
|
1820
|
+
|
|
1821
|
+
:param url: LinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1822
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1823
|
+
"""
|
|
1824
|
+
return self._t.get("/v1/linkedin/company-posts", {"url": url, "limit": limit})
|
|
1825
|
+
|
|
1826
|
+
def search_posts(self, *, q: str, sort: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
1827
|
+
"""LinkedIn Search Posts — Search public LinkedIn posts by keyword. (16 credits)
|
|
1828
|
+
|
|
1829
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1830
|
+
:param sort: relevance or date. Default relevance.
|
|
1831
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
1832
|
+
"""
|
|
1833
|
+
return self._t.get("/v1/linkedin/search-posts", {"q": q, "sort": sort, "limit": limit})
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
class AsyncLinkedinApi:
|
|
1837
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1838
|
+
self._t = transport
|
|
1839
|
+
|
|
1840
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
1841
|
+
"""LinkedIn Profile — Public LinkedIn person profile details. (2 credits)
|
|
1842
|
+
|
|
1843
|
+
:param url: LinkedIn profile URL, e.g. https://linkedin.com/in/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1844
|
+
"""
|
|
1845
|
+
return await self._t.get("/v1/linkedin/profile", {"url": url})
|
|
1846
|
+
|
|
1847
|
+
async def company(self, *, url: str) -> dict[str, Any]:
|
|
1848
|
+
"""LinkedIn Company — Public LinkedIn company page details. (2 credits)
|
|
1849
|
+
|
|
1850
|
+
:param url: LinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1851
|
+
"""
|
|
1852
|
+
return await self._t.get("/v1/linkedin/company", {"url": url})
|
|
1853
|
+
|
|
1854
|
+
async def post_details(self, *, url: str) -> dict[str, Any]:
|
|
1855
|
+
"""LinkedIn Post Details — Metadata + engagement for a LinkedIn post. (1 credit)
|
|
1856
|
+
|
|
1857
|
+
:param url: LinkedIn post or activity URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1858
|
+
"""
|
|
1859
|
+
return await self._t.get("/v1/linkedin/post-details", {"url": url})
|
|
1860
|
+
|
|
1861
|
+
async def post_transcript(self, *, url: str) -> dict[str, Any]:
|
|
1862
|
+
"""LinkedIn Post Transcript — Extract post text as a transcript for a LinkedIn post. (7 credits)
|
|
1863
|
+
|
|
1864
|
+
:param url: LinkedIn post or activity URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1865
|
+
"""
|
|
1866
|
+
return await self._t.get("/v1/linkedin/post-transcript", {"url": url})
|
|
1867
|
+
|
|
1868
|
+
async def company_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1869
|
+
"""LinkedIn Company Posts — Recent public posts from a LinkedIn company page. (16 credits)
|
|
1870
|
+
|
|
1871
|
+
:param url: LinkedIn company URL, e.g. https://linkedin.com/company/slug. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1872
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
1873
|
+
"""
|
|
1874
|
+
return await self._t.get("/v1/linkedin/company-posts", {"url": url, "limit": limit})
|
|
1875
|
+
|
|
1876
|
+
async def search_posts(self, *, q: str, sort: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
1877
|
+
"""LinkedIn Search Posts — Search public LinkedIn posts by keyword. (16 credits)
|
|
1878
|
+
|
|
1879
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1880
|
+
:param sort: relevance or date. Default relevance.
|
|
1881
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
1882
|
+
"""
|
|
1883
|
+
return await self._t.get("/v1/linkedin/search-posts", {"q": q, "sort": sort, "limit": limit})
|
|
1884
|
+
|
|
1885
|
+
|
|
1886
|
+
class RumbleApi:
|
|
1887
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1888
|
+
self._t = transport
|
|
1889
|
+
|
|
1890
|
+
def video_details(self, *, url: str) -> dict[str, Any]:
|
|
1891
|
+
"""Rumble Video Details — Metadata + stats for a Rumble video. (1 credit)
|
|
1892
|
+
|
|
1893
|
+
:param url: Rumble video URL, e.g. https://rumble.com/vXXXX-title.html. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1894
|
+
"""
|
|
1895
|
+
return self._t.get("/v1/rumble/video-details", {"url": url})
|
|
1896
|
+
|
|
1897
|
+
def channel_videos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1898
|
+
"""Rumble Channel Videos — List videos from a Rumble channel. (12 credits)
|
|
1899
|
+
|
|
1900
|
+
:param url: Rumble channel URL, e.g. https://rumble.com/c/name. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1901
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1902
|
+
"""
|
|
1903
|
+
return self._t.get("/v1/rumble/channel-videos", {"url": url, "limit": limit})
|
|
1904
|
+
|
|
1905
|
+
def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1906
|
+
"""Rumble Search — Search Rumble videos by keyword. (12 credits)
|
|
1907
|
+
|
|
1908
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1909
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1910
|
+
"""
|
|
1911
|
+
return self._t.get("/v1/rumble/search", {"q": q, "limit": limit})
|
|
1912
|
+
|
|
1913
|
+
def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1914
|
+
"""Rumble Comments — Comments on a Rumble video. (30 credits)
|
|
1915
|
+
|
|
1916
|
+
:param url: Rumble video URL, e.g. https://rumble.com/vXXXX-title.html. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1917
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1918
|
+
"""
|
|
1919
|
+
return self._t.get("/v1/rumble/comments", {"url": url, "limit": limit})
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
class AsyncRumbleApi:
|
|
1923
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
1924
|
+
self._t = transport
|
|
1925
|
+
|
|
1926
|
+
async def video_details(self, *, url: str) -> dict[str, Any]:
|
|
1927
|
+
"""Rumble Video Details — Metadata + stats for a Rumble video. (1 credit)
|
|
1928
|
+
|
|
1929
|
+
:param url: Rumble video URL, e.g. https://rumble.com/vXXXX-title.html. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1930
|
+
"""
|
|
1931
|
+
return await self._t.get("/v1/rumble/video-details", {"url": url})
|
|
1932
|
+
|
|
1933
|
+
async def channel_videos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1934
|
+
"""Rumble Channel Videos — List videos from a Rumble channel. (12 credits)
|
|
1935
|
+
|
|
1936
|
+
:param url: Rumble channel URL, e.g. https://rumble.com/c/name. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1937
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1938
|
+
"""
|
|
1939
|
+
return await self._t.get("/v1/rumble/channel-videos", {"url": url, "limit": limit})
|
|
1940
|
+
|
|
1941
|
+
async def search(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
1942
|
+
"""Rumble Search — Search Rumble videos by keyword. (12 credits)
|
|
1943
|
+
|
|
1944
|
+
:param q: Search query or keywords (min 2 chars).
|
|
1945
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1946
|
+
"""
|
|
1947
|
+
return await self._t.get("/v1/rumble/search", {"q": q, "limit": limit})
|
|
1948
|
+
|
|
1949
|
+
async def comments(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1950
|
+
"""Rumble Comments — Comments on a Rumble video. (30 credits)
|
|
1951
|
+
|
|
1952
|
+
:param url: Rumble video URL, e.g. https://rumble.com/vXXXX-title.html. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1953
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
1954
|
+
"""
|
|
1955
|
+
return await self._t.get("/v1/rumble/comments", {"url": url, "limit": limit})
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
class TiktokShopApi:
|
|
1959
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
1960
|
+
self._t = transport
|
|
1961
|
+
|
|
1962
|
+
def search(self, *, q: str, region: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
1963
|
+
"""TikTok Shop Search — Search TikTok Shop products by keyword. (56 credits)
|
|
1964
|
+
|
|
1965
|
+
:param q: Product search query.
|
|
1966
|
+
:param region: Two-letter TikTok Shop region. Default US.
|
|
1967
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1968
|
+
"""
|
|
1969
|
+
return self._t.get("/v1/tiktok-shop/shop-search", {"q": q, "region": region, "limit": limit})
|
|
1970
|
+
|
|
1971
|
+
def products(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1972
|
+
"""TikTok Shop Products — List products from a TikTok Shop store. (56 credits)
|
|
1973
|
+
|
|
1974
|
+
:param url: TikTok Shop store URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1975
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1976
|
+
"""
|
|
1977
|
+
return self._t.get("/v1/tiktok-shop/shop-products", {"url": url, "limit": limit})
|
|
1978
|
+
|
|
1979
|
+
def product_details(self, *, url: str) -> dict[str, Any]:
|
|
1980
|
+
"""TikTok Shop Product Details — Full TikTok Shop product details, seller and price metadata. (14 credits)
|
|
1981
|
+
|
|
1982
|
+
:param url: TikTok Shop product URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1983
|
+
"""
|
|
1984
|
+
return self._t.get("/v1/tiktok-shop/product-details", {"url": url})
|
|
1985
|
+
|
|
1986
|
+
def product_reviews(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
1987
|
+
"""TikTok Shop Product Reviews — Customer reviews for a TikTok Shop product. (45 credits)
|
|
1988
|
+
|
|
1989
|
+
:param url: TikTok Shop product URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
1990
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1991
|
+
"""
|
|
1992
|
+
return self._t.get("/v1/tiktok-shop/product-reviews", {"url": url, "limit": limit})
|
|
1993
|
+
|
|
1994
|
+
def user_showcase(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
1995
|
+
"""TikTok Shop User Showcase — Products promoted in a TikTok creator showcase. (45 credits)
|
|
1996
|
+
|
|
1997
|
+
:param username: TikTok username with or without @.
|
|
1998
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
1999
|
+
"""
|
|
2000
|
+
return self._t.get("/v1/tiktok-shop/user-showcase", {"username": username, "limit": limit})
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
class AsyncTiktokShopApi:
|
|
2004
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2005
|
+
self._t = transport
|
|
2006
|
+
|
|
2007
|
+
async def search(self, *, q: str, region: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2008
|
+
"""TikTok Shop Search — Search TikTok Shop products by keyword. (56 credits)
|
|
2009
|
+
|
|
2010
|
+
:param q: Product search query.
|
|
2011
|
+
:param region: Two-letter TikTok Shop region. Default US.
|
|
2012
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2013
|
+
"""
|
|
2014
|
+
return await self._t.get("/v1/tiktok-shop/shop-search", {"q": q, "region": region, "limit": limit})
|
|
2015
|
+
|
|
2016
|
+
async def products(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2017
|
+
"""TikTok Shop Products — List products from a TikTok Shop store. (56 credits)
|
|
2018
|
+
|
|
2019
|
+
:param url: TikTok Shop store URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2020
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2021
|
+
"""
|
|
2022
|
+
return await self._t.get("/v1/tiktok-shop/shop-products", {"url": url, "limit": limit})
|
|
2023
|
+
|
|
2024
|
+
async def product_details(self, *, url: str) -> dict[str, Any]:
|
|
2025
|
+
"""TikTok Shop Product Details — Full TikTok Shop product details, seller and price metadata. (14 credits)
|
|
2026
|
+
|
|
2027
|
+
:param url: TikTok Shop product URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2028
|
+
"""
|
|
2029
|
+
return await self._t.get("/v1/tiktok-shop/product-details", {"url": url})
|
|
2030
|
+
|
|
2031
|
+
async def product_reviews(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2032
|
+
"""TikTok Shop Product Reviews — Customer reviews for a TikTok Shop product. (45 credits)
|
|
2033
|
+
|
|
2034
|
+
:param url: TikTok Shop product URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2035
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2036
|
+
"""
|
|
2037
|
+
return await self._t.get("/v1/tiktok-shop/product-reviews", {"url": url, "limit": limit})
|
|
2038
|
+
|
|
2039
|
+
async def user_showcase(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2040
|
+
"""TikTok Shop User Showcase — Products promoted in a TikTok creator showcase. (45 credits)
|
|
2041
|
+
|
|
2042
|
+
:param username: TikTok username with or without @.
|
|
2043
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2044
|
+
"""
|
|
2045
|
+
return await self._t.get("/v1/tiktok-shop/user-showcase", {"username": username, "limit": limit})
|
|
2046
|
+
|
|
2047
|
+
|
|
2048
|
+
class GithubApi:
|
|
2049
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2050
|
+
self._t = transport
|
|
2051
|
+
|
|
2052
|
+
def user(self, *, username: str) -> dict[str, Any]:
|
|
2053
|
+
"""GitHub User — Public GitHub user profile details. (3 credits)
|
|
2054
|
+
|
|
2055
|
+
:param username: GitHub username or profile URL.
|
|
2056
|
+
"""
|
|
2057
|
+
return self._t.get("/v1/github/user", {"username": username})
|
|
2058
|
+
|
|
2059
|
+
def repositories(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2060
|
+
"""GitHub Repositories — List a GitHub user's repositories. (12 credits)
|
|
2061
|
+
|
|
2062
|
+
:param username: GitHub username or profile URL.
|
|
2063
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2064
|
+
"""
|
|
2065
|
+
return self._t.get("/v1/github/repositories", {"username": username, "limit": limit})
|
|
2066
|
+
|
|
2067
|
+
def repository(self, *, repo: str) -> dict[str, Any]:
|
|
2068
|
+
"""GitHub Repository — Repository details, stars, forks and metadata. (3 credits)
|
|
2069
|
+
|
|
2070
|
+
:param repo: Repository URL or owner/name.
|
|
2071
|
+
"""
|
|
2072
|
+
return self._t.get("/v1/github/repository", {"repo": repo})
|
|
2073
|
+
|
|
2074
|
+
def pull_requests(self, *, repo: str, state: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2075
|
+
"""GitHub Pull Requests — List repository pull requests. (12 credits)
|
|
2076
|
+
|
|
2077
|
+
:param repo: Repository URL or owner/name.
|
|
2078
|
+
:param state: open, closed, or all. Default open.
|
|
2079
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2080
|
+
"""
|
|
2081
|
+
return self._t.get("/v1/github/pull-requests", {"repo": repo, "state": state, "limit": limit})
|
|
2082
|
+
|
|
2083
|
+
def activity(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2084
|
+
"""GitHub Activity — Recent public activity for a GitHub user. (12 credits)
|
|
2085
|
+
|
|
2086
|
+
:param username: GitHub username or profile URL.
|
|
2087
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2088
|
+
"""
|
|
2089
|
+
return self._t.get("/v1/github/activity", {"username": username, "limit": limit})
|
|
2090
|
+
|
|
2091
|
+
def followers(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2092
|
+
"""GitHub Followers — List GitHub followers. (12 credits)
|
|
2093
|
+
|
|
2094
|
+
:param username: GitHub username or profile URL.
|
|
2095
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2096
|
+
"""
|
|
2097
|
+
return self._t.get("/v1/github/followers", {"username": username, "limit": limit})
|
|
2098
|
+
|
|
2099
|
+
def following(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2100
|
+
"""GitHub Following — List accounts a GitHub user follows. (12 credits)
|
|
2101
|
+
|
|
2102
|
+
:param username: GitHub username or profile URL.
|
|
2103
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2104
|
+
"""
|
|
2105
|
+
return self._t.get("/v1/github/following", {"username": username, "limit": limit})
|
|
2106
|
+
|
|
2107
|
+
def contributions(self, *, username: str) -> dict[str, Any]:
|
|
2108
|
+
"""GitHub Contributions — Summary of recent public GitHub contributions. (3 credits)
|
|
2109
|
+
|
|
2110
|
+
:param username: GitHub username or profile URL.
|
|
2111
|
+
"""
|
|
2112
|
+
return self._t.get("/v1/github/contributions", {"username": username})
|
|
2113
|
+
|
|
2114
|
+
def trending_repositories(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
2115
|
+
"""GitHub Trending Repositories — Search trending repositories by stars or query. (12 credits)
|
|
2116
|
+
|
|
2117
|
+
:param q: GitHub repository search query. Default stars:>1000.
|
|
2118
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2119
|
+
"""
|
|
2120
|
+
return self._t.get("/v1/github/trending-repositories", {"q": q, "limit": limit})
|
|
2121
|
+
|
|
2122
|
+
def trending_developers(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
2123
|
+
"""GitHub Trending Developers — Search popular GitHub developers. (12 credits)
|
|
2124
|
+
|
|
2125
|
+
:param q: GitHub user search query. Default followers:>1000.
|
|
2126
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2127
|
+
"""
|
|
2128
|
+
return self._t.get("/v1/github/trending-developers", {"q": q, "limit": limit})
|
|
2129
|
+
|
|
2130
|
+
|
|
2131
|
+
class AsyncGithubApi:
|
|
2132
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2133
|
+
self._t = transport
|
|
2134
|
+
|
|
2135
|
+
async def user(self, *, username: str) -> dict[str, Any]:
|
|
2136
|
+
"""GitHub User — Public GitHub user profile details. (3 credits)
|
|
2137
|
+
|
|
2138
|
+
:param username: GitHub username or profile URL.
|
|
2139
|
+
"""
|
|
2140
|
+
return await self._t.get("/v1/github/user", {"username": username})
|
|
2141
|
+
|
|
2142
|
+
async def repositories(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2143
|
+
"""GitHub Repositories — List a GitHub user's repositories. (12 credits)
|
|
2144
|
+
|
|
2145
|
+
:param username: GitHub username or profile URL.
|
|
2146
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2147
|
+
"""
|
|
2148
|
+
return await self._t.get("/v1/github/repositories", {"username": username, "limit": limit})
|
|
2149
|
+
|
|
2150
|
+
async def repository(self, *, repo: str) -> dict[str, Any]:
|
|
2151
|
+
"""GitHub Repository — Repository details, stars, forks and metadata. (3 credits)
|
|
2152
|
+
|
|
2153
|
+
:param repo: Repository URL or owner/name.
|
|
2154
|
+
"""
|
|
2155
|
+
return await self._t.get("/v1/github/repository", {"repo": repo})
|
|
2156
|
+
|
|
2157
|
+
async def pull_requests(self, *, repo: str, state: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2158
|
+
"""GitHub Pull Requests — List repository pull requests. (12 credits)
|
|
2159
|
+
|
|
2160
|
+
:param repo: Repository URL or owner/name.
|
|
2161
|
+
:param state: open, closed, or all. Default open.
|
|
2162
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2163
|
+
"""
|
|
2164
|
+
return await self._t.get("/v1/github/pull-requests", {"repo": repo, "state": state, "limit": limit})
|
|
2165
|
+
|
|
2166
|
+
async def activity(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2167
|
+
"""GitHub Activity — Recent public activity for a GitHub user. (12 credits)
|
|
2168
|
+
|
|
2169
|
+
:param username: GitHub username or profile URL.
|
|
2170
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2171
|
+
"""
|
|
2172
|
+
return await self._t.get("/v1/github/activity", {"username": username, "limit": limit})
|
|
2173
|
+
|
|
2174
|
+
async def followers(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2175
|
+
"""GitHub Followers — List GitHub followers. (12 credits)
|
|
2176
|
+
|
|
2177
|
+
:param username: GitHub username or profile URL.
|
|
2178
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2179
|
+
"""
|
|
2180
|
+
return await self._t.get("/v1/github/followers", {"username": username, "limit": limit})
|
|
2181
|
+
|
|
2182
|
+
async def following(self, *, username: str, limit: float | None = None) -> dict[str, Any]:
|
|
2183
|
+
"""GitHub Following — List accounts a GitHub user follows. (12 credits)
|
|
2184
|
+
|
|
2185
|
+
:param username: GitHub username or profile URL.
|
|
2186
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2187
|
+
"""
|
|
2188
|
+
return await self._t.get("/v1/github/following", {"username": username, "limit": limit})
|
|
2189
|
+
|
|
2190
|
+
async def contributions(self, *, username: str) -> dict[str, Any]:
|
|
2191
|
+
"""GitHub Contributions — Summary of recent public GitHub contributions. (3 credits)
|
|
2192
|
+
|
|
2193
|
+
:param username: GitHub username or profile URL.
|
|
2194
|
+
"""
|
|
2195
|
+
return await self._t.get("/v1/github/contributions", {"username": username})
|
|
2196
|
+
|
|
2197
|
+
async def trending_repositories(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
2198
|
+
"""GitHub Trending Repositories — Search trending repositories by stars or query. (12 credits)
|
|
2199
|
+
|
|
2200
|
+
:param q: GitHub repository search query. Default stars:>1000.
|
|
2201
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2202
|
+
"""
|
|
2203
|
+
return await self._t.get("/v1/github/trending-repositories", {"q": q, "limit": limit})
|
|
2204
|
+
|
|
2205
|
+
async def trending_developers(self, *, q: str, limit: float | None = None) -> dict[str, Any]:
|
|
2206
|
+
"""GitHub Trending Developers — Search popular GitHub developers. (12 credits)
|
|
2207
|
+
|
|
2208
|
+
:param q: GitHub user search query. Default followers:>1000.
|
|
2209
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2210
|
+
"""
|
|
2211
|
+
return await self._t.get("/v1/github/trending-developers", {"q": q, "limit": limit})
|
|
2212
|
+
|
|
2213
|
+
|
|
2214
|
+
class GoogleApi:
|
|
2215
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2216
|
+
self._t = transport
|
|
2217
|
+
|
|
2218
|
+
def search(self, *, q: str, country: str | None = None, language: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2219
|
+
"""Google Search — Google SERP organic search results by keyword, country, and language. (42 credits)
|
|
2220
|
+
|
|
2221
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2222
|
+
:param country: Two-letter country code. Default us.
|
|
2223
|
+
:param language: Google language code. Default en.
|
|
2224
|
+
:param limit: Max items to return. Default 10, max 100. Billed per result.
|
|
2225
|
+
"""
|
|
2226
|
+
return self._t.get("/v1/google/search", {"q": q, "country": country, "language": language, "limit": limit})
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
class AsyncGoogleApi:
|
|
2230
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2231
|
+
self._t = transport
|
|
2232
|
+
|
|
2233
|
+
async def search(self, *, q: str, country: str | None = None, language: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2234
|
+
"""Google Search — Google SERP organic search results by keyword, country, and language. (42 credits)
|
|
2235
|
+
|
|
2236
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2237
|
+
:param country: Two-letter country code. Default us.
|
|
2238
|
+
:param language: Google language code. Default en.
|
|
2239
|
+
:param limit: Max items to return. Default 10, max 100. Billed per result.
|
|
2240
|
+
"""
|
|
2241
|
+
return await self._t.get("/v1/google/search", {"q": q, "country": country, "language": language, "limit": limit})
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
class TwitchApi:
|
|
2245
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2246
|
+
self._t = transport
|
|
2247
|
+
|
|
2248
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
2249
|
+
"""Twitch Profile — Twitch channel profile, followers, live status and recent metadata. (9 credits)
|
|
2250
|
+
|
|
2251
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2252
|
+
"""
|
|
2253
|
+
return self._t.get("/v1/twitch/profile", {"url": url})
|
|
2254
|
+
|
|
2255
|
+
def user_videos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2256
|
+
"""Twitch User Videos — Recent Twitch VODs for a channel. (34 credits)
|
|
2257
|
+
|
|
2258
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2259
|
+
:param limit: Max items to return. Default 20, max 30. Billed per result.
|
|
2260
|
+
"""
|
|
2261
|
+
return self._t.get("/v1/twitch/user-videos", {"url": url, "limit": limit})
|
|
2262
|
+
|
|
2263
|
+
def user_schedule(self, *, url: str) -> dict[str, Any]:
|
|
2264
|
+
"""Twitch User Schedule — Upcoming Twitch schedule data when exposed on the public channel. (34 credits)
|
|
2265
|
+
|
|
2266
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2267
|
+
"""
|
|
2268
|
+
return self._t.get("/v1/twitch/user-schedule", {"url": url})
|
|
2269
|
+
|
|
2270
|
+
def clip(self, *, url: str) -> dict[str, Any]:
|
|
2271
|
+
"""Twitch Clip — Twitch clip metadata from a clip URL or channel fallback. (9 credits)
|
|
2272
|
+
|
|
2273
|
+
:param url: Twitch clip URL, channel URL, or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2274
|
+
"""
|
|
2275
|
+
return self._t.get("/v1/twitch/clip", {"url": url})
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
class AsyncTwitchApi:
|
|
2279
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2280
|
+
self._t = transport
|
|
2281
|
+
|
|
2282
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
2283
|
+
"""Twitch Profile — Twitch channel profile, followers, live status and recent metadata. (9 credits)
|
|
2284
|
+
|
|
2285
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2286
|
+
"""
|
|
2287
|
+
return await self._t.get("/v1/twitch/profile", {"url": url})
|
|
2288
|
+
|
|
2289
|
+
async def user_videos(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2290
|
+
"""Twitch User Videos — Recent Twitch VODs for a channel. (34 credits)
|
|
2291
|
+
|
|
2292
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2293
|
+
:param limit: Max items to return. Default 20, max 30. Billed per result.
|
|
2294
|
+
"""
|
|
2295
|
+
return await self._t.get("/v1/twitch/user-videos", {"url": url, "limit": limit})
|
|
2296
|
+
|
|
2297
|
+
async def user_schedule(self, *, url: str) -> dict[str, Any]:
|
|
2298
|
+
"""Twitch User Schedule — Upcoming Twitch schedule data when exposed on the public channel. (34 credits)
|
|
2299
|
+
|
|
2300
|
+
:param url: Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2301
|
+
"""
|
|
2302
|
+
return await self._t.get("/v1/twitch/user-schedule", {"url": url})
|
|
2303
|
+
|
|
2304
|
+
async def clip(self, *, url: str) -> dict[str, Any]:
|
|
2305
|
+
"""Twitch Clip — Twitch clip metadata from a clip URL or channel fallback. (9 credits)
|
|
2306
|
+
|
|
2307
|
+
:param url: Twitch clip URL, channel URL, or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2308
|
+
"""
|
|
2309
|
+
return await self._t.get("/v1/twitch/clip", {"url": url})
|
|
2310
|
+
|
|
2311
|
+
|
|
2312
|
+
class SpotifyApi:
|
|
2313
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2314
|
+
self._t = transport
|
|
2315
|
+
|
|
2316
|
+
def artist(self, *, url: str) -> dict[str, Any]:
|
|
2317
|
+
"""Spotify Artist — Spotify artist details, followers and listener metadata. (6 credits)
|
|
2318
|
+
|
|
2319
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2320
|
+
"""
|
|
2321
|
+
return self._t.get("/v1/spotify/artist", {"url": url})
|
|
2322
|
+
|
|
2323
|
+
def track(self, *, url: str) -> dict[str, Any]:
|
|
2324
|
+
"""Spotify Track — Spotify track metadata, artists, album and play count when available. (6 credits)
|
|
2325
|
+
|
|
2326
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2327
|
+
"""
|
|
2328
|
+
return self._t.get("/v1/spotify/track", {"url": url})
|
|
2329
|
+
|
|
2330
|
+
def album(self, *, url: str) -> dict[str, Any]:
|
|
2331
|
+
"""Spotify Album — Spotify album metadata and track count. (6 credits)
|
|
2332
|
+
|
|
2333
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2334
|
+
"""
|
|
2335
|
+
return self._t.get("/v1/spotify/album", {"url": url})
|
|
2336
|
+
|
|
2337
|
+
def search(self, *, q: str, type_: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2338
|
+
"""Spotify Search — Search Spotify tracks, albums, artists, podcasts or episodes. (23 credits)
|
|
2339
|
+
|
|
2340
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2341
|
+
:param type_: tracks, albums, artists, podcasts, or episodes. Default tracks.
|
|
2342
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2343
|
+
"""
|
|
2344
|
+
return self._t.get("/v1/spotify/search", {"q": q, "type": type_, "limit": limit})
|
|
2345
|
+
|
|
2346
|
+
def podcast(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2347
|
+
"""Spotify Podcast — Spotify podcast/show details and episode summary metadata. (6 credits)
|
|
2348
|
+
|
|
2349
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2350
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2351
|
+
"""
|
|
2352
|
+
return self._t.get("/v1/spotify/podcast", {"url": url, "limit": limit})
|
|
2353
|
+
|
|
2354
|
+
def podcast_episodes(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2355
|
+
"""Spotify Podcast Episodes — List episodes for a Spotify podcast/show. (23 credits)
|
|
2356
|
+
|
|
2357
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2358
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2359
|
+
"""
|
|
2360
|
+
return self._t.get("/v1/spotify/podcast-episodes", {"url": url, "limit": limit})
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
class AsyncSpotifyApi:
|
|
2364
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2365
|
+
self._t = transport
|
|
2366
|
+
|
|
2367
|
+
async def artist(self, *, url: str) -> dict[str, Any]:
|
|
2368
|
+
"""Spotify Artist — Spotify artist details, followers and listener metadata. (6 credits)
|
|
2369
|
+
|
|
2370
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2371
|
+
"""
|
|
2372
|
+
return await self._t.get("/v1/spotify/artist", {"url": url})
|
|
2373
|
+
|
|
2374
|
+
async def track(self, *, url: str) -> dict[str, Any]:
|
|
2375
|
+
"""Spotify Track — Spotify track metadata, artists, album and play count when available. (6 credits)
|
|
2376
|
+
|
|
2377
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2378
|
+
"""
|
|
2379
|
+
return await self._t.get("/v1/spotify/track", {"url": url})
|
|
2380
|
+
|
|
2381
|
+
async def album(self, *, url: str) -> dict[str, Any]:
|
|
2382
|
+
"""Spotify Album — Spotify album metadata and track count. (6 credits)
|
|
2383
|
+
|
|
2384
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2385
|
+
"""
|
|
2386
|
+
return await self._t.get("/v1/spotify/album", {"url": url})
|
|
2387
|
+
|
|
2388
|
+
async def search(self, *, q: str, type_: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2389
|
+
"""Spotify Search — Search Spotify tracks, albums, artists, podcasts or episodes. (23 credits)
|
|
2390
|
+
|
|
2391
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2392
|
+
:param type_: tracks, albums, artists, podcasts, or episodes. Default tracks.
|
|
2393
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2394
|
+
"""
|
|
2395
|
+
return await self._t.get("/v1/spotify/search", {"q": q, "type": type_, "limit": limit})
|
|
2396
|
+
|
|
2397
|
+
async def podcast(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2398
|
+
"""Spotify Podcast — Spotify podcast/show details and episode summary metadata. (6 credits)
|
|
2399
|
+
|
|
2400
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2401
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2402
|
+
"""
|
|
2403
|
+
return await self._t.get("/v1/spotify/podcast", {"url": url, "limit": limit})
|
|
2404
|
+
|
|
2405
|
+
async def podcast_episodes(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2406
|
+
"""Spotify Podcast Episodes — List episodes for a Spotify podcast/show. (23 credits)
|
|
2407
|
+
|
|
2408
|
+
:param url: Spotify URL, URI, or ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2409
|
+
:param limit: Max items to return. Default 20, max 50. Billed per result.
|
|
2410
|
+
"""
|
|
2411
|
+
return await self._t.get("/v1/spotify/podcast-episodes", {"url": url, "limit": limit})
|
|
2412
|
+
|
|
2413
|
+
|
|
2414
|
+
class SoundcloudApi:
|
|
2415
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2416
|
+
self._t = transport
|
|
2417
|
+
|
|
2418
|
+
def artist(self, *, url: str) -> dict[str, Any]:
|
|
2419
|
+
"""SoundCloud Artist — SoundCloud artist profile metadata. (7 credits)
|
|
2420
|
+
|
|
2421
|
+
:param url: SoundCloud artist profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2422
|
+
"""
|
|
2423
|
+
return self._t.get("/v1/soundcloud/artist", {"url": url})
|
|
2424
|
+
|
|
2425
|
+
def artist_tracks(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2426
|
+
"""SoundCloud Artist Tracks — Tracks from a SoundCloud artist profile. (28 credits)
|
|
2427
|
+
|
|
2428
|
+
:param url: SoundCloud artist profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2429
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2430
|
+
"""
|
|
2431
|
+
return self._t.get("/v1/soundcloud/artist-tracks", {"url": url, "limit": limit})
|
|
2432
|
+
|
|
2433
|
+
def track(self, *, url: str) -> dict[str, Any]:
|
|
2434
|
+
"""SoundCloud Track — SoundCloud track metadata and engagement stats. (7 credits)
|
|
2435
|
+
|
|
2436
|
+
:param url: SoundCloud track URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2437
|
+
"""
|
|
2438
|
+
return self._t.get("/v1/soundcloud/track", {"url": url})
|
|
2439
|
+
|
|
2440
|
+
|
|
2441
|
+
class AsyncSoundcloudApi:
|
|
2442
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2443
|
+
self._t = transport
|
|
2444
|
+
|
|
2445
|
+
async def artist(self, *, url: str) -> dict[str, Any]:
|
|
2446
|
+
"""SoundCloud Artist — SoundCloud artist profile metadata. (7 credits)
|
|
2447
|
+
|
|
2448
|
+
:param url: SoundCloud artist profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2449
|
+
"""
|
|
2450
|
+
return await self._t.get("/v1/soundcloud/artist", {"url": url})
|
|
2451
|
+
|
|
2452
|
+
async def artist_tracks(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2453
|
+
"""SoundCloud Artist Tracks — Tracks from a SoundCloud artist profile. (28 credits)
|
|
2454
|
+
|
|
2455
|
+
:param url: SoundCloud artist profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2456
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2457
|
+
"""
|
|
2458
|
+
return await self._t.get("/v1/soundcloud/artist-tracks", {"url": url, "limit": limit})
|
|
2459
|
+
|
|
2460
|
+
async def track(self, *, url: str) -> dict[str, Any]:
|
|
2461
|
+
"""SoundCloud Track — SoundCloud track metadata and engagement stats. (7 credits)
|
|
2462
|
+
|
|
2463
|
+
:param url: SoundCloud track URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2464
|
+
"""
|
|
2465
|
+
return await self._t.get("/v1/soundcloud/track", {"url": url})
|
|
2466
|
+
|
|
2467
|
+
|
|
2468
|
+
class LinktreeApi:
|
|
2469
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2470
|
+
self._t = transport
|
|
2471
|
+
|
|
2472
|
+
def page(self, *, url: str) -> dict[str, Any]:
|
|
2473
|
+
"""Linktree Page — Public Linktree profile links, socials and profile metadata. (4 credits)
|
|
2474
|
+
|
|
2475
|
+
:param url: Linktree profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2476
|
+
"""
|
|
2477
|
+
return self._t.get("/v1/linktree/page", {"url": url})
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
class AsyncLinktreeApi:
|
|
2481
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2482
|
+
self._t = transport
|
|
2483
|
+
|
|
2484
|
+
async def page(self, *, url: str) -> dict[str, Any]:
|
|
2485
|
+
"""Linktree Page — Public Linktree profile links, socials and profile metadata. (4 credits)
|
|
2486
|
+
|
|
2487
|
+
:param url: Linktree profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2488
|
+
"""
|
|
2489
|
+
return await self._t.get("/v1/linktree/page", {"url": url})
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
class SnapchatApi:
|
|
2493
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2494
|
+
self._t = transport
|
|
2495
|
+
|
|
2496
|
+
def user_profile(self, *, url: str) -> dict[str, Any]:
|
|
2497
|
+
"""Snapchat User Profile — Public Snapchat profile metadata, subscriber count, avatar and highlights. (11 credits)
|
|
2498
|
+
|
|
2499
|
+
:param url: Snapchat username or profile URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2500
|
+
"""
|
|
2501
|
+
return self._t.get("/v1/snapchat/user-profile", {"url": url})
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
class AsyncSnapchatApi:
|
|
2505
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2506
|
+
self._t = transport
|
|
2507
|
+
|
|
2508
|
+
async def user_profile(self, *, url: str) -> dict[str, Any]:
|
|
2509
|
+
"""Snapchat User Profile — Public Snapchat profile metadata, subscriber count, avatar and highlights. (11 credits)
|
|
2510
|
+
|
|
2511
|
+
:param url: Snapchat username or profile URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2512
|
+
"""
|
|
2513
|
+
return await self._t.get("/v1/snapchat/user-profile", {"url": url})
|
|
2514
|
+
|
|
2515
|
+
|
|
2516
|
+
class TruthSocialApi:
|
|
2517
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2518
|
+
self._t = transport
|
|
2519
|
+
|
|
2520
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
2521
|
+
"""Truth Social Profile — Public Truth Social profile metadata and stats. (5 credits)
|
|
2522
|
+
|
|
2523
|
+
:param url: Truth Social profile URL or @username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2524
|
+
"""
|
|
2525
|
+
return self._t.get("/v1/truth-social/profile", {"url": url})
|
|
2526
|
+
|
|
2527
|
+
def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2528
|
+
"""Truth Social User Posts — Recent public posts from a Truth Social profile. (17 credits)
|
|
2529
|
+
|
|
2530
|
+
:param url: Truth Social profile URL or @username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2531
|
+
:param limit: Max items to return. Default 20, max 80. Billed per result.
|
|
2532
|
+
"""
|
|
2533
|
+
return self._t.get("/v1/truth-social/user-posts", {"url": url, "limit": limit})
|
|
2534
|
+
|
|
2535
|
+
def post(self, *, url: str) -> dict[str, Any]:
|
|
2536
|
+
"""Truth Social Post — Truth Social post metadata, text, media and engagement. (5 credits)
|
|
2537
|
+
|
|
2538
|
+
:param url: Truth Social post URL or post ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2539
|
+
"""
|
|
2540
|
+
return self._t.get("/v1/truth-social/post", {"url": url})
|
|
2541
|
+
|
|
2542
|
+
|
|
2543
|
+
class AsyncTruthSocialApi:
|
|
2544
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2545
|
+
self._t = transport
|
|
2546
|
+
|
|
2547
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
2548
|
+
"""Truth Social Profile — Public Truth Social profile metadata and stats. (5 credits)
|
|
2549
|
+
|
|
2550
|
+
:param url: Truth Social profile URL or @username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2551
|
+
"""
|
|
2552
|
+
return await self._t.get("/v1/truth-social/profile", {"url": url})
|
|
2553
|
+
|
|
2554
|
+
async def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2555
|
+
"""Truth Social User Posts — Recent public posts from a Truth Social profile. (17 credits)
|
|
2556
|
+
|
|
2557
|
+
:param url: Truth Social profile URL or @username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2558
|
+
:param limit: Max items to return. Default 20, max 80. Billed per result.
|
|
2559
|
+
"""
|
|
2560
|
+
return await self._t.get("/v1/truth-social/user-posts", {"url": url, "limit": limit})
|
|
2561
|
+
|
|
2562
|
+
async def post(self, *, url: str) -> dict[str, Any]:
|
|
2563
|
+
"""Truth Social Post — Truth Social post metadata, text, media and engagement. (5 credits)
|
|
2564
|
+
|
|
2565
|
+
:param url: Truth Social post URL or post ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2566
|
+
"""
|
|
2567
|
+
return await self._t.get("/v1/truth-social/post", {"url": url})
|
|
2568
|
+
|
|
2569
|
+
|
|
2570
|
+
class KickApi:
|
|
2571
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2572
|
+
self._t = transport
|
|
2573
|
+
|
|
2574
|
+
def clip(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2575
|
+
"""Kick Clip — Kick clip metadata from a clip URL or recent channel clips. (34 credits)
|
|
2576
|
+
|
|
2577
|
+
:param url: Kick clip URL, channel URL, or channel username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2578
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2579
|
+
"""
|
|
2580
|
+
return self._t.get("/v1/kick/clip", {"url": url, "limit": limit})
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
class AsyncKickApi:
|
|
2584
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2585
|
+
self._t = transport
|
|
2586
|
+
|
|
2587
|
+
async def clip(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2588
|
+
"""Kick Clip — Kick clip metadata from a clip URL or recent channel clips. (34 credits)
|
|
2589
|
+
|
|
2590
|
+
:param url: Kick clip URL, channel URL, or channel username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2591
|
+
:param limit: Max items to return. Default 30, max 100. Billed per result.
|
|
2592
|
+
"""
|
|
2593
|
+
return await self._t.get("/v1/kick/clip", {"url": url, "limit": limit})
|
|
2594
|
+
|
|
2595
|
+
|
|
2596
|
+
class AmazonShopApi:
|
|
2597
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2598
|
+
self._t = transport
|
|
2599
|
+
|
|
2600
|
+
def page(self, *, url: str, marketplace: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2601
|
+
"""Amazon Shop Page — Amazon seller storefront metadata and product listings. (89 credits)
|
|
2602
|
+
|
|
2603
|
+
:param url: Amazon seller storefront URL, seller profile URL, or seller ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2604
|
+
:param marketplace: Amazon marketplace code. Default US.
|
|
2605
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2606
|
+
"""
|
|
2607
|
+
return self._t.get("/v1/amazon-shop/page", {"url": url, "marketplace": marketplace, "limit": limit})
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
class AsyncAmazonShopApi:
|
|
2611
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2612
|
+
self._t = transport
|
|
2613
|
+
|
|
2614
|
+
async def page(self, *, url: str, marketplace: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2615
|
+
"""Amazon Shop Page — Amazon seller storefront metadata and product listings. (89 credits)
|
|
2616
|
+
|
|
2617
|
+
:param url: Amazon seller storefront URL, seller profile URL, or seller ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2618
|
+
:param marketplace: Amazon marketplace code. Default US.
|
|
2619
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2620
|
+
"""
|
|
2621
|
+
return await self._t.get("/v1/amazon-shop/page", {"url": url, "marketplace": marketplace, "limit": limit})
|
|
2622
|
+
|
|
2623
|
+
|
|
2624
|
+
class AgeGenderApi:
|
|
2625
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2626
|
+
self._t = transport
|
|
2627
|
+
|
|
2628
|
+
def get(self, *, name: str, names: str | None = None) -> dict[str, Any]:
|
|
2629
|
+
"""Age and Gender — Predict age, gender and nationality signals from first names. (4 credits)
|
|
2630
|
+
|
|
2631
|
+
:param name: First name, or fallback when names is omitted.
|
|
2632
|
+
:param names: Optional comma-separated list of names.
|
|
2633
|
+
"""
|
|
2634
|
+
return self._t.get("/v1/age-gender", {"name": name, "names": names})
|
|
2635
|
+
|
|
2636
|
+
|
|
2637
|
+
class AsyncAgeGenderApi:
|
|
2638
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2639
|
+
self._t = transport
|
|
2640
|
+
|
|
2641
|
+
async def get(self, *, name: str, names: str | None = None) -> dict[str, Any]:
|
|
2642
|
+
"""Age and Gender — Predict age, gender and nationality signals from first names. (4 credits)
|
|
2643
|
+
|
|
2644
|
+
:param name: First name, or fallback when names is omitted.
|
|
2645
|
+
:param names: Optional comma-separated list of names.
|
|
2646
|
+
"""
|
|
2647
|
+
return await self._t.get("/v1/age-gender", {"name": name, "names": names})
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
class AccountApi:
|
|
2651
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2652
|
+
self._t = transport
|
|
2653
|
+
|
|
2654
|
+
def balance(self) -> dict[str, Any]:
|
|
2655
|
+
"""Credit Balance — Get current Captapi credit balance and plan limits. (0 credits)
|
|
2656
|
+
"""
|
|
2657
|
+
return self._t.get("/v1/account/balance", {})
|
|
2658
|
+
|
|
2659
|
+
def request_history(self, *, limit: float | None = None) -> dict[str, Any]:
|
|
2660
|
+
"""Request History — List recent Captapi API requests for the current key owner. (0 credits)
|
|
2661
|
+
|
|
2662
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
2663
|
+
"""
|
|
2664
|
+
return self._t.get("/v1/account/request-history", {"limit": limit})
|
|
2665
|
+
|
|
2666
|
+
def daily_usage(self, *, days: float | None = None) -> dict[str, Any]:
|
|
2667
|
+
"""Daily Usage — Daily request and credit usage summary. (0 credits)
|
|
2668
|
+
|
|
2669
|
+
:param days: Number of days to include. Default 30, max 365.
|
|
2670
|
+
"""
|
|
2671
|
+
return self._t.get("/v1/account/daily-usage", {"days": days})
|
|
2672
|
+
|
|
2673
|
+
def most_used_routes(self, *, days: float | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2674
|
+
"""Most Used Routes — Most used API routes by request count and credits. (0 credits)
|
|
2675
|
+
|
|
2676
|
+
:param days: Number of days to include. Default 30, max 365.
|
|
2677
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2678
|
+
"""
|
|
2679
|
+
return self._t.get("/v1/account/most-used-routes", {"days": days, "limit": limit})
|
|
2680
|
+
|
|
2681
|
+
|
|
2682
|
+
class AsyncAccountApi:
|
|
2683
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2684
|
+
self._t = transport
|
|
2685
|
+
|
|
2686
|
+
async def balance(self) -> dict[str, Any]:
|
|
2687
|
+
"""Credit Balance — Get current Captapi credit balance and plan limits. (0 credits)
|
|
2688
|
+
"""
|
|
2689
|
+
return await self._t.get("/v1/account/balance", {})
|
|
2690
|
+
|
|
2691
|
+
async def request_history(self, *, limit: float | None = None) -> dict[str, Any]:
|
|
2692
|
+
"""Request History — List recent Captapi API requests for the current key owner. (0 credits)
|
|
2693
|
+
|
|
2694
|
+
:param limit: Max items to return. Default 50, max 500. Billed per result.
|
|
2695
|
+
"""
|
|
2696
|
+
return await self._t.get("/v1/account/request-history", {"limit": limit})
|
|
2697
|
+
|
|
2698
|
+
async def daily_usage(self, *, days: float | None = None) -> dict[str, Any]:
|
|
2699
|
+
"""Daily Usage — Daily request and credit usage summary. (0 credits)
|
|
2700
|
+
|
|
2701
|
+
:param days: Number of days to include. Default 30, max 365.
|
|
2702
|
+
"""
|
|
2703
|
+
return await self._t.get("/v1/account/daily-usage", {"days": days})
|
|
2704
|
+
|
|
2705
|
+
async def most_used_routes(self, *, days: float | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2706
|
+
"""Most Used Routes — Most used API routes by request count and credits. (0 credits)
|
|
2707
|
+
|
|
2708
|
+
:param days: Number of days to include. Default 30, max 365.
|
|
2709
|
+
:param limit: Max items to return. Default 20, max 100. Billed per result.
|
|
2710
|
+
"""
|
|
2711
|
+
return await self._t.get("/v1/account/most-used-routes", {"days": days, "limit": limit})
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
class KwaiApi:
|
|
2715
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2716
|
+
self._t = transport
|
|
2717
|
+
|
|
2718
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
2719
|
+
"""Kwai Profile — Kwai/Kuaishou public profile details and stats. (17 credits)
|
|
2720
|
+
|
|
2721
|
+
:param url: Kwai/Kuaishou profile URL or user ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2722
|
+
"""
|
|
2723
|
+
return self._t.get("/v1/kwai/profile", {"url": url})
|
|
2724
|
+
|
|
2725
|
+
def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2726
|
+
"""Kwai User Posts — Recent Kwai/Kuaishou videos from a profile. (45 credits)
|
|
2727
|
+
|
|
2728
|
+
:param url: Kwai/Kuaishou profile URL or user ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2729
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2730
|
+
"""
|
|
2731
|
+
return self._t.get("/v1/kwai/user-posts", {"url": url, "limit": limit})
|
|
2732
|
+
|
|
2733
|
+
def post(self, *, url: str) -> dict[str, Any]:
|
|
2734
|
+
"""Kwai Post — Kwai/Kuaishou post metadata and engagement. (17 credits)
|
|
2735
|
+
|
|
2736
|
+
:param url: Kwai/Kuaishou post URL or video/photo ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2737
|
+
"""
|
|
2738
|
+
return self._t.get("/v1/kwai/post", {"url": url})
|
|
2739
|
+
|
|
2740
|
+
|
|
2741
|
+
class AsyncKwaiApi:
|
|
2742
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2743
|
+
self._t = transport
|
|
2744
|
+
|
|
2745
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
2746
|
+
"""Kwai Profile — Kwai/Kuaishou public profile details and stats. (17 credits)
|
|
2747
|
+
|
|
2748
|
+
:param url: Kwai/Kuaishou profile URL or user ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2749
|
+
"""
|
|
2750
|
+
return await self._t.get("/v1/kwai/profile", {"url": url})
|
|
2751
|
+
|
|
2752
|
+
async def user_posts(self, *, url: str, limit: float | None = None) -> dict[str, Any]:
|
|
2753
|
+
"""Kwai User Posts — Recent Kwai/Kuaishou videos from a profile. (45 credits)
|
|
2754
|
+
|
|
2755
|
+
:param url: Kwai/Kuaishou profile URL or user ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2756
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2757
|
+
"""
|
|
2758
|
+
return await self._t.get("/v1/kwai/user-posts", {"url": url, "limit": limit})
|
|
2759
|
+
|
|
2760
|
+
async def post(self, *, url: str) -> dict[str, Any]:
|
|
2761
|
+
"""Kwai Post — Kwai/Kuaishou post metadata and engagement. (17 credits)
|
|
2762
|
+
|
|
2763
|
+
:param url: Kwai/Kuaishou post URL or video/photo ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2764
|
+
"""
|
|
2765
|
+
return await self._t.get("/v1/kwai/post", {"url": url})
|
|
2766
|
+
|
|
2767
|
+
|
|
2768
|
+
class KomiApi:
|
|
2769
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2770
|
+
self._t = transport
|
|
2771
|
+
|
|
2772
|
+
def page(self, *, url: str) -> dict[str, Any]:
|
|
2773
|
+
"""Komi Page — Public Komi page links and profile metadata. (4 credits)
|
|
2774
|
+
|
|
2775
|
+
:param url: Komi page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2776
|
+
"""
|
|
2777
|
+
return self._t.get("/v1/komi/page", {"url": url})
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
class AsyncKomiApi:
|
|
2781
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2782
|
+
self._t = transport
|
|
2783
|
+
|
|
2784
|
+
async def page(self, *, url: str) -> dict[str, Any]:
|
|
2785
|
+
"""Komi Page — Public Komi page links and profile metadata. (4 credits)
|
|
2786
|
+
|
|
2787
|
+
:param url: Komi page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2788
|
+
"""
|
|
2789
|
+
return await self._t.get("/v1/komi/page", {"url": url})
|
|
2790
|
+
|
|
2791
|
+
|
|
2792
|
+
class PillarApi:
|
|
2793
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2794
|
+
self._t = transport
|
|
2795
|
+
|
|
2796
|
+
def page(self, *, url: str) -> dict[str, Any]:
|
|
2797
|
+
"""Pillar Page — Public Pillar page links and profile metadata. (4 credits)
|
|
2798
|
+
|
|
2799
|
+
:param url: Pillar page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2800
|
+
"""
|
|
2801
|
+
return self._t.get("/v1/pillar/page", {"url": url})
|
|
2802
|
+
|
|
2803
|
+
|
|
2804
|
+
class AsyncPillarApi:
|
|
2805
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2806
|
+
self._t = transport
|
|
2807
|
+
|
|
2808
|
+
async def page(self, *, url: str) -> dict[str, Any]:
|
|
2809
|
+
"""Pillar Page — Public Pillar page links and profile metadata. (4 credits)
|
|
2810
|
+
|
|
2811
|
+
:param url: Pillar page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2812
|
+
"""
|
|
2813
|
+
return await self._t.get("/v1/pillar/page", {"url": url})
|
|
2814
|
+
|
|
2815
|
+
|
|
2816
|
+
class LinkbioApi:
|
|
2817
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2818
|
+
self._t = transport
|
|
2819
|
+
|
|
2820
|
+
def page(self, *, url: str) -> dict[str, Any]:
|
|
2821
|
+
"""Linkbio Page — Public Linkbio page links and profile metadata. (4 credits)
|
|
2822
|
+
|
|
2823
|
+
:param url: Linkbio page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2824
|
+
"""
|
|
2825
|
+
return self._t.get("/v1/linkbio/page", {"url": url})
|
|
2826
|
+
|
|
2827
|
+
|
|
2828
|
+
class AsyncLinkbioApi:
|
|
2829
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2830
|
+
self._t = transport
|
|
2831
|
+
|
|
2832
|
+
async def page(self, *, url: str) -> dict[str, Any]:
|
|
2833
|
+
"""Linkbio Page — Public Linkbio page links and profile metadata. (4 credits)
|
|
2834
|
+
|
|
2835
|
+
:param url: Linkbio page URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2836
|
+
"""
|
|
2837
|
+
return await self._t.get("/v1/linkbio/page", {"url": url})
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
class LinkmeApi:
|
|
2841
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2842
|
+
self._t = transport
|
|
2843
|
+
|
|
2844
|
+
def profile(self, *, url: str) -> dict[str, Any]:
|
|
2845
|
+
"""Linkme Profile — Public Linkme profile links and metadata. (4 credits)
|
|
2846
|
+
|
|
2847
|
+
:param url: Linkme profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2848
|
+
"""
|
|
2849
|
+
return self._t.get("/v1/linkme/profile", {"url": url})
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
class AsyncLinkmeApi:
|
|
2853
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2854
|
+
self._t = transport
|
|
2855
|
+
|
|
2856
|
+
async def profile(self, *, url: str) -> dict[str, Any]:
|
|
2857
|
+
"""Linkme Profile — Public Linkme profile links and metadata. (4 credits)
|
|
2858
|
+
|
|
2859
|
+
:param url: Linkme profile URL or username. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2860
|
+
"""
|
|
2861
|
+
return await self._t.get("/v1/linkme/profile", {"url": url})
|
|
2862
|
+
|
|
2863
|
+
|
|
2864
|
+
class AdLibraryApi:
|
|
2865
|
+
def __init__(self, transport: SyncTransport) -> None:
|
|
2866
|
+
self._t = transport
|
|
2867
|
+
|
|
2868
|
+
def facebook_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2869
|
+
"""Facebook Ad Library Search — Search Meta/Facebook ads by keyword. (70 credits)
|
|
2870
|
+
|
|
2871
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2872
|
+
:param country: ISO country code. Default US.
|
|
2873
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2874
|
+
"""
|
|
2875
|
+
return self._t.get("/v1/ad-library/facebook/search", {"q": q, "country": country, "limit": limit})
|
|
2876
|
+
|
|
2877
|
+
def facebook_company_ads(self, *, url: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2878
|
+
"""Facebook Company Ads — Ads for a Facebook page or Meta Ad Library URL. (70 credits)
|
|
2879
|
+
|
|
2880
|
+
:param url: Facebook page URL or Meta Ad Library URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2881
|
+
:param country: ISO country code. Default US.
|
|
2882
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2883
|
+
"""
|
|
2884
|
+
return self._t.get("/v1/ad-library/facebook/company-ads", {"url": url, "country": country, "limit": limit})
|
|
2885
|
+
|
|
2886
|
+
def facebook_search_companies(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2887
|
+
"""Facebook Ad Library Search Companies — Find advertisers/pages in the Meta Ad Library by name. (70 credits)
|
|
2888
|
+
|
|
2889
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2890
|
+
:param country: ISO country code. Default US.
|
|
2891
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2892
|
+
"""
|
|
2893
|
+
return self._t.get("/v1/ad-library/facebook/search-companies", {"q": q, "country": country, "limit": limit})
|
|
2894
|
+
|
|
2895
|
+
def facebook_ad_details(self, *, url: str) -> dict[str, Any]:
|
|
2896
|
+
"""Facebook Ad Details — Meta/Facebook ad details. (17 credits)
|
|
2897
|
+
|
|
2898
|
+
:param url: Meta Ad Library ad URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2899
|
+
"""
|
|
2900
|
+
return self._t.get("/v1/ad-library/facebook/ad-details", {"url": url})
|
|
2901
|
+
|
|
2902
|
+
def facebook_ad_transcript(self, *, url: str) -> dict[str, Any]:
|
|
2903
|
+
"""Facebook Ad Transcript — Extract creative text from a Meta/Facebook ad as transcript text. (17 credits)
|
|
2904
|
+
|
|
2905
|
+
:param url: Meta Ad Library ad URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2906
|
+
"""
|
|
2907
|
+
return self._t.get("/v1/ad-library/facebook/ad-transcript", {"url": url})
|
|
2908
|
+
|
|
2909
|
+
def tiktok_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2910
|
+
"""TikTok Ad Library Search — Search TikTok Ad Library and Creative Center. (70 credits)
|
|
2911
|
+
|
|
2912
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2913
|
+
:param country: ISO country code. Default DE.
|
|
2914
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2915
|
+
"""
|
|
2916
|
+
return self._t.get("/v1/ad-library/tiktok/search", {"q": q, "country": country, "limit": limit})
|
|
2917
|
+
|
|
2918
|
+
def tiktok_ad_details(self, *, url: str, country: str | None = None) -> dict[str, Any]:
|
|
2919
|
+
"""TikTok Ad Details — TikTok ad details by ad URL or ID. (17 credits)
|
|
2920
|
+
|
|
2921
|
+
:param url: TikTok Ad Library URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2922
|
+
:param country: ISO country code. Default DE.
|
|
2923
|
+
"""
|
|
2924
|
+
return self._t.get("/v1/ad-library/tiktok/ad-details", {"url": url, "country": country})
|
|
2925
|
+
|
|
2926
|
+
def google_company_ads(self, *, advertiser: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2927
|
+
"""Google Company Ads — Google Ads Transparency Center ads for an advertiser. (67 credits)
|
|
2928
|
+
|
|
2929
|
+
:param advertiser: Advertiser name, domain, or Google advertiser ID.
|
|
2930
|
+
:param country: ISO country code. Default US.
|
|
2931
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2932
|
+
"""
|
|
2933
|
+
return self._t.get("/v1/ad-library/google/company-ads", {"advertiser": advertiser, "country": country, "limit": limit})
|
|
2934
|
+
|
|
2935
|
+
def google_ad_details(self, *, creative_id: str, country: str | None = None) -> dict[str, Any]:
|
|
2936
|
+
"""Google Ad Details — Google ad details by Transparency Center URL. (17 credits)
|
|
2937
|
+
|
|
2938
|
+
:param creative_id: Google Ads Transparency Center URL containing AR advertiser ID and CR creative ID.
|
|
2939
|
+
:param country: ISO country code. Default US.
|
|
2940
|
+
"""
|
|
2941
|
+
return self._t.get("/v1/ad-library/google/ad-details", {"creative_id": creative_id, "country": country})
|
|
2942
|
+
|
|
2943
|
+
def google_advertiser_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2944
|
+
"""Google Advertiser Search — Search Google Ads advertisers. (45 credits)
|
|
2945
|
+
|
|
2946
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2947
|
+
:param country: ISO country code. Default US.
|
|
2948
|
+
:param limit: Max items to return. Default 10, max 50. Billed per result.
|
|
2949
|
+
"""
|
|
2950
|
+
return self._t.get("/v1/ad-library/google/advertiser-search", {"q": q, "country": country, "limit": limit})
|
|
2951
|
+
|
|
2952
|
+
def linkedin_search_ads(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2953
|
+
"""LinkedIn Ad Library Search — Search LinkedIn Ad Library ads. (70 credits)
|
|
2954
|
+
|
|
2955
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2956
|
+
:param country: ISO country code. Default US.
|
|
2957
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2958
|
+
"""
|
|
2959
|
+
return self._t.get("/v1/ad-library/linkedin/search-ads", {"q": q, "country": country, "limit": limit})
|
|
2960
|
+
|
|
2961
|
+
def linkedin_ad_details(self, *, url: str) -> dict[str, Any]:
|
|
2962
|
+
"""LinkedIn Ad Details — LinkedIn ad details by URL or ID. (17 credits)
|
|
2963
|
+
|
|
2964
|
+
:param url: LinkedIn Ad Library URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2965
|
+
"""
|
|
2966
|
+
return self._t.get("/v1/ad-library/linkedin/ad-details", {"url": url})
|
|
2967
|
+
|
|
2968
|
+
|
|
2969
|
+
class AsyncAdLibraryApi:
|
|
2970
|
+
def __init__(self, transport: AsyncTransport) -> None:
|
|
2971
|
+
self._t = transport
|
|
2972
|
+
|
|
2973
|
+
async def facebook_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2974
|
+
"""Facebook Ad Library Search — Search Meta/Facebook ads by keyword. (70 credits)
|
|
2975
|
+
|
|
2976
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2977
|
+
:param country: ISO country code. Default US.
|
|
2978
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2979
|
+
"""
|
|
2980
|
+
return await self._t.get("/v1/ad-library/facebook/search", {"q": q, "country": country, "limit": limit})
|
|
2981
|
+
|
|
2982
|
+
async def facebook_company_ads(self, *, url: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2983
|
+
"""Facebook Company Ads — Ads for a Facebook page or Meta Ad Library URL. (70 credits)
|
|
2984
|
+
|
|
2985
|
+
:param url: Facebook page URL or Meta Ad Library URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
2986
|
+
:param country: ISO country code. Default US.
|
|
2987
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2988
|
+
"""
|
|
2989
|
+
return await self._t.get("/v1/ad-library/facebook/company-ads", {"url": url, "country": country, "limit": limit})
|
|
2990
|
+
|
|
2991
|
+
async def facebook_search_companies(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
2992
|
+
"""Facebook Ad Library Search Companies — Find advertisers/pages in the Meta Ad Library by name. (70 credits)
|
|
2993
|
+
|
|
2994
|
+
:param q: Search query or keywords (min 2 chars).
|
|
2995
|
+
:param country: ISO country code. Default US.
|
|
2996
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
2997
|
+
"""
|
|
2998
|
+
return await self._t.get("/v1/ad-library/facebook/search-companies", {"q": q, "country": country, "limit": limit})
|
|
2999
|
+
|
|
3000
|
+
async def facebook_ad_details(self, *, url: str) -> dict[str, Any]:
|
|
3001
|
+
"""Facebook Ad Details — Meta/Facebook ad details. (17 credits)
|
|
3002
|
+
|
|
3003
|
+
:param url: Meta Ad Library ad URL. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
3004
|
+
"""
|
|
3005
|
+
return await self._t.get("/v1/ad-library/facebook/ad-details", {"url": url})
|
|
3006
|
+
|
|
3007
|
+
async def facebook_ad_transcript(self, *, url: str) -> dict[str, Any]:
|
|
3008
|
+
"""Facebook Ad Transcript — Extract creative text from a Meta/Facebook ad as transcript text. (17 credits)
|
|
3009
|
+
|
|
3010
|
+
:param url: Meta Ad Library ad URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
3011
|
+
"""
|
|
3012
|
+
return await self._t.get("/v1/ad-library/facebook/ad-transcript", {"url": url})
|
|
3013
|
+
|
|
3014
|
+
async def tiktok_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
3015
|
+
"""TikTok Ad Library Search — Search TikTok Ad Library and Creative Center. (70 credits)
|
|
3016
|
+
|
|
3017
|
+
:param q: Search query or keywords (min 2 chars).
|
|
3018
|
+
:param country: ISO country code. Default DE.
|
|
3019
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
3020
|
+
"""
|
|
3021
|
+
return await self._t.get("/v1/ad-library/tiktok/search", {"q": q, "country": country, "limit": limit})
|
|
3022
|
+
|
|
3023
|
+
async def tiktok_ad_details(self, *, url: str, country: str | None = None) -> dict[str, Any]:
|
|
3024
|
+
"""TikTok Ad Details — TikTok ad details by ad URL or ID. (17 credits)
|
|
3025
|
+
|
|
3026
|
+
:param url: TikTok Ad Library URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
3027
|
+
:param country: ISO country code. Default DE.
|
|
3028
|
+
"""
|
|
3029
|
+
return await self._t.get("/v1/ad-library/tiktok/ad-details", {"url": url, "country": country})
|
|
3030
|
+
|
|
3031
|
+
async def google_company_ads(self, *, advertiser: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
3032
|
+
"""Google Company Ads — Google Ads Transparency Center ads for an advertiser. (67 credits)
|
|
3033
|
+
|
|
3034
|
+
:param advertiser: Advertiser name, domain, or Google advertiser ID.
|
|
3035
|
+
:param country: ISO country code. Default US.
|
|
3036
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
3037
|
+
"""
|
|
3038
|
+
return await self._t.get("/v1/ad-library/google/company-ads", {"advertiser": advertiser, "country": country, "limit": limit})
|
|
3039
|
+
|
|
3040
|
+
async def google_ad_details(self, *, creative_id: str, country: str | None = None) -> dict[str, Any]:
|
|
3041
|
+
"""Google Ad Details — Google ad details by Transparency Center URL. (17 credits)
|
|
3042
|
+
|
|
3043
|
+
:param creative_id: Google Ads Transparency Center URL containing AR advertiser ID and CR creative ID.
|
|
3044
|
+
:param country: ISO country code. Default US.
|
|
3045
|
+
"""
|
|
3046
|
+
return await self._t.get("/v1/ad-library/google/ad-details", {"creative_id": creative_id, "country": country})
|
|
3047
|
+
|
|
3048
|
+
async def google_advertiser_search(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
3049
|
+
"""Google Advertiser Search — Search Google Ads advertisers. (45 credits)
|
|
3050
|
+
|
|
3051
|
+
:param q: Search query or keywords (min 2 chars).
|
|
3052
|
+
:param country: ISO country code. Default US.
|
|
3053
|
+
:param limit: Max items to return. Default 10, max 50. Billed per result.
|
|
3054
|
+
"""
|
|
3055
|
+
return await self._t.get("/v1/ad-library/google/advertiser-search", {"q": q, "country": country, "limit": limit})
|
|
3056
|
+
|
|
3057
|
+
async def linkedin_search_ads(self, *, q: str, country: str | None = None, limit: float | None = None) -> dict[str, Any]:
|
|
3058
|
+
"""LinkedIn Ad Library Search — Search LinkedIn Ad Library ads. (70 credits)
|
|
3059
|
+
|
|
3060
|
+
:param q: Search query or keywords (min 2 chars).
|
|
3061
|
+
:param country: ISO country code. Default US.
|
|
3062
|
+
:param limit: Max items to return. Default 20, max 200. Billed per result.
|
|
3063
|
+
"""
|
|
3064
|
+
return await self._t.get("/v1/ad-library/linkedin/search-ads", {"q": q, "country": country, "limit": limit})
|
|
3065
|
+
|
|
3066
|
+
async def linkedin_ad_details(self, *, url: str) -> dict[str, Any]:
|
|
3067
|
+
"""LinkedIn Ad Details — LinkedIn ad details by URL or ID. (17 credits)
|
|
3068
|
+
|
|
3069
|
+
:param url: LinkedIn Ad Library URL or ad ID. The URL platform must match this tool's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
|
|
3070
|
+
"""
|
|
3071
|
+
return await self._t.get("/v1/ad-library/linkedin/ad-details", {"url": url})
|
|
3072
|
+
|
|
3073
|
+
|
|
3074
|
+
class Captapi:
|
|
3075
|
+
"""Captapi API client. Get your key at https://captapi.com/dashboard/api-keys"""
|
|
3076
|
+
|
|
3077
|
+
def __init__(self, api_key: str | None = None, *, base_url: str | None = None, timeout: float = 120.0) -> None:
|
|
3078
|
+
self._transport = SyncTransport(api_key=api_key, base_url=base_url, timeout=timeout)
|
|
3079
|
+
self.youtube = YoutubeApi(self._transport)
|
|
3080
|
+
self.tiktok = TiktokApi(self._transport)
|
|
3081
|
+
self.instagram = InstagramApi(self._transport)
|
|
3082
|
+
self.facebook = FacebookApi(self._transport)
|
|
3083
|
+
self.twitter = TwitterApi(self._transport)
|
|
3084
|
+
self.reddit = RedditApi(self._transport)
|
|
3085
|
+
self.threads = ThreadsApi(self._transport)
|
|
3086
|
+
self.bluesky = BlueskyApi(self._transport)
|
|
3087
|
+
self.pinterest = PinterestApi(self._transport)
|
|
3088
|
+
self.linkedin = LinkedinApi(self._transport)
|
|
3089
|
+
self.rumble = RumbleApi(self._transport)
|
|
3090
|
+
self.tiktok_shop = TiktokShopApi(self._transport)
|
|
3091
|
+
self.github = GithubApi(self._transport)
|
|
3092
|
+
self.google = GoogleApi(self._transport)
|
|
3093
|
+
self.twitch = TwitchApi(self._transport)
|
|
3094
|
+
self.spotify = SpotifyApi(self._transport)
|
|
3095
|
+
self.soundcloud = SoundcloudApi(self._transport)
|
|
3096
|
+
self.linktree = LinktreeApi(self._transport)
|
|
3097
|
+
self.snapchat = SnapchatApi(self._transport)
|
|
3098
|
+
self.truth_social = TruthSocialApi(self._transport)
|
|
3099
|
+
self.kick = KickApi(self._transport)
|
|
3100
|
+
self.amazon_shop = AmazonShopApi(self._transport)
|
|
3101
|
+
self.age_gender = AgeGenderApi(self._transport)
|
|
3102
|
+
self.account = AccountApi(self._transport)
|
|
3103
|
+
self.kwai = KwaiApi(self._transport)
|
|
3104
|
+
self.komi = KomiApi(self._transport)
|
|
3105
|
+
self.pillar = PillarApi(self._transport)
|
|
3106
|
+
self.linkbio = LinkbioApi(self._transport)
|
|
3107
|
+
self.linkme = LinkmeApi(self._transport)
|
|
3108
|
+
self.ad_library = AdLibraryApi(self._transport)
|
|
3109
|
+
|
|
3110
|
+
def close(self) -> None:
|
|
3111
|
+
self._transport.close()
|
|
3112
|
+
|
|
3113
|
+
def __enter__(self) -> "Captapi":
|
|
3114
|
+
return self
|
|
3115
|
+
|
|
3116
|
+
def __exit__(self, *exc: object) -> None:
|
|
3117
|
+
self.close()
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
class AsyncCaptapi:
|
|
3121
|
+
"""Captapi API client. Get your key at https://captapi.com/dashboard/api-keys"""
|
|
3122
|
+
|
|
3123
|
+
def __init__(self, api_key: str | None = None, *, base_url: str | None = None, timeout: float = 120.0) -> None:
|
|
3124
|
+
self._transport = AsyncTransport(api_key=api_key, base_url=base_url, timeout=timeout)
|
|
3125
|
+
self.youtube = AsyncYoutubeApi(self._transport)
|
|
3126
|
+
self.tiktok = AsyncTiktokApi(self._transport)
|
|
3127
|
+
self.instagram = AsyncInstagramApi(self._transport)
|
|
3128
|
+
self.facebook = AsyncFacebookApi(self._transport)
|
|
3129
|
+
self.twitter = AsyncTwitterApi(self._transport)
|
|
3130
|
+
self.reddit = AsyncRedditApi(self._transport)
|
|
3131
|
+
self.threads = AsyncThreadsApi(self._transport)
|
|
3132
|
+
self.bluesky = AsyncBlueskyApi(self._transport)
|
|
3133
|
+
self.pinterest = AsyncPinterestApi(self._transport)
|
|
3134
|
+
self.linkedin = AsyncLinkedinApi(self._transport)
|
|
3135
|
+
self.rumble = AsyncRumbleApi(self._transport)
|
|
3136
|
+
self.tiktok_shop = AsyncTiktokShopApi(self._transport)
|
|
3137
|
+
self.github = AsyncGithubApi(self._transport)
|
|
3138
|
+
self.google = AsyncGoogleApi(self._transport)
|
|
3139
|
+
self.twitch = AsyncTwitchApi(self._transport)
|
|
3140
|
+
self.spotify = AsyncSpotifyApi(self._transport)
|
|
3141
|
+
self.soundcloud = AsyncSoundcloudApi(self._transport)
|
|
3142
|
+
self.linktree = AsyncLinktreeApi(self._transport)
|
|
3143
|
+
self.snapchat = AsyncSnapchatApi(self._transport)
|
|
3144
|
+
self.truth_social = AsyncTruthSocialApi(self._transport)
|
|
3145
|
+
self.kick = AsyncKickApi(self._transport)
|
|
3146
|
+
self.amazon_shop = AsyncAmazonShopApi(self._transport)
|
|
3147
|
+
self.age_gender = AsyncAgeGenderApi(self._transport)
|
|
3148
|
+
self.account = AsyncAccountApi(self._transport)
|
|
3149
|
+
self.kwai = AsyncKwaiApi(self._transport)
|
|
3150
|
+
self.komi = AsyncKomiApi(self._transport)
|
|
3151
|
+
self.pillar = AsyncPillarApi(self._transport)
|
|
3152
|
+
self.linkbio = AsyncLinkbioApi(self._transport)
|
|
3153
|
+
self.linkme = AsyncLinkmeApi(self._transport)
|
|
3154
|
+
self.ad_library = AsyncAdLibraryApi(self._transport)
|
|
3155
|
+
|
|
3156
|
+
async def aclose(self) -> None:
|
|
3157
|
+
await self._transport.aclose()
|
|
3158
|
+
|
|
3159
|
+
async def __aenter__(self) -> "AsyncCaptapi":
|
|
3160
|
+
return self
|
|
3161
|
+
|
|
3162
|
+
async def __aexit__(self, *exc: object) -> None:
|
|
3163
|
+
await self.aclose()
|
|
3164
|
+
|