composio-scavio 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -5
- package/dist/index.cjs +199 -66
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +199 -66
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -9,6 +9,15 @@ var str = (d) => z.string().describe(d);
|
|
|
9
9
|
var ostr = (d) => z.string().optional().describe(d);
|
|
10
10
|
var onum = (d) => z.number().optional().describe(d);
|
|
11
11
|
var obool = (d) => z.boolean().optional().describe(d);
|
|
12
|
+
function googleSearchParams(i) {
|
|
13
|
+
const params = { query: i.query };
|
|
14
|
+
if (i.countryCode != null) params.gl = i.countryCode;
|
|
15
|
+
if (i.language != null) params.hl = i.language;
|
|
16
|
+
if (i.page != null && i.page > 1) params.start = (i.page - 1) * 10;
|
|
17
|
+
if (i.device != null) params.device = i.device;
|
|
18
|
+
if (i.nfpr != null) params.nfpr = i.nfpr;
|
|
19
|
+
return params;
|
|
20
|
+
}
|
|
12
21
|
function buildScavioToolkit(options = {}) {
|
|
13
22
|
const {
|
|
14
23
|
apiKey,
|
|
@@ -36,18 +45,16 @@ function buildScavioToolkit(options = {}) {
|
|
|
36
45
|
tool(
|
|
37
46
|
"GOOGLE_SEARCH",
|
|
38
47
|
"Scavio Google Search",
|
|
39
|
-
"Search Google for real-time web results (
|
|
48
|
+
"Search Google for real-time web results (organic_results, ads, and the AI Overview when present). Costs 1 credit.",
|
|
40
49
|
z.object({
|
|
41
50
|
query: str("The search query."),
|
|
42
|
-
|
|
51
|
+
countryCode: ostr("Two-letter country code, e.g. 'us'."),
|
|
43
52
|
language: ostr("Two-letter language code, e.g. 'en'."),
|
|
44
53
|
page: onum("Result page number (1-based)."),
|
|
45
|
-
search_type: ostr("Search vertical, e.g. 'search', 'news', 'images'."),
|
|
46
54
|
device: ostr("Device profile: 'desktop' or 'mobile'."),
|
|
47
|
-
nfpr: obool("Disable auto-correction of the query when true.")
|
|
48
|
-
light_request: obool("Cheaper, lighter response (1 credit instead of 2) when true.")
|
|
55
|
+
nfpr: obool("Disable auto-correction of the query when true.")
|
|
49
56
|
}),
|
|
50
|
-
(i) => client.google.search(i)
|
|
57
|
+
(i) => client.google.search(googleSearchParams(i))
|
|
51
58
|
)
|
|
52
59
|
);
|
|
53
60
|
}
|
|
@@ -56,39 +63,33 @@ function buildScavioToolkit(options = {}) {
|
|
|
56
63
|
tool(
|
|
57
64
|
"AMAZON_SEARCH",
|
|
58
65
|
"Scavio Amazon Search",
|
|
59
|
-
"Search Amazon for products matching a query.",
|
|
66
|
+
"Search Amazon for products matching a query. Results are unsorted and cannot be filtered by category, merchant or price. Costs 1 credit.",
|
|
60
67
|
z.object({
|
|
61
68
|
query: str("The product search query."),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
language: ostr("Two-letter language code."),
|
|
65
|
-
currency: ostr("Currency code, e.g. 'USD'."),
|
|
66
|
-
device: ostr("Device profile: 'desktop' or 'mobile'."),
|
|
67
|
-
sort_by: ostr("Sort order for results."),
|
|
68
|
-
start_page: onum("First page to return."),
|
|
69
|
-
pages: onum("Number of pages to return."),
|
|
70
|
-
category_id: ostr("Restrict to an Amazon category id."),
|
|
71
|
-
merchant_id: ostr("Restrict to a merchant id."),
|
|
72
|
-
zip_code: ostr("Delivery ZIP/postal code."),
|
|
73
|
-
autoselect_variant: obool("Auto-select the best product variant when true.")
|
|
69
|
+
country: ostr("Marketplace country code (ISO 3166-1 alpha-2), not a domain: 'us' (default), 'gb' (the UK is gb, not uk), 'ca', 'de', 'fr', 'es', 'it', 'jp', 'in', 'au', 'br', 'mx', 'nl', 'pl', 'se', 'sg', 'ae', 'sa', 'eg', 'cn', 'be', 'tr'. An unknown code falls back to us."),
|
|
70
|
+
page: onum("Result page, 1-based. One page per call, 1 credit each.")
|
|
74
71
|
}),
|
|
75
72
|
(i) => client.amazon.search(i)
|
|
76
73
|
),
|
|
77
74
|
tool(
|
|
78
75
|
"AMAZON_PRODUCT",
|
|
79
76
|
"Scavio Amazon Product",
|
|
80
|
-
"Fetch full Amazon product details by ASIN.",
|
|
77
|
+
"Fetch full Amazon product details by ASIN. price is the buy-box price only. Costs 1 credit.",
|
|
81
78
|
z.object({
|
|
82
79
|
asin: str("Amazon Standard Identification Number (ASIN) of the product."),
|
|
83
|
-
|
|
84
|
-
country: ostr("Two-letter country code."),
|
|
85
|
-
language: ostr("Two-letter language code."),
|
|
86
|
-
currency: ostr("Currency code, e.g. 'USD'."),
|
|
87
|
-
device: ostr("Device profile: 'desktop' or 'mobile'."),
|
|
88
|
-
zip_code: ostr("Delivery ZIP/postal code."),
|
|
89
|
-
autoselect_variant: obool("Auto-select the best product variant when true.")
|
|
80
|
+
country: ostr("Marketplace country code (ISO 3166-1 alpha-2), not a domain: 'us' (default), 'gb' (the UK is gb, not uk), 'ca', 'de', 'fr', 'es', 'it', 'jp', 'in', 'au', 'br', 'mx', 'nl', 'pl', 'se', 'sg', 'ae', 'sa', 'eg', 'cn', 'be', 'tr'. An unknown code falls back to us.")
|
|
90
81
|
}),
|
|
91
82
|
(i) => client.amazon.product(i)
|
|
83
|
+
),
|
|
84
|
+
tool(
|
|
85
|
+
"AMAZON_OFFERS",
|
|
86
|
+
"Scavio Amazon Offers",
|
|
87
|
+
"List every seller offer for one Amazon ASIN: price, seller, condition, shipping, and which offer holds the buy box. Page 1 only. Use this instead of AMAZON_PRODUCT when comparing sellers or checking who owns the buy box. Costs 1 credit.",
|
|
88
|
+
z.object({
|
|
89
|
+
asin: str("Amazon Standard Identification Number (ASIN) of the product."),
|
|
90
|
+
country: ostr("Marketplace country code (ISO 3166-1 alpha-2), not a domain: 'us' (default), 'gb' (the UK is gb, not uk), 'ca', 'de', 'fr', 'es', 'it', 'jp', 'in', 'au', 'br', 'mx', 'nl', 'pl', 'se', 'sg', 'ae', 'sa', 'eg', 'cn', 'be', 'tr'. An unknown code falls back to us.")
|
|
91
|
+
}),
|
|
92
|
+
(i) => client.amazon.offers(i)
|
|
92
93
|
)
|
|
93
94
|
);
|
|
94
95
|
}
|
|
@@ -97,7 +98,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
97
98
|
tool(
|
|
98
99
|
"WALMART_SEARCH",
|
|
99
100
|
"Scavio Walmart Search",
|
|
100
|
-
"Search Walmart for products matching a query.",
|
|
101
|
+
"Search Walmart for products matching a query. Costs 1 credit.",
|
|
101
102
|
z.object({
|
|
102
103
|
query: str("The product search query."),
|
|
103
104
|
domain: ostr("Walmart domain."),
|
|
@@ -116,7 +117,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
116
117
|
tool(
|
|
117
118
|
"WALMART_PRODUCT",
|
|
118
119
|
"Scavio Walmart Product",
|
|
119
|
-
"Fetch full Walmart product details by product id.",
|
|
120
|
+
"Fetch full Walmart product details by product id. Costs 1 credit.",
|
|
120
121
|
z.object({
|
|
121
122
|
product_id: str("Walmart product id."),
|
|
122
123
|
domain: ostr("Walmart domain."),
|
|
@@ -133,13 +134,15 @@ function buildScavioToolkit(options = {}) {
|
|
|
133
134
|
tool(
|
|
134
135
|
"YOUTUBE_SEARCH",
|
|
135
136
|
"Scavio YouTube Search",
|
|
136
|
-
"Search YouTube for videos, channels, or playlists.",
|
|
137
|
+
"Search YouTube for videos, channels, or playlists. Costs 2 credits.",
|
|
137
138
|
z.object({
|
|
138
139
|
query: str("The video search query."),
|
|
139
|
-
upload_date: ostr("Upload date filter,
|
|
140
|
-
type: ostr("Result type
|
|
141
|
-
duration: ostr("Duration filter
|
|
142
|
-
sort_by: ostr("Sort order
|
|
140
|
+
upload_date: ostr("Upload date filter: 'last_hour', 'today', 'this_week', 'this_month', 'this_year'."),
|
|
141
|
+
type: ostr("Result type: 'video', 'channel', 'playlist', or 'movie'."),
|
|
142
|
+
duration: ostr("Duration filter: 'short', 'medium', or 'long'."),
|
|
143
|
+
sort_by: ostr("Sort order: 'relevance', 'date', 'view_count', or 'rating'."),
|
|
144
|
+
features: z.array(z.string()).optional().describe("Feature filters, e.g. ['hd', '4k', 'subtitles', 'creative_commons', 'live', '360', '3d', 'hdr', 'vr180']."),
|
|
145
|
+
cursor: ostr("Pagination cursor from a prior response."),
|
|
143
146
|
hd: obool("Restrict to HD videos when true."),
|
|
144
147
|
subtitles: obool("Restrict to videos with subtitles when true."),
|
|
145
148
|
creative_commons: obool("Restrict to Creative Commons videos when true."),
|
|
@@ -147,12 +150,144 @@ function buildScavioToolkit(options = {}) {
|
|
|
147
150
|
}),
|
|
148
151
|
(i) => client.youtube.search(i)
|
|
149
152
|
),
|
|
153
|
+
tool(
|
|
154
|
+
"YOUTUBE_SHORTS",
|
|
155
|
+
"Scavio YouTube Shorts",
|
|
156
|
+
"Search YouTube Shorts. Costs 2 credits.",
|
|
157
|
+
z.object({
|
|
158
|
+
query: str("The Shorts search query."),
|
|
159
|
+
sort_by: ostr("Sort order: 'relevance', 'date', 'view_count', or 'rating'."),
|
|
160
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
161
|
+
}),
|
|
162
|
+
(i) => client.youtube.shorts(i)
|
|
163
|
+
),
|
|
164
|
+
tool(
|
|
165
|
+
"YOUTUBE_SUGGESTIONS",
|
|
166
|
+
"Scavio YouTube Suggestions",
|
|
167
|
+
"Get YouTube search autocomplete suggestions for a partial query. Costs 1 credit.",
|
|
168
|
+
z.object({
|
|
169
|
+
query: str("The partial query to autocomplete."),
|
|
170
|
+
language: ostr("Suggestion language (ISO 639-1, default 'en')."),
|
|
171
|
+
region: ostr("Region code (ISO 3166-1 alpha-2, default 'US').")
|
|
172
|
+
}),
|
|
173
|
+
(i) => client.youtube.suggestions(i)
|
|
174
|
+
),
|
|
175
|
+
tool(
|
|
176
|
+
"YOUTUBE_VIDEO",
|
|
177
|
+
"Scavio YouTube Video",
|
|
178
|
+
"Fetch full metadata for a YouTube video by id or watch URL. Costs 1 credit.",
|
|
179
|
+
z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
180
|
+
(i) => client.youtube.video(i)
|
|
181
|
+
),
|
|
150
182
|
tool(
|
|
151
183
|
"YOUTUBE_METADATA",
|
|
152
184
|
"Scavio YouTube Metadata",
|
|
153
|
-
"Fetch metadata for a YouTube video by id.",
|
|
154
|
-
z.object({ video_id: str("YouTube video id.") }),
|
|
185
|
+
"Fetch metadata for a YouTube video by id. Deprecated alias of YOUTUBE_VIDEO.",
|
|
186
|
+
z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
155
187
|
(i) => client.youtube.metadata(i)
|
|
188
|
+
),
|
|
189
|
+
tool(
|
|
190
|
+
"YOUTUBE_COMMENTS",
|
|
191
|
+
"Scavio YouTube Comments",
|
|
192
|
+
"List top-level comments on a YouTube video. Costs 1 credit.",
|
|
193
|
+
z.object({
|
|
194
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
195
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
196
|
+
}),
|
|
197
|
+
(i) => client.youtube.comments(i)
|
|
198
|
+
),
|
|
199
|
+
tool(
|
|
200
|
+
"YOUTUBE_COMMENT_REPLIES",
|
|
201
|
+
"Scavio YouTube Comment Replies",
|
|
202
|
+
"List replies to a YouTube comment using its reply cursor. Costs 1 credit.",
|
|
203
|
+
z.object({
|
|
204
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
205
|
+
reply_cursor: str("Reply cursor from a parent comment's 'reply_cursor' field."),
|
|
206
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
207
|
+
}),
|
|
208
|
+
(i) => client.youtube.commentReplies(i)
|
|
209
|
+
),
|
|
210
|
+
tool(
|
|
211
|
+
"YOUTUBE_TRANSCRIPT",
|
|
212
|
+
"Scavio YouTube Transcript",
|
|
213
|
+
"Fetch the transcript or timed captions for a YouTube video. Costs 8 credits.",
|
|
214
|
+
z.object({
|
|
215
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
216
|
+
language: ostr("Caption language code (default 'en')."),
|
|
217
|
+
format: ostr("'text' for a plain transcript or 'srt' for timed subtitles (default 'text').")
|
|
218
|
+
}),
|
|
219
|
+
(i) => client.youtube.transcript(i)
|
|
220
|
+
),
|
|
221
|
+
tool(
|
|
222
|
+
"YOUTUBE_RELATED",
|
|
223
|
+
"Scavio YouTube Related",
|
|
224
|
+
"List videos related to a YouTube video. Costs 1 credit.",
|
|
225
|
+
z.object({
|
|
226
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
227
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
228
|
+
}),
|
|
229
|
+
(i) => client.youtube.related(i)
|
|
230
|
+
),
|
|
231
|
+
tool(
|
|
232
|
+
"YOUTUBE_CHANNEL_SEARCH",
|
|
233
|
+
"Scavio YouTube Channel Search",
|
|
234
|
+
"Search YouTube channels by keyword. Costs 1 credit.",
|
|
235
|
+
z.object({
|
|
236
|
+
query: str("The channel search query."),
|
|
237
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
238
|
+
}),
|
|
239
|
+
(i) => client.youtube.channelSearch(i)
|
|
240
|
+
),
|
|
241
|
+
tool(
|
|
242
|
+
"YOUTUBE_CHANNEL",
|
|
243
|
+
"Scavio YouTube Channel",
|
|
244
|
+
"Fetch YouTube channel details by id, @handle, or URL. Costs 1 credit.",
|
|
245
|
+
z.object({ channel_id: str("YouTube channel id, @handle, or channel URL.") }),
|
|
246
|
+
(i) => client.youtube.channel(i)
|
|
247
|
+
),
|
|
248
|
+
tool(
|
|
249
|
+
"YOUTUBE_CHANNEL_VIDEOS",
|
|
250
|
+
"Scavio YouTube Channel Videos",
|
|
251
|
+
"List videos uploaded by a YouTube channel. Costs 1 credit.",
|
|
252
|
+
z.object({
|
|
253
|
+
channel_id: str("YouTube channel id."),
|
|
254
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
255
|
+
}),
|
|
256
|
+
(i) => client.youtube.channelVideos(i)
|
|
257
|
+
),
|
|
258
|
+
tool(
|
|
259
|
+
"YOUTUBE_CHANNEL_SHORTS",
|
|
260
|
+
"Scavio YouTube Channel Shorts",
|
|
261
|
+
"List Shorts posted by a YouTube channel. Costs 1 credit.",
|
|
262
|
+
z.object({
|
|
263
|
+
channel_id: str("YouTube channel id."),
|
|
264
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
265
|
+
}),
|
|
266
|
+
(i) => client.youtube.channelShorts(i)
|
|
267
|
+
),
|
|
268
|
+
tool(
|
|
269
|
+
"YOUTUBE_CHANNEL_COMMUNITY",
|
|
270
|
+
"Scavio YouTube Channel Community",
|
|
271
|
+
"List community posts from a YouTube channel. Costs 1 credit.",
|
|
272
|
+
z.object({
|
|
273
|
+
channel_id: str("YouTube channel id."),
|
|
274
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
275
|
+
}),
|
|
276
|
+
(i) => client.youtube.channelCommunity(i)
|
|
277
|
+
),
|
|
278
|
+
tool(
|
|
279
|
+
"YOUTUBE_CHANNEL_RESOLVE",
|
|
280
|
+
"Scavio YouTube Channel Resolve",
|
|
281
|
+
"Resolve a YouTube @handle or channel URL to a channel id. Costs 1 credit.",
|
|
282
|
+
z.object({ channel: str("A channel @handle or channel URL to resolve to a channel id.") }),
|
|
283
|
+
(i) => client.youtube.channelResolve(i)
|
|
284
|
+
),
|
|
285
|
+
tool(
|
|
286
|
+
"YOUTUBE_STREAMS",
|
|
287
|
+
"Scavio YouTube Streams",
|
|
288
|
+
"Fetch playable or downloadable stream formats for a YouTube video. Costs 3 credits.",
|
|
289
|
+
z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
290
|
+
(i) => client.youtube.streams(i)
|
|
156
291
|
)
|
|
157
292
|
);
|
|
158
293
|
}
|
|
@@ -161,20 +296,18 @@ function buildScavioToolkit(options = {}) {
|
|
|
161
296
|
tool(
|
|
162
297
|
"REDDIT_SEARCH",
|
|
163
298
|
"Scavio Reddit Search",
|
|
164
|
-
"Search Reddit posts
|
|
299
|
+
"Search Reddit posts. Returns data.results with next_cursor and has_more; page with cursor. Results cannot be filtered or sorted. Costs 1 credit.",
|
|
165
300
|
z.object({
|
|
166
301
|
query: str("The Reddit search query."),
|
|
167
|
-
|
|
168
|
-
sort: ostr("Sort order, e.g. 'relevance', 'new', 'top'."),
|
|
169
|
-
cursor: ostr("Pagination cursor.")
|
|
302
|
+
cursor: ostr("Pagination cursor: pass 'next_cursor' from a prior response.")
|
|
170
303
|
}),
|
|
171
304
|
(i) => client.reddit.search(i)
|
|
172
305
|
),
|
|
173
306
|
tool(
|
|
174
307
|
"REDDIT_POST",
|
|
175
308
|
"Scavio Reddit Post",
|
|
176
|
-
"Fetch
|
|
177
|
-
z.object({ url: str("Full URL of the Reddit post
|
|
309
|
+
"Fetch one Reddit post by URL. Returns a flat post object under data (post_id, title, text, url, subreddit, author, score, upvote_ratio, num_comments, created_at, is_nsfw, is_video, thumbnail, media); comments are NOT included. Costs 1 credit.",
|
|
310
|
+
z.object({ url: str("Full URL of the Reddit post.") }),
|
|
178
311
|
(i) => client.reddit.post(i)
|
|
179
312
|
)
|
|
180
313
|
);
|
|
@@ -184,7 +317,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
184
317
|
tool(
|
|
185
318
|
"TIKTOK_PROFILE",
|
|
186
319
|
"Scavio TikTok Profile",
|
|
187
|
-
"Fetch a TikTok user profile by username or secUid.",
|
|
320
|
+
"Fetch a TikTok user profile by username or secUid. Costs 1 credit.",
|
|
188
321
|
z.object({
|
|
189
322
|
username: ostr("TikTok username (without @). Provide this or sec_user_id."),
|
|
190
323
|
sec_user_id: ostr("TikTok secUid. Provide this or username.")
|
|
@@ -194,7 +327,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
194
327
|
tool(
|
|
195
328
|
"TIKTOK_USER_POSTS",
|
|
196
329
|
"Scavio TikTok User Posts",
|
|
197
|
-
"List a TikTok user's posts by secUid.",
|
|
330
|
+
"List a TikTok user's posts by secUid. Costs 1 credit.",
|
|
198
331
|
z.object({
|
|
199
332
|
sec_user_id: str("TikTok secUid of the user."),
|
|
200
333
|
cursor: ostr("Pagination cursor."),
|
|
@@ -206,14 +339,14 @@ function buildScavioToolkit(options = {}) {
|
|
|
206
339
|
tool(
|
|
207
340
|
"TIKTOK_VIDEO",
|
|
208
341
|
"Scavio TikTok Video",
|
|
209
|
-
"Fetch a TikTok video by id.",
|
|
342
|
+
"Fetch a TikTok video by id. Costs 1 credit.",
|
|
210
343
|
z.object({ video_id: str("TikTok video id.") }),
|
|
211
344
|
(i) => client.tiktok.video(i)
|
|
212
345
|
),
|
|
213
346
|
tool(
|
|
214
347
|
"TIKTOK_VIDEO_COMMENTS",
|
|
215
348
|
"Scavio TikTok Video Comments",
|
|
216
|
-
"List comments on a TikTok video.",
|
|
349
|
+
"List comments on a TikTok video. Costs 1 credit.",
|
|
217
350
|
z.object({
|
|
218
351
|
video_id: str("TikTok video id."),
|
|
219
352
|
cursor: ostr("Pagination cursor."),
|
|
@@ -224,7 +357,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
224
357
|
tool(
|
|
225
358
|
"TIKTOK_COMMENT_REPLIES",
|
|
226
359
|
"Scavio TikTok Comment Replies",
|
|
227
|
-
"List replies to a TikTok video comment.",
|
|
360
|
+
"List replies to a TikTok video comment. Costs 1 credit.",
|
|
228
361
|
z.object({
|
|
229
362
|
video_id: str("TikTok video id."),
|
|
230
363
|
comment_id: str("Parent comment id."),
|
|
@@ -236,7 +369,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
236
369
|
tool(
|
|
237
370
|
"TIKTOK_SEARCH_VIDEOS",
|
|
238
371
|
"Scavio TikTok Search Videos",
|
|
239
|
-
"Search TikTok videos by keyword.",
|
|
372
|
+
"Search TikTok videos by keyword. Costs 1 credit.",
|
|
240
373
|
z.object({
|
|
241
374
|
keyword: str("Search keyword."),
|
|
242
375
|
cursor: ostr("Pagination cursor."),
|
|
@@ -249,7 +382,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
249
382
|
tool(
|
|
250
383
|
"TIKTOK_SEARCH_USERS",
|
|
251
384
|
"Scavio TikTok Search Users",
|
|
252
|
-
"Search TikTok users by keyword.",
|
|
385
|
+
"Search TikTok users by keyword. Costs 1 credit.",
|
|
253
386
|
z.object({
|
|
254
387
|
keyword: str("Search keyword."),
|
|
255
388
|
cursor: ostr("Pagination cursor."),
|
|
@@ -260,7 +393,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
260
393
|
tool(
|
|
261
394
|
"TIKTOK_HASHTAG",
|
|
262
395
|
"Scavio TikTok Hashtag",
|
|
263
|
-
"Fetch a TikTok hashtag by name or id.",
|
|
396
|
+
"Fetch a TikTok hashtag by name or id. Costs 1 credit.",
|
|
264
397
|
z.object({
|
|
265
398
|
hashtag_name: ostr("Hashtag name (without #). Provide this or hashtag_id."),
|
|
266
399
|
hashtag_id: ostr("Hashtag id. Provide this or hashtag_name.")
|
|
@@ -270,7 +403,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
270
403
|
tool(
|
|
271
404
|
"TIKTOK_HASHTAG_VIDEOS",
|
|
272
405
|
"Scavio TikTok Hashtag Videos",
|
|
273
|
-
"List videos for a TikTok hashtag by id.",
|
|
406
|
+
"List videos for a TikTok hashtag by id. Costs 1 credit.",
|
|
274
407
|
z.object({
|
|
275
408
|
hashtag_id: str("Hashtag id."),
|
|
276
409
|
cursor: ostr("Pagination cursor."),
|
|
@@ -281,7 +414,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
281
414
|
tool(
|
|
282
415
|
"TIKTOK_USER_FOLLOWERS",
|
|
283
416
|
"Scavio TikTok User Followers",
|
|
284
|
-
"List a TikTok user's followers by secUid.",
|
|
417
|
+
"List a TikTok user's followers by secUid. Costs 1 credit.",
|
|
285
418
|
z.object({
|
|
286
419
|
sec_user_id: str("TikTok secUid of the user."),
|
|
287
420
|
count: onum("Number of followers to return."),
|
|
@@ -293,7 +426,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
293
426
|
tool(
|
|
294
427
|
"TIKTOK_USER_FOLLOWINGS",
|
|
295
428
|
"Scavio TikTok User Followings",
|
|
296
|
-
"List the accounts a TikTok user follows, by secUid.",
|
|
429
|
+
"List the accounts a TikTok user follows, by secUid. Costs 1 credit.",
|
|
297
430
|
z.object({
|
|
298
431
|
sec_user_id: str("TikTok secUid of the user."),
|
|
299
432
|
count: onum("Number of followings to return."),
|
|
@@ -309,7 +442,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
309
442
|
tool(
|
|
310
443
|
"INSTAGRAM_PROFILE",
|
|
311
444
|
"Scavio Instagram Profile",
|
|
312
|
-
"Fetch an Instagram profile by username or user id.",
|
|
445
|
+
"Fetch an Instagram profile by username or user id. Costs 10 credits.",
|
|
313
446
|
z.object({
|
|
314
447
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
315
448
|
user_id: ostr("Instagram user id. Provide this or username.")
|
|
@@ -319,7 +452,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
319
452
|
tool(
|
|
320
453
|
"INSTAGRAM_USER_POSTS",
|
|
321
454
|
"Scavio Instagram User Posts",
|
|
322
|
-
"List an Instagram user's posts.",
|
|
455
|
+
"List an Instagram user's posts. Costs 2 credits, the cheapest Instagram endpoint.",
|
|
323
456
|
z.object({
|
|
324
457
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
325
458
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -331,7 +464,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
331
464
|
tool(
|
|
332
465
|
"INSTAGRAM_USER_REELS",
|
|
333
466
|
"Scavio Instagram User Reels",
|
|
334
|
-
"List an Instagram user's reels.",
|
|
467
|
+
"List an Instagram user's reels. Costs 10 credits.",
|
|
335
468
|
z.object({
|
|
336
469
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
337
470
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -343,7 +476,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
343
476
|
tool(
|
|
344
477
|
"INSTAGRAM_USER_TAGGED",
|
|
345
478
|
"Scavio Instagram User Tagged",
|
|
346
|
-
"List posts an Instagram user is tagged in.",
|
|
479
|
+
"List posts an Instagram user is tagged in. Costs 10 credits.",
|
|
347
480
|
z.object({
|
|
348
481
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
349
482
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -355,7 +488,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
355
488
|
tool(
|
|
356
489
|
"INSTAGRAM_USER_STORIES",
|
|
357
490
|
"Scavio Instagram User Stories",
|
|
358
|
-
"Fetch an Instagram user's current stories.",
|
|
491
|
+
"Fetch an Instagram user's current stories. Costs 10 credits.",
|
|
359
492
|
z.object({
|
|
360
493
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
361
494
|
user_id: ostr("Instagram user id. Provide this or username.")
|
|
@@ -365,7 +498,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
365
498
|
tool(
|
|
366
499
|
"INSTAGRAM_POST",
|
|
367
500
|
"Scavio Instagram Post",
|
|
368
|
-
"Fetch an Instagram post by URL, media id, or shortcode.",
|
|
501
|
+
"Fetch an Instagram post by URL, media id, or shortcode. Costs 8 credits.",
|
|
369
502
|
z.object({
|
|
370
503
|
url: ostr("Post URL. Provide one of url, media_id, or shortcode."),
|
|
371
504
|
media_id: ostr("Post media id. Provide one of url, media_id, or shortcode."),
|
|
@@ -376,7 +509,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
376
509
|
tool(
|
|
377
510
|
"INSTAGRAM_POST_COMMENTS",
|
|
378
511
|
"Scavio Instagram Post Comments",
|
|
379
|
-
"List comments on an Instagram post by shortcode or URL.",
|
|
512
|
+
"List comments on an Instagram post by shortcode or URL. Costs 10 credits.",
|
|
380
513
|
z.object({
|
|
381
514
|
shortcode: ostr("Post shortcode. Provide this or url."),
|
|
382
515
|
url: ostr("Post URL. Provide this or shortcode."),
|
|
@@ -388,7 +521,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
388
521
|
tool(
|
|
389
522
|
"INSTAGRAM_COMMENT_REPLIES",
|
|
390
523
|
"Scavio Instagram Comment Replies",
|
|
391
|
-
"List replies to an Instagram post comment.",
|
|
524
|
+
"List replies to an Instagram post comment. Costs 8 credits.",
|
|
392
525
|
z.object({
|
|
393
526
|
media_id: str("Post media id."),
|
|
394
527
|
comment_id: str("Parent comment id."),
|
|
@@ -399,7 +532,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
399
532
|
tool(
|
|
400
533
|
"INSTAGRAM_SEARCH_USERS",
|
|
401
534
|
"Scavio Instagram Search Users",
|
|
402
|
-
"Search Instagram users by keyword.",
|
|
535
|
+
"Search Instagram users by keyword. Costs 10 credits.",
|
|
403
536
|
z.object({
|
|
404
537
|
keyword: str("Search keyword."),
|
|
405
538
|
cursor: ostr("Pagination cursor.")
|
|
@@ -409,7 +542,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
409
542
|
tool(
|
|
410
543
|
"INSTAGRAM_SEARCH_HASHTAGS",
|
|
411
544
|
"Scavio Instagram Search Hashtags",
|
|
412
|
-
"Search Instagram hashtags by keyword.",
|
|
545
|
+
"Search Instagram hashtags by keyword. Costs 10 credits.",
|
|
413
546
|
z.object({
|
|
414
547
|
keyword: str("Search keyword."),
|
|
415
548
|
cursor: ostr("Pagination cursor.")
|
|
@@ -419,7 +552,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
419
552
|
tool(
|
|
420
553
|
"INSTAGRAM_USER_FOLLOWERS",
|
|
421
554
|
"Scavio Instagram User Followers",
|
|
422
|
-
"List an Instagram user's followers.",
|
|
555
|
+
"List an Instagram user's followers. Costs 10 credits.",
|
|
423
556
|
z.object({
|
|
424
557
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
425
558
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -431,7 +564,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
431
564
|
tool(
|
|
432
565
|
"INSTAGRAM_USER_FOLLOWINGS",
|
|
433
566
|
"Scavio Instagram User Followings",
|
|
434
|
-
"List the accounts an Instagram user follows.",
|
|
567
|
+
"List the accounts an Instagram user follows. Costs 10 credits.",
|
|
435
568
|
z.object({
|
|
436
569
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
437
570
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -444,7 +577,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
444
577
|
}
|
|
445
578
|
return experimental_createToolkit("SCAVIO", {
|
|
446
579
|
name: "Scavio",
|
|
447
|
-
description: "Real-time structured search over Google, YouTube, Amazon, Walmart, Reddit, TikTok, and Instagram.",
|
|
580
|
+
description: "Real-time structured search over Google, YouTube, Amazon, Walmart, Reddit, TikTok, and Instagram (part of the Scavio API, which also covers TikTok Shop, X and LinkedIn).",
|
|
448
581
|
tools
|
|
449
582
|
});
|
|
450
583
|
}
|