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 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
 
@@ -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, including Google. Reddit and Instagram cost 2 credits each. 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
@@ -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
- domain: ostr("Amazon domain, e.g. 'amazon.com'."),
92
- country: ostr("Two-letter country code."),
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
- domain: ostr("Amazon domain, e.g. 'amazon.com'."),
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, e.g. 'today', 'week', 'month'."),
169
- type: ostr("Result type, e.g. 'video', 'channel', 'playlist'."),
170
- duration: ostr("Duration filter, e.g. 'short', 'long'."),
171
- 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."),
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, 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.",
194
322
  import_zod.z.object({
195
323
  query: str("The Reddit search query."),
196
- type: ostr("Search type, e.g. 'posts', 'subreddits', 'users'."),
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 a Reddit post and its comment thread by URL.",
206
- 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.") }),
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
  }