composio-scavio 0.1.1 → 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 +18 -4
- package/dist/index.cjs +186 -60
- 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 +186 -60
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
[Scavio](https://scavio.dev) real-time search tools for [Composio](https://composio.dev) (TypeScript).
|
|
4
4
|
|
|
5
|
-
Scavio is a single Search API over Google, YouTube, Amazon, Walmart, Reddit, TikTok, and
|
|
5
|
+
Scavio is a single Search API over Google, YouTube, Amazon, Walmart, Reddit, TikTok, TikTok Shop, Instagram, X and LinkedIn. This package exposes the Google, YouTube, Amazon, Walmart, Reddit, TikTok and Instagram endpoints as a Composio custom toolkit so your agents can pull structured, up-to-date results across any Composio-supported framework.
|
|
6
|
+
|
|
7
|
+
> **Amazon changed (breaking).** The upstream provider moved in 2026-07:
|
|
8
|
+
> `domain` is replaced by `country`, a two-letter marketplace code (`us`, `gb`
|
|
9
|
+
> -- the UK is `gb`, not `uk` -- `de`, `jp`, ...), and `sort_by`, `pages`,
|
|
10
|
+
> `category_id`, `merchant_id`, `language`, `currency`, `device`, `zip_code`
|
|
11
|
+
> and `autoselect_variant` are gone. The marketplace ignores all of them
|
|
12
|
+
> (`sort_by` returns the identical unordered set for every value), so they are
|
|
13
|
+
> removed rather than kept as silent no-ops. Rank and filter results yourself.
|
|
14
|
+
|
|
15
|
+
> **Reddit search has no filters.** `/reddit/search` accepts only `query` and
|
|
16
|
+
> `cursor`; the API strips anything else, so the old `type` and `sort` args
|
|
17
|
+
> narrowed nothing and are removed. It returns `data.results` with `next_cursor`
|
|
18
|
+
> and `has_more`. `REDDIT_POST` returns the post itself only -- comments are not
|
|
19
|
+
> included.
|
|
6
20
|
|
|
7
21
|
## Install
|
|
8
22
|
|
|
@@ -10,7 +24,7 @@ Scavio is a single Search API over Google, YouTube, Amazon, Walmart, Reddit, Tik
|
|
|
10
24
|
npm install composio-scavio
|
|
11
25
|
```
|
|
12
26
|
|
|
13
|
-
`@composio/core` and `zod` are dependencies. Get a Scavio API key from the [Scavio Dashboard](https://dashboard.scavio.dev) (50
|
|
27
|
+
`@composio/core` and `zod` are dependencies. Get a Scavio API key from the [Scavio Dashboard](https://dashboard.scavio.dev) (50 one-time signup credits, no credit card; the free plan does not refill monthly).
|
|
14
28
|
|
|
15
29
|
## Usage
|
|
16
30
|
|
|
@@ -45,11 +59,11 @@ Pass `all: true` to register every tool regardless of the individual flags.
|
|
|
45
59
|
|
|
46
60
|
## Tools
|
|
47
61
|
|
|
48
|
-
All tools are grouped under the `SCAVIO` custom toolkit; agent-facing slugs are prefixed `LOCAL_SCAVIO_` (Composio convention for custom tools). Providers: Google, Amazon (search, product), Walmart (search, product), YouTube (search, metadata), Reddit (search, post), TikTok (11 tools), Instagram (12 tools).
|
|
62
|
+
All tools are grouped under the `SCAVIO` custom toolkit; agent-facing slugs are prefixed `LOCAL_SCAVIO_` (Composio convention for custom tools). Providers: Google, Amazon (search, product, offers), Walmart (search, product), YouTube (16 tools: search, shorts, suggestions, video, metadata, comments, comment replies, transcript, related, channel search, channel, channel videos, channel shorts, channel community, channel resolve, streams), Reddit (search, post), TikTok (11 tools), Instagram (12 tools). 47 tools total.
|
|
49
63
|
|
|
50
64
|
## Credits
|
|
51
65
|
|
|
52
|
-
Most endpoints cost 1 credit, including Google
|
|
66
|
+
Most endpoints cost 1 credit, including Google (`/api/v2/google`), Reddit, TikTok, Amazon and Walmart. Instagram costs 10 credits per call, except post and comment replies (8) and user posts (2). YouTube search and shorts cost 2, YouTube streams 3, and YouTube transcript 8. See [scavio.dev/docs](https://scavio.dev/docs).
|
|
53
67
|
|
|
54
68
|
## Links
|
|
55
69
|
|
package/dist/index.cjs
CHANGED
|
@@ -85,39 +85,33 @@ function buildScavioToolkit(options = {}) {
|
|
|
85
85
|
tool(
|
|
86
86
|
"AMAZON_SEARCH",
|
|
87
87
|
"Scavio Amazon Search",
|
|
88
|
-
"Search Amazon for products matching a query.",
|
|
88
|
+
"Search Amazon for products matching a query. Results are unsorted and cannot be filtered by category, merchant or price. Costs 1 credit.",
|
|
89
89
|
import_zod.z.object({
|
|
90
90
|
query: str("The product search query."),
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
language: ostr("Two-letter language code."),
|
|
94
|
-
currency: ostr("Currency code, e.g. 'USD'."),
|
|
95
|
-
device: ostr("Device profile: 'desktop' or 'mobile'."),
|
|
96
|
-
sort_by: ostr("Sort order for results."),
|
|
97
|
-
start_page: onum("First page to return."),
|
|
98
|
-
pages: onum("Number of pages to return."),
|
|
99
|
-
category_id: ostr("Restrict to an Amazon category id."),
|
|
100
|
-
merchant_id: ostr("Restrict to a merchant id."),
|
|
101
|
-
zip_code: ostr("Delivery ZIP/postal code."),
|
|
102
|
-
autoselect_variant: obool("Auto-select the best product variant when true.")
|
|
91
|
+
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."),
|
|
92
|
+
page: onum("Result page, 1-based. One page per call, 1 credit each.")
|
|
103
93
|
}),
|
|
104
94
|
(i) => client.amazon.search(i)
|
|
105
95
|
),
|
|
106
96
|
tool(
|
|
107
97
|
"AMAZON_PRODUCT",
|
|
108
98
|
"Scavio Amazon Product",
|
|
109
|
-
"Fetch full Amazon product details by ASIN.",
|
|
99
|
+
"Fetch full Amazon product details by ASIN. price is the buy-box price only. Costs 1 credit.",
|
|
110
100
|
import_zod.z.object({
|
|
111
101
|
asin: str("Amazon Standard Identification Number (ASIN) of the product."),
|
|
112
|
-
|
|
113
|
-
country: ostr("Two-letter country code."),
|
|
114
|
-
language: ostr("Two-letter language code."),
|
|
115
|
-
currency: ostr("Currency code, e.g. 'USD'."),
|
|
116
|
-
device: ostr("Device profile: 'desktop' or 'mobile'."),
|
|
117
|
-
zip_code: ostr("Delivery ZIP/postal code."),
|
|
118
|
-
autoselect_variant: obool("Auto-select the best product variant when true.")
|
|
102
|
+
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.")
|
|
119
103
|
}),
|
|
120
104
|
(i) => client.amazon.product(i)
|
|
105
|
+
),
|
|
106
|
+
tool(
|
|
107
|
+
"AMAZON_OFFERS",
|
|
108
|
+
"Scavio Amazon Offers",
|
|
109
|
+
"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.",
|
|
110
|
+
import_zod.z.object({
|
|
111
|
+
asin: str("Amazon Standard Identification Number (ASIN) of the product."),
|
|
112
|
+
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.")
|
|
113
|
+
}),
|
|
114
|
+
(i) => client.amazon.offers(i)
|
|
121
115
|
)
|
|
122
116
|
);
|
|
123
117
|
}
|
|
@@ -126,7 +120,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
126
120
|
tool(
|
|
127
121
|
"WALMART_SEARCH",
|
|
128
122
|
"Scavio Walmart Search",
|
|
129
|
-
"Search Walmart for products matching a query.",
|
|
123
|
+
"Search Walmart for products matching a query. Costs 1 credit.",
|
|
130
124
|
import_zod.z.object({
|
|
131
125
|
query: str("The product search query."),
|
|
132
126
|
domain: ostr("Walmart domain."),
|
|
@@ -145,7 +139,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
145
139
|
tool(
|
|
146
140
|
"WALMART_PRODUCT",
|
|
147
141
|
"Scavio Walmart Product",
|
|
148
|
-
"Fetch full Walmart product details by product id.",
|
|
142
|
+
"Fetch full Walmart product details by product id. Costs 1 credit.",
|
|
149
143
|
import_zod.z.object({
|
|
150
144
|
product_id: str("Walmart product id."),
|
|
151
145
|
domain: ostr("Walmart domain."),
|
|
@@ -162,13 +156,15 @@ function buildScavioToolkit(options = {}) {
|
|
|
162
156
|
tool(
|
|
163
157
|
"YOUTUBE_SEARCH",
|
|
164
158
|
"Scavio YouTube Search",
|
|
165
|
-
"Search YouTube for videos, channels, or playlists.",
|
|
159
|
+
"Search YouTube for videos, channels, or playlists. Costs 2 credits.",
|
|
166
160
|
import_zod.z.object({
|
|
167
161
|
query: str("The video search query."),
|
|
168
|
-
upload_date: ostr("Upload date filter,
|
|
169
|
-
type: ostr("Result type
|
|
170
|
-
duration: ostr("Duration filter
|
|
171
|
-
sort_by: ostr("Sort order
|
|
162
|
+
upload_date: ostr("Upload date filter: 'last_hour', 'today', 'this_week', 'this_month', 'this_year'."),
|
|
163
|
+
type: ostr("Result type: 'video', 'channel', 'playlist', or 'movie'."),
|
|
164
|
+
duration: ostr("Duration filter: 'short', 'medium', or 'long'."),
|
|
165
|
+
sort_by: ostr("Sort order: 'relevance', 'date', 'view_count', or 'rating'."),
|
|
166
|
+
features: import_zod.z.array(import_zod.z.string()).optional().describe("Feature filters, e.g. ['hd', '4k', 'subtitles', 'creative_commons', 'live', '360', '3d', 'hdr', 'vr180']."),
|
|
167
|
+
cursor: ostr("Pagination cursor from a prior response."),
|
|
172
168
|
hd: obool("Restrict to HD videos when true."),
|
|
173
169
|
subtitles: obool("Restrict to videos with subtitles when true."),
|
|
174
170
|
creative_commons: obool("Restrict to Creative Commons videos when true."),
|
|
@@ -176,12 +172,144 @@ function buildScavioToolkit(options = {}) {
|
|
|
176
172
|
}),
|
|
177
173
|
(i) => client.youtube.search(i)
|
|
178
174
|
),
|
|
175
|
+
tool(
|
|
176
|
+
"YOUTUBE_SHORTS",
|
|
177
|
+
"Scavio YouTube Shorts",
|
|
178
|
+
"Search YouTube Shorts. Costs 2 credits.",
|
|
179
|
+
import_zod.z.object({
|
|
180
|
+
query: str("The Shorts search query."),
|
|
181
|
+
sort_by: ostr("Sort order: 'relevance', 'date', 'view_count', or 'rating'."),
|
|
182
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
183
|
+
}),
|
|
184
|
+
(i) => client.youtube.shorts(i)
|
|
185
|
+
),
|
|
186
|
+
tool(
|
|
187
|
+
"YOUTUBE_SUGGESTIONS",
|
|
188
|
+
"Scavio YouTube Suggestions",
|
|
189
|
+
"Get YouTube search autocomplete suggestions for a partial query. Costs 1 credit.",
|
|
190
|
+
import_zod.z.object({
|
|
191
|
+
query: str("The partial query to autocomplete."),
|
|
192
|
+
language: ostr("Suggestion language (ISO 639-1, default 'en')."),
|
|
193
|
+
region: ostr("Region code (ISO 3166-1 alpha-2, default 'US').")
|
|
194
|
+
}),
|
|
195
|
+
(i) => client.youtube.suggestions(i)
|
|
196
|
+
),
|
|
197
|
+
tool(
|
|
198
|
+
"YOUTUBE_VIDEO",
|
|
199
|
+
"Scavio YouTube Video",
|
|
200
|
+
"Fetch full metadata for a YouTube video by id or watch URL. Costs 1 credit.",
|
|
201
|
+
import_zod.z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
202
|
+
(i) => client.youtube.video(i)
|
|
203
|
+
),
|
|
179
204
|
tool(
|
|
180
205
|
"YOUTUBE_METADATA",
|
|
181
206
|
"Scavio YouTube Metadata",
|
|
182
|
-
"Fetch metadata for a YouTube video by id.",
|
|
183
|
-
import_zod.z.object({ video_id: str("YouTube video id.") }),
|
|
207
|
+
"Fetch metadata for a YouTube video by id. Deprecated alias of YOUTUBE_VIDEO.",
|
|
208
|
+
import_zod.z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
184
209
|
(i) => client.youtube.metadata(i)
|
|
210
|
+
),
|
|
211
|
+
tool(
|
|
212
|
+
"YOUTUBE_COMMENTS",
|
|
213
|
+
"Scavio YouTube Comments",
|
|
214
|
+
"List top-level comments on a YouTube video. Costs 1 credit.",
|
|
215
|
+
import_zod.z.object({
|
|
216
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
217
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
218
|
+
}),
|
|
219
|
+
(i) => client.youtube.comments(i)
|
|
220
|
+
),
|
|
221
|
+
tool(
|
|
222
|
+
"YOUTUBE_COMMENT_REPLIES",
|
|
223
|
+
"Scavio YouTube Comment Replies",
|
|
224
|
+
"List replies to a YouTube comment using its reply cursor. Costs 1 credit.",
|
|
225
|
+
import_zod.z.object({
|
|
226
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
227
|
+
reply_cursor: str("Reply cursor from a parent comment's 'reply_cursor' field."),
|
|
228
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
229
|
+
}),
|
|
230
|
+
(i) => client.youtube.commentReplies(i)
|
|
231
|
+
),
|
|
232
|
+
tool(
|
|
233
|
+
"YOUTUBE_TRANSCRIPT",
|
|
234
|
+
"Scavio YouTube Transcript",
|
|
235
|
+
"Fetch the transcript or timed captions for a YouTube video. Costs 8 credits.",
|
|
236
|
+
import_zod.z.object({
|
|
237
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
238
|
+
language: ostr("Caption language code (default 'en')."),
|
|
239
|
+
format: ostr("'text' for a plain transcript or 'srt' for timed subtitles (default 'text').")
|
|
240
|
+
}),
|
|
241
|
+
(i) => client.youtube.transcript(i)
|
|
242
|
+
),
|
|
243
|
+
tool(
|
|
244
|
+
"YOUTUBE_RELATED",
|
|
245
|
+
"Scavio YouTube Related",
|
|
246
|
+
"List videos related to a YouTube video. Costs 1 credit.",
|
|
247
|
+
import_zod.z.object({
|
|
248
|
+
video_id: str("YouTube video id or a full watch URL."),
|
|
249
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
250
|
+
}),
|
|
251
|
+
(i) => client.youtube.related(i)
|
|
252
|
+
),
|
|
253
|
+
tool(
|
|
254
|
+
"YOUTUBE_CHANNEL_SEARCH",
|
|
255
|
+
"Scavio YouTube Channel Search",
|
|
256
|
+
"Search YouTube channels by keyword. Costs 1 credit.",
|
|
257
|
+
import_zod.z.object({
|
|
258
|
+
query: str("The channel search query."),
|
|
259
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
260
|
+
}),
|
|
261
|
+
(i) => client.youtube.channelSearch(i)
|
|
262
|
+
),
|
|
263
|
+
tool(
|
|
264
|
+
"YOUTUBE_CHANNEL",
|
|
265
|
+
"Scavio YouTube Channel",
|
|
266
|
+
"Fetch YouTube channel details by id, @handle, or URL. Costs 1 credit.",
|
|
267
|
+
import_zod.z.object({ channel_id: str("YouTube channel id, @handle, or channel URL.") }),
|
|
268
|
+
(i) => client.youtube.channel(i)
|
|
269
|
+
),
|
|
270
|
+
tool(
|
|
271
|
+
"YOUTUBE_CHANNEL_VIDEOS",
|
|
272
|
+
"Scavio YouTube Channel Videos",
|
|
273
|
+
"List videos uploaded by a YouTube channel. Costs 1 credit.",
|
|
274
|
+
import_zod.z.object({
|
|
275
|
+
channel_id: str("YouTube channel id."),
|
|
276
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
277
|
+
}),
|
|
278
|
+
(i) => client.youtube.channelVideos(i)
|
|
279
|
+
),
|
|
280
|
+
tool(
|
|
281
|
+
"YOUTUBE_CHANNEL_SHORTS",
|
|
282
|
+
"Scavio YouTube Channel Shorts",
|
|
283
|
+
"List Shorts posted by a YouTube channel. Costs 1 credit.",
|
|
284
|
+
import_zod.z.object({
|
|
285
|
+
channel_id: str("YouTube channel id."),
|
|
286
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
287
|
+
}),
|
|
288
|
+
(i) => client.youtube.channelShorts(i)
|
|
289
|
+
),
|
|
290
|
+
tool(
|
|
291
|
+
"YOUTUBE_CHANNEL_COMMUNITY",
|
|
292
|
+
"Scavio YouTube Channel Community",
|
|
293
|
+
"List community posts from a YouTube channel. Costs 1 credit.",
|
|
294
|
+
import_zod.z.object({
|
|
295
|
+
channel_id: str("YouTube channel id."),
|
|
296
|
+
cursor: ostr("Pagination cursor from a prior response.")
|
|
297
|
+
}),
|
|
298
|
+
(i) => client.youtube.channelCommunity(i)
|
|
299
|
+
),
|
|
300
|
+
tool(
|
|
301
|
+
"YOUTUBE_CHANNEL_RESOLVE",
|
|
302
|
+
"Scavio YouTube Channel Resolve",
|
|
303
|
+
"Resolve a YouTube @handle or channel URL to a channel id. Costs 1 credit.",
|
|
304
|
+
import_zod.z.object({ channel: str("A channel @handle or channel URL to resolve to a channel id.") }),
|
|
305
|
+
(i) => client.youtube.channelResolve(i)
|
|
306
|
+
),
|
|
307
|
+
tool(
|
|
308
|
+
"YOUTUBE_STREAMS",
|
|
309
|
+
"Scavio YouTube Streams",
|
|
310
|
+
"Fetch playable or downloadable stream formats for a YouTube video. Costs 3 credits.",
|
|
311
|
+
import_zod.z.object({ video_id: str("YouTube video id or a full watch URL.") }),
|
|
312
|
+
(i) => client.youtube.streams(i)
|
|
185
313
|
)
|
|
186
314
|
);
|
|
187
315
|
}
|
|
@@ -190,20 +318,18 @@ function buildScavioToolkit(options = {}) {
|
|
|
190
318
|
tool(
|
|
191
319
|
"REDDIT_SEARCH",
|
|
192
320
|
"Scavio Reddit Search",
|
|
193
|
-
"Search Reddit posts
|
|
321
|
+
"Search Reddit posts. Returns data.results with next_cursor and has_more; page with cursor. Results cannot be filtered or sorted. Costs 1 credit.",
|
|
194
322
|
import_zod.z.object({
|
|
195
323
|
query: str("The Reddit search query."),
|
|
196
|
-
|
|
197
|
-
sort: ostr("Sort order, e.g. 'relevance', 'new', 'top'."),
|
|
198
|
-
cursor: ostr("Pagination cursor.")
|
|
324
|
+
cursor: ostr("Pagination cursor: pass 'next_cursor' from a prior response.")
|
|
199
325
|
}),
|
|
200
326
|
(i) => client.reddit.search(i)
|
|
201
327
|
),
|
|
202
328
|
tool(
|
|
203
329
|
"REDDIT_POST",
|
|
204
330
|
"Scavio Reddit Post",
|
|
205
|
-
"Fetch
|
|
206
|
-
import_zod.z.object({ url: str("Full URL of the Reddit post
|
|
331
|
+
"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.",
|
|
332
|
+
import_zod.z.object({ url: str("Full URL of the Reddit post.") }),
|
|
207
333
|
(i) => client.reddit.post(i)
|
|
208
334
|
)
|
|
209
335
|
);
|
|
@@ -213,7 +339,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
213
339
|
tool(
|
|
214
340
|
"TIKTOK_PROFILE",
|
|
215
341
|
"Scavio TikTok Profile",
|
|
216
|
-
"Fetch a TikTok user profile by username or secUid.",
|
|
342
|
+
"Fetch a TikTok user profile by username or secUid. Costs 1 credit.",
|
|
217
343
|
import_zod.z.object({
|
|
218
344
|
username: ostr("TikTok username (without @). Provide this or sec_user_id."),
|
|
219
345
|
sec_user_id: ostr("TikTok secUid. Provide this or username.")
|
|
@@ -223,7 +349,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
223
349
|
tool(
|
|
224
350
|
"TIKTOK_USER_POSTS",
|
|
225
351
|
"Scavio TikTok User Posts",
|
|
226
|
-
"List a TikTok user's posts by secUid.",
|
|
352
|
+
"List a TikTok user's posts by secUid. Costs 1 credit.",
|
|
227
353
|
import_zod.z.object({
|
|
228
354
|
sec_user_id: str("TikTok secUid of the user."),
|
|
229
355
|
cursor: ostr("Pagination cursor."),
|
|
@@ -235,14 +361,14 @@ function buildScavioToolkit(options = {}) {
|
|
|
235
361
|
tool(
|
|
236
362
|
"TIKTOK_VIDEO",
|
|
237
363
|
"Scavio TikTok Video",
|
|
238
|
-
"Fetch a TikTok video by id.",
|
|
364
|
+
"Fetch a TikTok video by id. Costs 1 credit.",
|
|
239
365
|
import_zod.z.object({ video_id: str("TikTok video id.") }),
|
|
240
366
|
(i) => client.tiktok.video(i)
|
|
241
367
|
),
|
|
242
368
|
tool(
|
|
243
369
|
"TIKTOK_VIDEO_COMMENTS",
|
|
244
370
|
"Scavio TikTok Video Comments",
|
|
245
|
-
"List comments on a TikTok video.",
|
|
371
|
+
"List comments on a TikTok video. Costs 1 credit.",
|
|
246
372
|
import_zod.z.object({
|
|
247
373
|
video_id: str("TikTok video id."),
|
|
248
374
|
cursor: ostr("Pagination cursor."),
|
|
@@ -253,7 +379,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
253
379
|
tool(
|
|
254
380
|
"TIKTOK_COMMENT_REPLIES",
|
|
255
381
|
"Scavio TikTok Comment Replies",
|
|
256
|
-
"List replies to a TikTok video comment.",
|
|
382
|
+
"List replies to a TikTok video comment. Costs 1 credit.",
|
|
257
383
|
import_zod.z.object({
|
|
258
384
|
video_id: str("TikTok video id."),
|
|
259
385
|
comment_id: str("Parent comment id."),
|
|
@@ -265,7 +391,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
265
391
|
tool(
|
|
266
392
|
"TIKTOK_SEARCH_VIDEOS",
|
|
267
393
|
"Scavio TikTok Search Videos",
|
|
268
|
-
"Search TikTok videos by keyword.",
|
|
394
|
+
"Search TikTok videos by keyword. Costs 1 credit.",
|
|
269
395
|
import_zod.z.object({
|
|
270
396
|
keyword: str("Search keyword."),
|
|
271
397
|
cursor: ostr("Pagination cursor."),
|
|
@@ -278,7 +404,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
278
404
|
tool(
|
|
279
405
|
"TIKTOK_SEARCH_USERS",
|
|
280
406
|
"Scavio TikTok Search Users",
|
|
281
|
-
"Search TikTok users by keyword.",
|
|
407
|
+
"Search TikTok users by keyword. Costs 1 credit.",
|
|
282
408
|
import_zod.z.object({
|
|
283
409
|
keyword: str("Search keyword."),
|
|
284
410
|
cursor: ostr("Pagination cursor."),
|
|
@@ -289,7 +415,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
289
415
|
tool(
|
|
290
416
|
"TIKTOK_HASHTAG",
|
|
291
417
|
"Scavio TikTok Hashtag",
|
|
292
|
-
"Fetch a TikTok hashtag by name or id.",
|
|
418
|
+
"Fetch a TikTok hashtag by name or id. Costs 1 credit.",
|
|
293
419
|
import_zod.z.object({
|
|
294
420
|
hashtag_name: ostr("Hashtag name (without #). Provide this or hashtag_id."),
|
|
295
421
|
hashtag_id: ostr("Hashtag id. Provide this or hashtag_name.")
|
|
@@ -299,7 +425,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
299
425
|
tool(
|
|
300
426
|
"TIKTOK_HASHTAG_VIDEOS",
|
|
301
427
|
"Scavio TikTok Hashtag Videos",
|
|
302
|
-
"List videos for a TikTok hashtag by id.",
|
|
428
|
+
"List videos for a TikTok hashtag by id. Costs 1 credit.",
|
|
303
429
|
import_zod.z.object({
|
|
304
430
|
hashtag_id: str("Hashtag id."),
|
|
305
431
|
cursor: ostr("Pagination cursor."),
|
|
@@ -310,7 +436,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
310
436
|
tool(
|
|
311
437
|
"TIKTOK_USER_FOLLOWERS",
|
|
312
438
|
"Scavio TikTok User Followers",
|
|
313
|
-
"List a TikTok user's followers by secUid.",
|
|
439
|
+
"List a TikTok user's followers by secUid. Costs 1 credit.",
|
|
314
440
|
import_zod.z.object({
|
|
315
441
|
sec_user_id: str("TikTok secUid of the user."),
|
|
316
442
|
count: onum("Number of followers to return."),
|
|
@@ -322,7 +448,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
322
448
|
tool(
|
|
323
449
|
"TIKTOK_USER_FOLLOWINGS",
|
|
324
450
|
"Scavio TikTok User Followings",
|
|
325
|
-
"List the accounts a TikTok user follows, by secUid.",
|
|
451
|
+
"List the accounts a TikTok user follows, by secUid. Costs 1 credit.",
|
|
326
452
|
import_zod.z.object({
|
|
327
453
|
sec_user_id: str("TikTok secUid of the user."),
|
|
328
454
|
count: onum("Number of followings to return."),
|
|
@@ -338,7 +464,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
338
464
|
tool(
|
|
339
465
|
"INSTAGRAM_PROFILE",
|
|
340
466
|
"Scavio Instagram Profile",
|
|
341
|
-
"Fetch an Instagram profile by username or user id.",
|
|
467
|
+
"Fetch an Instagram profile by username or user id. Costs 10 credits.",
|
|
342
468
|
import_zod.z.object({
|
|
343
469
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
344
470
|
user_id: ostr("Instagram user id. Provide this or username.")
|
|
@@ -348,7 +474,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
348
474
|
tool(
|
|
349
475
|
"INSTAGRAM_USER_POSTS",
|
|
350
476
|
"Scavio Instagram User Posts",
|
|
351
|
-
"List an Instagram user's posts.",
|
|
477
|
+
"List an Instagram user's posts. Costs 2 credits, the cheapest Instagram endpoint.",
|
|
352
478
|
import_zod.z.object({
|
|
353
479
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
354
480
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -360,7 +486,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
360
486
|
tool(
|
|
361
487
|
"INSTAGRAM_USER_REELS",
|
|
362
488
|
"Scavio Instagram User Reels",
|
|
363
|
-
"List an Instagram user's reels.",
|
|
489
|
+
"List an Instagram user's reels. Costs 10 credits.",
|
|
364
490
|
import_zod.z.object({
|
|
365
491
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
366
492
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -372,7 +498,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
372
498
|
tool(
|
|
373
499
|
"INSTAGRAM_USER_TAGGED",
|
|
374
500
|
"Scavio Instagram User Tagged",
|
|
375
|
-
"List posts an Instagram user is tagged in.",
|
|
501
|
+
"List posts an Instagram user is tagged in. Costs 10 credits.",
|
|
376
502
|
import_zod.z.object({
|
|
377
503
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
378
504
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -384,7 +510,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
384
510
|
tool(
|
|
385
511
|
"INSTAGRAM_USER_STORIES",
|
|
386
512
|
"Scavio Instagram User Stories",
|
|
387
|
-
"Fetch an Instagram user's current stories.",
|
|
513
|
+
"Fetch an Instagram user's current stories. Costs 10 credits.",
|
|
388
514
|
import_zod.z.object({
|
|
389
515
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
390
516
|
user_id: ostr("Instagram user id. Provide this or username.")
|
|
@@ -394,7 +520,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
394
520
|
tool(
|
|
395
521
|
"INSTAGRAM_POST",
|
|
396
522
|
"Scavio Instagram Post",
|
|
397
|
-
"Fetch an Instagram post by URL, media id, or shortcode.",
|
|
523
|
+
"Fetch an Instagram post by URL, media id, or shortcode. Costs 8 credits.",
|
|
398
524
|
import_zod.z.object({
|
|
399
525
|
url: ostr("Post URL. Provide one of url, media_id, or shortcode."),
|
|
400
526
|
media_id: ostr("Post media id. Provide one of url, media_id, or shortcode."),
|
|
@@ -405,7 +531,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
405
531
|
tool(
|
|
406
532
|
"INSTAGRAM_POST_COMMENTS",
|
|
407
533
|
"Scavio Instagram Post Comments",
|
|
408
|
-
"List comments on an Instagram post by shortcode or URL.",
|
|
534
|
+
"List comments on an Instagram post by shortcode or URL. Costs 10 credits.",
|
|
409
535
|
import_zod.z.object({
|
|
410
536
|
shortcode: ostr("Post shortcode. Provide this or url."),
|
|
411
537
|
url: ostr("Post URL. Provide this or shortcode."),
|
|
@@ -417,7 +543,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
417
543
|
tool(
|
|
418
544
|
"INSTAGRAM_COMMENT_REPLIES",
|
|
419
545
|
"Scavio Instagram Comment Replies",
|
|
420
|
-
"List replies to an Instagram post comment.",
|
|
546
|
+
"List replies to an Instagram post comment. Costs 8 credits.",
|
|
421
547
|
import_zod.z.object({
|
|
422
548
|
media_id: str("Post media id."),
|
|
423
549
|
comment_id: str("Parent comment id."),
|
|
@@ -428,7 +554,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
428
554
|
tool(
|
|
429
555
|
"INSTAGRAM_SEARCH_USERS",
|
|
430
556
|
"Scavio Instagram Search Users",
|
|
431
|
-
"Search Instagram users by keyword.",
|
|
557
|
+
"Search Instagram users by keyword. Costs 10 credits.",
|
|
432
558
|
import_zod.z.object({
|
|
433
559
|
keyword: str("Search keyword."),
|
|
434
560
|
cursor: ostr("Pagination cursor.")
|
|
@@ -438,7 +564,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
438
564
|
tool(
|
|
439
565
|
"INSTAGRAM_SEARCH_HASHTAGS",
|
|
440
566
|
"Scavio Instagram Search Hashtags",
|
|
441
|
-
"Search Instagram hashtags by keyword.",
|
|
567
|
+
"Search Instagram hashtags by keyword. Costs 10 credits.",
|
|
442
568
|
import_zod.z.object({
|
|
443
569
|
keyword: str("Search keyword."),
|
|
444
570
|
cursor: ostr("Pagination cursor.")
|
|
@@ -448,7 +574,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
448
574
|
tool(
|
|
449
575
|
"INSTAGRAM_USER_FOLLOWERS",
|
|
450
576
|
"Scavio Instagram User Followers",
|
|
451
|
-
"List an Instagram user's followers.",
|
|
577
|
+
"List an Instagram user's followers. Costs 10 credits.",
|
|
452
578
|
import_zod.z.object({
|
|
453
579
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
454
580
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -460,7 +586,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
460
586
|
tool(
|
|
461
587
|
"INSTAGRAM_USER_FOLLOWINGS",
|
|
462
588
|
"Scavio Instagram User Followings",
|
|
463
|
-
"List the accounts an Instagram user follows.",
|
|
589
|
+
"List the accounts an Instagram user follows. Costs 10 credits.",
|
|
464
590
|
import_zod.z.object({
|
|
465
591
|
username: ostr("Instagram username. Provide this or user_id."),
|
|
466
592
|
user_id: ostr("Instagram user id. Provide this or username."),
|
|
@@ -473,7 +599,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
473
599
|
}
|
|
474
600
|
return (0, import_core.experimental_createToolkit)("SCAVIO", {
|
|
475
601
|
name: "Scavio",
|
|
476
|
-
description: "Real-time structured search over Google, YouTube, Amazon, Walmart, Reddit, TikTok, and Instagram.",
|
|
602
|
+
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).",
|
|
477
603
|
tools
|
|
478
604
|
});
|
|
479
605
|
}
|