composio-scavio 0.5.1 → 0.5.3

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
@@ -31,7 +31,7 @@ Scavio is a single Search API over 31 platforms -- Google, YouTube, Amazon, Walm
31
31
  > result offset, not a page number** (0 is page 1, 10 is page 2), and there is no
32
32
  > `page` argument mapped onto it -- a silent remap fetches the wrong page.
33
33
 
34
- > **Amazon changed (breaking).** The upstream provider moved in 2026-07:
34
+ > **Amazon changed (breaking).** The Amazon endpoint changed in 2026-07:
35
35
  > `domain` is replaced by `country`, a two-letter marketplace code (`us`, `gb`
36
36
  > -- the UK is `gb`, not `uk` -- `de`, `jp`, ...), and `sort_by`, `pages`,
37
37
  > `category_id`, `merchant_id`, `language`, `currency`, `device`, `zip_code`
package/dist/index.cjs CHANGED
@@ -992,7 +992,7 @@ function buildScavioToolkit(options = {}) {
992
992
  tool(
993
993
  "INSTAGRAM_PROFILE",
994
994
  "Scavio Instagram Profile",
995
- "Fetch an Instagram profile by username or user id. Costs 10 credits.",
995
+ "Fetch an Instagram profile by username or user id. Costs 1 credit.",
996
996
  import_zod.z.object({
997
997
  username: ostr("Instagram username. Provide this or user_id."),
998
998
  user_id: ostr("Instagram user id. Provide this or username.")
@@ -1002,7 +1002,7 @@ function buildScavioToolkit(options = {}) {
1002
1002
  tool(
1003
1003
  "INSTAGRAM_USER_POSTS",
1004
1004
  "Scavio Instagram User Posts",
1005
- "List an Instagram user's posts. Costs 2 credits, the cheapest Instagram endpoint.",
1005
+ "List an Instagram user's posts. Costs 2 credits per page.",
1006
1006
  import_zod.z.object({
1007
1007
  username: ostr("Instagram username. Provide this or user_id."),
1008
1008
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -1014,7 +1014,7 @@ function buildScavioToolkit(options = {}) {
1014
1014
  tool(
1015
1015
  "INSTAGRAM_USER_REELS",
1016
1016
  "Scavio Instagram User Reels",
1017
- "List an Instagram user's reels. Costs 10 credits.",
1017
+ "List an Instagram user's reels. Costs 1 credit (2 the first time a username is looked up).",
1018
1018
  import_zod.z.object({
1019
1019
  username: ostr("Instagram username. Provide this or user_id."),
1020
1020
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -1026,7 +1026,7 @@ function buildScavioToolkit(options = {}) {
1026
1026
  tool(
1027
1027
  "INSTAGRAM_USER_TAGGED",
1028
1028
  "Scavio Instagram User Tagged",
1029
- "List posts an Instagram user is tagged in. Costs 10 credits.",
1029
+ "List posts an Instagram user is tagged in. Costs 1 credit (2 the first time a username is looked up).",
1030
1030
  import_zod.z.object({
1031
1031
  username: ostr("Instagram username. Provide this or user_id."),
1032
1032
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -1038,7 +1038,7 @@ function buildScavioToolkit(options = {}) {
1038
1038
  tool(
1039
1039
  "INSTAGRAM_USER_STORIES",
1040
1040
  "Scavio Instagram User Stories",
1041
- "Fetch an Instagram user's current stories. Costs 10 credits.",
1041
+ "Fetch an Instagram user's current stories. Costs 2 credits.",
1042
1042
  import_zod.z.object({
1043
1043
  username: ostr("Instagram username. Provide this or user_id."),
1044
1044
  user_id: ostr("Instagram user id. Provide this or username.")
@@ -1048,7 +1048,7 @@ function buildScavioToolkit(options = {}) {
1048
1048
  tool(
1049
1049
  "INSTAGRAM_POST",
1050
1050
  "Scavio Instagram Post",
1051
- "Fetch an Instagram post by URL, media id, or shortcode. Costs 8 credits.",
1051
+ "Fetch an Instagram post by URL, media id, or shortcode. Costs 2 credits.",
1052
1052
  import_zod.z.object({
1053
1053
  url: ostr("Post URL. Provide one of url, media_id, or shortcode."),
1054
1054
  media_id: ostr("Post media id. Provide one of url, media_id, or shortcode."),
@@ -1059,7 +1059,7 @@ function buildScavioToolkit(options = {}) {
1059
1059
  tool(
1060
1060
  "INSTAGRAM_POST_COMMENTS",
1061
1061
  "Scavio Instagram Post Comments",
1062
- "List comments on an Instagram post by shortcode or URL. Costs 10 credits.",
1062
+ "List comments on an Instagram post by shortcode or URL. Costs 2 credits per page.",
1063
1063
  import_zod.z.object({
1064
1064
  shortcode: ostr("Post shortcode. Provide this or url."),
1065
1065
  url: ostr("Post URL. Provide this or shortcode."),
@@ -1071,7 +1071,7 @@ function buildScavioToolkit(options = {}) {
1071
1071
  tool(
1072
1072
  "INSTAGRAM_COMMENT_REPLIES",
1073
1073
  "Scavio Instagram Comment Replies",
1074
- "List replies to an Instagram post comment. Costs 8 credits.",
1074
+ "List replies to an Instagram post comment. Costs 2 credits.",
1075
1075
  import_zod.z.object({
1076
1076
  media_id: str("Post media id."),
1077
1077
  comment_id: str("Parent comment id."),
@@ -1082,7 +1082,7 @@ function buildScavioToolkit(options = {}) {
1082
1082
  tool(
1083
1083
  "INSTAGRAM_SEARCH_USERS",
1084
1084
  "Scavio Instagram Search Users",
1085
- "Search Instagram users by keyword. Costs 10 credits.",
1085
+ "Search Instagram users by keyword. Costs 2 credits; a request with a cursor costs 8.",
1086
1086
  import_zod.z.object({
1087
1087
  keyword: str("Search keyword."),
1088
1088
  cursor: ostr("Pagination cursor.")
@@ -1092,7 +1092,7 @@ function buildScavioToolkit(options = {}) {
1092
1092
  tool(
1093
1093
  "INSTAGRAM_SEARCH_HASHTAGS",
1094
1094
  "Scavio Instagram Search Hashtags",
1095
- "Search Instagram hashtags by keyword. Costs 10 credits.",
1095
+ "Search Instagram hashtags by keyword. Costs 2 credits; a request with a cursor costs 8.",
1096
1096
  import_zod.z.object({
1097
1097
  keyword: str("Search keyword."),
1098
1098
  cursor: ostr("Pagination cursor.")
@@ -1102,7 +1102,7 @@ function buildScavioToolkit(options = {}) {
1102
1102
  tool(
1103
1103
  "INSTAGRAM_USER_FOLLOWERS",
1104
1104
  "Scavio Instagram User Followers",
1105
- "List an Instagram user's followers. Costs 10 credits.",
1105
+ "List an Instagram user's followers. Costs 2 credits per page.",
1106
1106
  import_zod.z.object({
1107
1107
  username: ostr("Instagram username. Provide this or user_id."),
1108
1108
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -1114,7 +1114,7 @@ function buildScavioToolkit(options = {}) {
1114
1114
  tool(
1115
1115
  "INSTAGRAM_USER_FOLLOWINGS",
1116
1116
  "Scavio Instagram User Followings",
1117
- "List the accounts an Instagram user follows. Costs 10 credits.",
1117
+ "List the accounts an Instagram user follows. Costs 2 credits per page.",
1118
1118
  import_zod.z.object({
1119
1119
  username: ostr("Instagram username. Provide this or user_id."),
1120
1120
  user_id: ostr("Instagram user id. Provide this or username."),
@@ -1247,7 +1247,7 @@ function buildScavioToolkit(options = {}) {
1247
1247
  tool(
1248
1248
  "LINKEDIN_PERSON_ABOUT",
1249
1249
  "Scavio LinkedIn Person About",
1250
- "The about-only slice of a LinkedIn profile: about, headline, education_summary, experiences, educations, honors_and_awards and bio_links. Same upstream call as LINKEDIN_PERSON, shaped down. Costs 1 credit.",
1250
+ "The about-only slice of a LinkedIn profile: about, headline, education_summary, experiences, educations, honors_and_awards and bio_links. Same lookup as LINKEDIN_PERSON, shaped down. Costs 1 credit.",
1251
1251
  import_zod.z.object({
1252
1252
  username: ostr("Public identifier / vanity handle. Provide this or url."),
1253
1253
  url: ostr("Full LinkedIn profile URL. Provide this or username.")
@@ -1547,7 +1547,7 @@ function buildScavioToolkit(options = {}) {
1547
1547
  query: ostr("Keyword to search (1-500 characters). Optional: a seller-only search pages that seller's whole catalogue."),
1548
1548
  seller: ostr("Restrict results to one seller's listings (1-64 characters), as in ebay.com/usr/<name>. Can be sent with no query."),
1549
1549
  page: onum("Results page, 1-based."),
1550
- sort_by: ostr("Result sort order. Defaults to 'best_match'. eBay's 'Distance: nearest first' is deliberately unsupported (it ranks against our proxy exit, not the caller). Accepted values: 'best_match', 'ending_soonest', 'newly_listed', 'price_low', 'price_high'."),
1550
+ sort_by: ostr("Result sort order. Defaults to 'best_match'. eBay's 'Distance: nearest first' is deliberately unsupported (it would not rank by the location of the caller). Accepted values: 'best_match', 'ending_soonest', 'newly_listed', 'price_low', 'price_high'."),
1551
1551
  min_price: onum("Minimum price, inclusive. Must be 0 or greater."),
1552
1552
  max_price: onum("Maximum price, inclusive. Must be 0 or greater."),
1553
1553
  condition: ostr("Item condition filter. 'refurbished' is eBay's parent condition, not one of its three graded tiers. Accepted values: 'new', 'open_box', 'refurbished', 'used', 'for_parts'."),
@@ -1750,7 +1750,7 @@ function buildScavioToolkit(options = {}) {
1750
1750
  adults: onum("Adult guests, >= 1 (default 2)."),
1751
1751
  children_ages: oarrnum("AGES of accompanying children, each 0-17, max 10 entries. Ages, not a count."),
1752
1752
  rooms: onum("Rooms required, >= 1 (default 1)."),
1753
- currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking prices off the proxy exit and identical requests disagree.")
1753
+ currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking picks a currency itself and identical requests can disagree.")
1754
1754
  }),
1755
1755
  (i) => client.booking.search(i)
1756
1756
  ),
@@ -1766,7 +1766,7 @@ function buildScavioToolkit(options = {}) {
1766
1766
  adults: onum("Adult guests, >= 1 (default 2)."),
1767
1767
  children_ages: oarrnum("AGES of accompanying children, each 0-17, max 10 entries. Ages, not a count."),
1768
1768
  rooms: onum("Rooms required, >= 1 (default 1)."),
1769
- currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking prices off the proxy exit and identical requests disagree.")
1769
+ currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking picks a currency itself and identical requests can disagree.")
1770
1770
  }),
1771
1771
  (i) => client.booking.hotel(i)
1772
1772
  ),
@@ -1912,7 +1912,7 @@ function buildScavioToolkit(options = {}) {
1912
1912
  guest_favorite: obool("Guest Favorite listings only."),
1913
1913
  free_cancellation: obool("Listings with free cancellation only."),
1914
1914
  amenities: ostr("Comma-separated amenities (1-200 characters): wifi, air_conditioning, pool, kitchen, free_parking, washer, self_check_in, tv, or raw numeric Airbnb amenity ids. An unrecognised NAME is rejected before the scrape."),
1915
- currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Airbnb prices off the proxy exit and identical requests disagree."),
1915
+ currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Airbnb picks a currency itself and identical requests can disagree."),
1916
1916
  page: onum("Results page, 1-based. 18 listings per page. Cannot be combined with cursor."),
1917
1917
  cursor: ostr("next_cursor from a previous response (1-500 characters); wins over page, so sending both is rejected.")
1918
1918
  }),
@@ -1975,7 +1975,7 @@ function buildScavioToolkit(options = {}) {
1975
1975
  "Scavio Glassdoor Reviews",
1976
1976
  "Up to THREE full Glassdoor reviews - the cap is Glassdoor's login wall - with per-axis scores, pros, cons, advice, job title, location, employment status and employer response, plus complete rating statistics, star distribution, aggregate pro/con highlight terms and per-job-title review counts. There is no page param: move the window with category and employment_status. Provide employer_id or url. Costs 1 credit.",
1977
1977
  import_zod.z.object({
1978
- employer_id: ostr("Glassdoor employer id (1-50 characters): '1699', 'E1699' or 'IE1699'. Must be a STRING - a JSON number is rejected. Addressing by id costs two upstream fetches; the customer price is unchanged."),
1978
+ employer_id: ostr("Glassdoor employer id (1-50 characters): '1699', 'E1699' or 'IE1699'. Must be a STRING - a JSON number is rejected. Addressing by id takes an extra lookup; the customer price is unchanged."),
1979
1979
  company: ostr("Employer name as it appears in a Glassdoor slug (1-200 characters). COSMETIC: ignored when url is set, and it does not satisfy the employer_id-or-url requirement."),
1980
1980
  url: ostr("Any glassdoor.com employer URL (1-500 characters). Pass back reviews_url from company() to skip the resolve fetch. A non-glassdoor.com host is rejected."),
1981
1981
  category: ostr("Restrict to reviews Glassdoor files under one topic. Closed enum: Glassdoor IGNORES an unknown value and serves the unfiltered set under a 200. Read filtered_review_count on the response to see how many match. Accepted values: 'career_development', 'compensation', 'culture', 'diversity_and_inclusion', 'management', 'work_life_balance'."),
@@ -1988,7 +1988,7 @@ function buildScavioToolkit(options = {}) {
1988
1988
  "Scavio Glassdoor Salaries",
1989
1989
  "Glassdoor salaries by job title, 10 titles per page: base-pay and total-pay percentiles P10-P90 with medians called out, sample counts, currency, pay period and last-reported date. The figures are Glassdoor's ESTIMATES for the title, not individual reported salaries. Provide employer_id or url. Costs 1 credit.",
1990
1990
  import_zod.z.object({
1991
- employer_id: ostr("Glassdoor employer id (1-50 characters): '1699', 'E1699' or 'IE1699'. Must be a STRING - a JSON number is rejected. Addressing by id costs two upstream fetches; the customer price is unchanged."),
1991
+ employer_id: ostr("Glassdoor employer id (1-50 characters): '1699', 'E1699' or 'IE1699'. Must be a STRING - a JSON number is rejected. Addressing by id takes an extra lookup; the customer price is unchanged."),
1992
1992
  company: ostr("Employer name as it appears in a Glassdoor slug (1-200 characters). COSMETIC: ignored when url is set, and it does not satisfy the employer_id-or-url requirement."),
1993
1993
  url: ostr("Any glassdoor.com employer URL (1-500 characters). Pass back salaries_url from company() to skip the resolve fetch. A non-glassdoor.com host is rejected."),
1994
1994
  page: onum("Results page, 1-based. Ten job titles per page; page_count on the response is how many pages exist.")
@@ -2005,7 +2005,7 @@ function buildScavioToolkit(options = {}) {
2005
2005
  "Businesses in Yelp's ranked order: rating, review count, price band, categories, address, contact rails, hours, photos and a review snippet; every row carries both business_id and alias. Yelp fixes the page size at 10. Provide term and location, or url. Costs 2 credits.",
2006
2006
  import_zod.z.object({
2007
2007
  term: ostr("What to look for (1-200 characters): a category ('plumbers'), a dish, or a business name. Required together with location unless url is given."),
2008
- location: ostr("Where to look (1-200 characters): city and region, a full address, or a postcode. Effectively required - Yelp geolocates a location-less search off the proxy exit, so the same request answers about a different metro run to run."),
2008
+ location: ostr("Where to look (1-200 characters): city and region, a full address, or a postcode. Effectively required - without it Yelp picks a location itself, so the same request can answer about a different metro run to run."),
2009
2009
  page: onum("Results page, 1-based. Yelp fixes the page size at 10."),
2010
2010
  sort: ostr("Result ordering (upstream default 'recommended'). Closed enum: Yelp IGNORES an unrecognised sortby and serves default ranking under a 200, billing a premium scrape for a sort that never ran. Accepted values: 'recommended', 'rating', 'review_count'."),
2011
2011
  price: oarrnum("Price bands to include, 1 ($) to 4 ($$$$); 1-4 values, combined freely - [1, 2] means $ or $$. Accepted values: 1, 2, 3, 4."),