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 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 Instagram. This package exposes those endpoints as a Composio custom toolkit so your agents can pull structured, up-to-date results across any Composio-supported framework.
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 free credits to start, no credit card).
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
 
@@ -36,7 +50,7 @@ const session = await composio.create("user_1", {
36
50
  const tools = await session.tools();
37
51
  const out = await session.execute("LOCAL_SCAVIO_GOOGLE_SEARCH", {
38
52
  query: "best search API for AI agents",
39
- light_request: true,
53
+ countryCode: "us",
40
54
  });
41
55
  console.log(out);
42
56
  ```
@@ -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). 32 tools total.
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. Reddit and Instagram cost 2 credits each. Google costs 2 credits unless `light_request: true` (1 credit). See [scavio.dev/docs](https://scavio.dev/docs).
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
@@ -31,6 +31,15 @@ var str = (d) => import_zod.z.string().describe(d);
31
31
  var ostr = (d) => import_zod.z.string().optional().describe(d);
32
32
  var onum = (d) => import_zod.z.number().optional().describe(d);
33
33
  var obool = (d) => import_zod.z.boolean().optional().describe(d);
34
+ function googleSearchParams(i) {
35
+ const params = { query: i.query };
36
+ if (i.countryCode != null) params.gl = i.countryCode;
37
+ if (i.language != null) params.hl = i.language;
38
+ if (i.page != null && i.page > 1) params.start = (i.page - 1) * 10;
39
+ if (i.device != null) params.device = i.device;
40
+ if (i.nfpr != null) params.nfpr = i.nfpr;
41
+ return params;
42
+ }
34
43
  function buildScavioToolkit(options = {}) {
35
44
  const {
36
45
  apiKey,
@@ -58,18 +67,16 @@ function buildScavioToolkit(options = {}) {
58
67
  tool(
59
68
  "GOOGLE_SEARCH",
60
69
  "Scavio Google Search",
61
- "Search Google for real-time web results (organic, knowledge graph, news, and more).",
70
+ "Search Google for real-time web results (organic_results, ads, and the AI Overview when present). Costs 1 credit.",
62
71
  import_zod.z.object({
63
72
  query: str("The search query."),
64
- country_code: ostr("Two-letter country code, e.g. 'us'."),
73
+ countryCode: ostr("Two-letter country code, e.g. 'us'."),
65
74
  language: ostr("Two-letter language code, e.g. 'en'."),
66
75
  page: onum("Result page number (1-based)."),
67
- search_type: ostr("Search vertical, e.g. 'search', 'news', 'images'."),
68
76
  device: ostr("Device profile: 'desktop' or 'mobile'."),
69
- nfpr: obool("Disable auto-correction of the query when true."),
70
- light_request: obool("Cheaper, lighter response (1 credit instead of 2) when true.")
77
+ nfpr: obool("Disable auto-correction of the query when true.")
71
78
  }),
72
- (i) => client.google.search(i)
79
+ (i) => client.google.search(googleSearchParams(i))
73
80
  )
74
81
  );
75
82
  }
@@ -78,39 +85,33 @@ function buildScavioToolkit(options = {}) {
78
85
  tool(
79
86
  "AMAZON_SEARCH",
80
87
  "Scavio Amazon Search",
81
- "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.",
82
89
  import_zod.z.object({
83
90
  query: str("The product search query."),
84
- domain: ostr("Amazon domain, e.g. 'amazon.com'."),
85
- country: ostr("Two-letter country code."),
86
- language: ostr("Two-letter language code."),
87
- currency: ostr("Currency code, e.g. 'USD'."),
88
- device: ostr("Device profile: 'desktop' or 'mobile'."),
89
- sort_by: ostr("Sort order for results."),
90
- start_page: onum("First page to return."),
91
- pages: onum("Number of pages to return."),
92
- category_id: ostr("Restrict to an Amazon category id."),
93
- merchant_id: ostr("Restrict to a merchant id."),
94
- zip_code: ostr("Delivery ZIP/postal code."),
95
- 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.")
96
93
  }),
97
94
  (i) => client.amazon.search(i)
98
95
  ),
99
96
  tool(
100
97
  "AMAZON_PRODUCT",
101
98
  "Scavio Amazon Product",
102
- "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.",
103
100
  import_zod.z.object({
104
101
  asin: str("Amazon Standard Identification Number (ASIN) of the product."),
105
- domain: ostr("Amazon domain, e.g. 'amazon.com'."),
106
- country: ostr("Two-letter country code."),
107
- language: ostr("Two-letter language code."),
108
- currency: ostr("Currency code, e.g. 'USD'."),
109
- device: ostr("Device profile: 'desktop' or 'mobile'."),
110
- zip_code: ostr("Delivery ZIP/postal code."),
111
- 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.")
112
103
  }),
113
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)
114
115
  )
115
116
  );
116
117
  }
@@ -119,7 +120,7 @@ function buildScavioToolkit(options = {}) {
119
120
  tool(
120
121
  "WALMART_SEARCH",
121
122
  "Scavio Walmart Search",
122
- "Search Walmart for products matching a query.",
123
+ "Search Walmart for products matching a query. Costs 1 credit.",
123
124
  import_zod.z.object({
124
125
  query: str("The product search query."),
125
126
  domain: ostr("Walmart domain."),
@@ -138,7 +139,7 @@ function buildScavioToolkit(options = {}) {
138
139
  tool(
139
140
  "WALMART_PRODUCT",
140
141
  "Scavio Walmart Product",
141
- "Fetch full Walmart product details by product id.",
142
+ "Fetch full Walmart product details by product id. Costs 1 credit.",
142
143
  import_zod.z.object({
143
144
  product_id: str("Walmart product id."),
144
145
  domain: ostr("Walmart domain."),
@@ -155,13 +156,15 @@ function buildScavioToolkit(options = {}) {
155
156
  tool(
156
157
  "YOUTUBE_SEARCH",
157
158
  "Scavio YouTube Search",
158
- "Search YouTube for videos, channels, or playlists.",
159
+ "Search YouTube for videos, channels, or playlists. Costs 2 credits.",
159
160
  import_zod.z.object({
160
161
  query: str("The video search query."),
161
- upload_date: ostr("Upload date filter, e.g. 'today', 'week', 'month'."),
162
- type: ostr("Result type, e.g. 'video', 'channel', 'playlist'."),
163
- duration: ostr("Duration filter, e.g. 'short', 'long'."),
164
- sort_by: ostr("Sort order for results."),
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."),
165
168
  hd: obool("Restrict to HD videos when true."),
166
169
  subtitles: obool("Restrict to videos with subtitles when true."),
167
170
  creative_commons: obool("Restrict to Creative Commons videos when true."),
@@ -169,12 +172,144 @@ function buildScavioToolkit(options = {}) {
169
172
  }),
170
173
  (i) => client.youtube.search(i)
171
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
+ ),
172
204
  tool(
173
205
  "YOUTUBE_METADATA",
174
206
  "Scavio YouTube Metadata",
175
- "Fetch metadata for a YouTube video by id.",
176
- 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.") }),
177
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)
178
313
  )
179
314
  );
180
315
  }
@@ -183,20 +318,18 @@ function buildScavioToolkit(options = {}) {
183
318
  tool(
184
319
  "REDDIT_SEARCH",
185
320
  "Scavio Reddit Search",
186
- "Search Reddit posts, subreddits, or users.",
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.",
187
322
  import_zod.z.object({
188
323
  query: str("The Reddit search query."),
189
- type: ostr("Search type, e.g. 'posts', 'subreddits', 'users'."),
190
- sort: ostr("Sort order, e.g. 'relevance', 'new', 'top'."),
191
- cursor: ostr("Pagination cursor.")
324
+ cursor: ostr("Pagination cursor: pass 'next_cursor' from a prior response.")
192
325
  }),
193
326
  (i) => client.reddit.search(i)
194
327
  ),
195
328
  tool(
196
329
  "REDDIT_POST",
197
330
  "Scavio Reddit Post",
198
- "Fetch a Reddit post and its comment thread by URL.",
199
- import_zod.z.object({ url: str("Full URL of the Reddit post to fetch with its comments.") }),
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.") }),
200
333
  (i) => client.reddit.post(i)
201
334
  )
202
335
  );
@@ -206,7 +339,7 @@ function buildScavioToolkit(options = {}) {
206
339
  tool(
207
340
  "TIKTOK_PROFILE",
208
341
  "Scavio TikTok Profile",
209
- "Fetch a TikTok user profile by username or secUid.",
342
+ "Fetch a TikTok user profile by username or secUid. Costs 1 credit.",
210
343
  import_zod.z.object({
211
344
  username: ostr("TikTok username (without @). Provide this or sec_user_id."),
212
345
  sec_user_id: ostr("TikTok secUid. Provide this or username.")
@@ -216,7 +349,7 @@ function buildScavioToolkit(options = {}) {
216
349
  tool(
217
350
  "TIKTOK_USER_POSTS",
218
351
  "Scavio TikTok User Posts",
219
- "List a TikTok user's posts by secUid.",
352
+ "List a TikTok user's posts by secUid. Costs 1 credit.",
220
353
  import_zod.z.object({
221
354
  sec_user_id: str("TikTok secUid of the user."),
222
355
  cursor: ostr("Pagination cursor."),
@@ -228,14 +361,14 @@ function buildScavioToolkit(options = {}) {
228
361
  tool(
229
362
  "TIKTOK_VIDEO",
230
363
  "Scavio TikTok Video",
231
- "Fetch a TikTok video by id.",
364
+ "Fetch a TikTok video by id. Costs 1 credit.",
232
365
  import_zod.z.object({ video_id: str("TikTok video id.") }),
233
366
  (i) => client.tiktok.video(i)
234
367
  ),
235
368
  tool(
236
369
  "TIKTOK_VIDEO_COMMENTS",
237
370
  "Scavio TikTok Video Comments",
238
- "List comments on a TikTok video.",
371
+ "List comments on a TikTok video. Costs 1 credit.",
239
372
  import_zod.z.object({
240
373
  video_id: str("TikTok video id."),
241
374
  cursor: ostr("Pagination cursor."),
@@ -246,7 +379,7 @@ function buildScavioToolkit(options = {}) {
246
379
  tool(
247
380
  "TIKTOK_COMMENT_REPLIES",
248
381
  "Scavio TikTok Comment Replies",
249
- "List replies to a TikTok video comment.",
382
+ "List replies to a TikTok video comment. Costs 1 credit.",
250
383
  import_zod.z.object({
251
384
  video_id: str("TikTok video id."),
252
385
  comment_id: str("Parent comment id."),
@@ -258,7 +391,7 @@ function buildScavioToolkit(options = {}) {
258
391
  tool(
259
392
  "TIKTOK_SEARCH_VIDEOS",
260
393
  "Scavio TikTok Search Videos",
261
- "Search TikTok videos by keyword.",
394
+ "Search TikTok videos by keyword. Costs 1 credit.",
262
395
  import_zod.z.object({
263
396
  keyword: str("Search keyword."),
264
397
  cursor: ostr("Pagination cursor."),
@@ -271,7 +404,7 @@ function buildScavioToolkit(options = {}) {
271
404
  tool(
272
405
  "TIKTOK_SEARCH_USERS",
273
406
  "Scavio TikTok Search Users",
274
- "Search TikTok users by keyword.",
407
+ "Search TikTok users by keyword. Costs 1 credit.",
275
408
  import_zod.z.object({
276
409
  keyword: str("Search keyword."),
277
410
  cursor: ostr("Pagination cursor."),
@@ -282,7 +415,7 @@ function buildScavioToolkit(options = {}) {
282
415
  tool(
283
416
  "TIKTOK_HASHTAG",
284
417
  "Scavio TikTok Hashtag",
285
- "Fetch a TikTok hashtag by name or id.",
418
+ "Fetch a TikTok hashtag by name or id. Costs 1 credit.",
286
419
  import_zod.z.object({
287
420
  hashtag_name: ostr("Hashtag name (without #). Provide this or hashtag_id."),
288
421
  hashtag_id: ostr("Hashtag id. Provide this or hashtag_name.")
@@ -292,7 +425,7 @@ function buildScavioToolkit(options = {}) {
292
425
  tool(
293
426
  "TIKTOK_HASHTAG_VIDEOS",
294
427
  "Scavio TikTok Hashtag Videos",
295
- "List videos for a TikTok hashtag by id.",
428
+ "List videos for a TikTok hashtag by id. Costs 1 credit.",
296
429
  import_zod.z.object({
297
430
  hashtag_id: str("Hashtag id."),
298
431
  cursor: ostr("Pagination cursor."),
@@ -303,7 +436,7 @@ function buildScavioToolkit(options = {}) {
303
436
  tool(
304
437
  "TIKTOK_USER_FOLLOWERS",
305
438
  "Scavio TikTok User Followers",
306
- "List a TikTok user's followers by secUid.",
439
+ "List a TikTok user's followers by secUid. Costs 1 credit.",
307
440
  import_zod.z.object({
308
441
  sec_user_id: str("TikTok secUid of the user."),
309
442
  count: onum("Number of followers to return."),
@@ -315,7 +448,7 @@ function buildScavioToolkit(options = {}) {
315
448
  tool(
316
449
  "TIKTOK_USER_FOLLOWINGS",
317
450
  "Scavio TikTok User Followings",
318
- "List the accounts a TikTok user follows, by secUid.",
451
+ "List the accounts a TikTok user follows, by secUid. Costs 1 credit.",
319
452
  import_zod.z.object({
320
453
  sec_user_id: str("TikTok secUid of the user."),
321
454
  count: onum("Number of followings to return."),
@@ -331,7 +464,7 @@ function buildScavioToolkit(options = {}) {
331
464
  tool(
332
465
  "INSTAGRAM_PROFILE",
333
466
  "Scavio Instagram Profile",
334
- "Fetch an Instagram profile by username or user id.",
467
+ "Fetch an Instagram profile by username or user id. Costs 10 credits.",
335
468
  import_zod.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.")
@@ -341,7 +474,7 @@ function buildScavioToolkit(options = {}) {
341
474
  tool(
342
475
  "INSTAGRAM_USER_POSTS",
343
476
  "Scavio Instagram User Posts",
344
- "List an Instagram user's posts.",
477
+ "List an Instagram user's posts. Costs 2 credits, the cheapest Instagram endpoint.",
345
478
  import_zod.z.object({
346
479
  username: ostr("Instagram username. Provide this or user_id."),
347
480
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -353,7 +486,7 @@ function buildScavioToolkit(options = {}) {
353
486
  tool(
354
487
  "INSTAGRAM_USER_REELS",
355
488
  "Scavio Instagram User Reels",
356
- "List an Instagram user's reels.",
489
+ "List an Instagram user's reels. Costs 10 credits.",
357
490
  import_zod.z.object({
358
491
  username: ostr("Instagram username. Provide this or user_id."),
359
492
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -365,7 +498,7 @@ function buildScavioToolkit(options = {}) {
365
498
  tool(
366
499
  "INSTAGRAM_USER_TAGGED",
367
500
  "Scavio Instagram User Tagged",
368
- "List posts an Instagram user is tagged in.",
501
+ "List posts an Instagram user is tagged in. Costs 10 credits.",
369
502
  import_zod.z.object({
370
503
  username: ostr("Instagram username. Provide this or user_id."),
371
504
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -377,7 +510,7 @@ function buildScavioToolkit(options = {}) {
377
510
  tool(
378
511
  "INSTAGRAM_USER_STORIES",
379
512
  "Scavio Instagram User Stories",
380
- "Fetch an Instagram user's current stories.",
513
+ "Fetch an Instagram user's current stories. Costs 10 credits.",
381
514
  import_zod.z.object({
382
515
  username: ostr("Instagram username. Provide this or user_id."),
383
516
  user_id: ostr("Instagram user id. Provide this or username.")
@@ -387,7 +520,7 @@ function buildScavioToolkit(options = {}) {
387
520
  tool(
388
521
  "INSTAGRAM_POST",
389
522
  "Scavio Instagram Post",
390
- "Fetch an Instagram post by URL, media id, or shortcode.",
523
+ "Fetch an Instagram post by URL, media id, or shortcode. Costs 8 credits.",
391
524
  import_zod.z.object({
392
525
  url: ostr("Post URL. Provide one of url, media_id, or shortcode."),
393
526
  media_id: ostr("Post media id. Provide one of url, media_id, or shortcode."),
@@ -398,7 +531,7 @@ function buildScavioToolkit(options = {}) {
398
531
  tool(
399
532
  "INSTAGRAM_POST_COMMENTS",
400
533
  "Scavio Instagram Post Comments",
401
- "List comments on an Instagram post by shortcode or URL.",
534
+ "List comments on an Instagram post by shortcode or URL. Costs 10 credits.",
402
535
  import_zod.z.object({
403
536
  shortcode: ostr("Post shortcode. Provide this or url."),
404
537
  url: ostr("Post URL. Provide this or shortcode."),
@@ -410,7 +543,7 @@ function buildScavioToolkit(options = {}) {
410
543
  tool(
411
544
  "INSTAGRAM_COMMENT_REPLIES",
412
545
  "Scavio Instagram Comment Replies",
413
- "List replies to an Instagram post comment.",
546
+ "List replies to an Instagram post comment. Costs 8 credits.",
414
547
  import_zod.z.object({
415
548
  media_id: str("Post media id."),
416
549
  comment_id: str("Parent comment id."),
@@ -421,7 +554,7 @@ function buildScavioToolkit(options = {}) {
421
554
  tool(
422
555
  "INSTAGRAM_SEARCH_USERS",
423
556
  "Scavio Instagram Search Users",
424
- "Search Instagram users by keyword.",
557
+ "Search Instagram users by keyword. Costs 10 credits.",
425
558
  import_zod.z.object({
426
559
  keyword: str("Search keyword."),
427
560
  cursor: ostr("Pagination cursor.")
@@ -431,7 +564,7 @@ function buildScavioToolkit(options = {}) {
431
564
  tool(
432
565
  "INSTAGRAM_SEARCH_HASHTAGS",
433
566
  "Scavio Instagram Search Hashtags",
434
- "Search Instagram hashtags by keyword.",
567
+ "Search Instagram hashtags by keyword. Costs 10 credits.",
435
568
  import_zod.z.object({
436
569
  keyword: str("Search keyword."),
437
570
  cursor: ostr("Pagination cursor.")
@@ -441,7 +574,7 @@ function buildScavioToolkit(options = {}) {
441
574
  tool(
442
575
  "INSTAGRAM_USER_FOLLOWERS",
443
576
  "Scavio Instagram User Followers",
444
- "List an Instagram user's followers.",
577
+ "List an Instagram user's followers. Costs 10 credits.",
445
578
  import_zod.z.object({
446
579
  username: ostr("Instagram username. Provide this or user_id."),
447
580
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -453,7 +586,7 @@ function buildScavioToolkit(options = {}) {
453
586
  tool(
454
587
  "INSTAGRAM_USER_FOLLOWINGS",
455
588
  "Scavio Instagram User Followings",
456
- "List the accounts an Instagram user follows.",
589
+ "List the accounts an Instagram user follows. Costs 10 credits.",
457
590
  import_zod.z.object({
458
591
  username: ostr("Instagram username. Provide this or user_id."),
459
592
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -466,7 +599,7 @@ function buildScavioToolkit(options = {}) {
466
599
  }
467
600
  return (0, import_core.experimental_createToolkit)("SCAVIO", {
468
601
  name: "Scavio",
469
- 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).",
470
603
  tools
471
604
  });
472
605
  }