composio-scavio 0.5.2 → 0.6.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 +4 -4
- package/dist/index.cjs +24 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +24 -12
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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 31 platforms -- Google, YouTube, Amazon, Walmart, eBay, Target, Home Depot, Reddit, TikTok, TikTok Shop, Instagram, X, LinkedIn, Threads, Kuaishou, Zillow, Redfin, Booking.com, Airbnb, Tripadvisor, Yelp, Indeed, Glassdoor, the Apple App Store, Google Play, SEC EDGAR, Companies House, G2, Capterra, Google Ads Transparency and the Meta Ad Library -- plus `extract`, which reads any URL as Markdown, plain text or raw HTML. This package exposes **
|
|
5
|
+
Scavio is a single Search API over 31 platforms -- Google, YouTube, Amazon, Walmart, eBay, Target, Home Depot, Reddit, TikTok, TikTok Shop, Instagram, X, LinkedIn, Threads, Kuaishou, Zillow, Redfin, Booking.com, Airbnb, Tripadvisor, Yelp, Indeed, Glassdoor, the Apple App Store, Google Play, SEC EDGAR, Companies House, G2, Capterra, Google Ads Transparency and the Meta Ad Library -- plus `extract`, which reads any URL as Markdown, plain text or raw HTML. This package exposes **195 tools** -- one per live endpoint plus five website tools that map, crawl and batch-extract whole sites -- as a Composio custom toolkit so your agents can pull structured, up-to-date results across any Composio-supported framework.
|
|
6
6
|
|
|
7
7
|
> **New in 0.5.0: website map, crawl and batch.** Five opt-in tools behind
|
|
8
8
|
> `enableCrawl` -- see [Map, crawl and batch](#map-crawl-and-batch). Needs
|
|
@@ -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
|
|
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`
|
|
@@ -122,7 +122,7 @@ All tools are grouped under the `SCAVIO` custom toolkit; agent-facing slugs are
|
|
|
122
122
|
| Threads | `enableThreads` | 6 | profile, user posts, user replies, post, post comments, search users |
|
|
123
123
|
| Kuaishou (China) | `enableKuaishou` | 14 | profile, user posts, user live, user resolve, video, video comments, comment replies, videos batch, search, search videos, search users, search live, tag feed, trending |
|
|
124
124
|
| eBay | `enableEbay` | 3 | search, product, seller |
|
|
125
|
-
| Target | `enableTarget` |
|
|
125
|
+
| Target | `enableTarget` | 5 | search, category, product, reviews, availability |
|
|
126
126
|
| Home Depot | `enableHomeDepot` | 3 | search, product, reviews |
|
|
127
127
|
| Zillow | `enableZillow` | 3 | search, property, agent reviews |
|
|
128
128
|
| Booking.com | `enableBooking` | 3 | search, hotel, reviews |
|
|
@@ -141,7 +141,7 @@ All tools are grouped under the `SCAVIO` custom toolkit; agent-facing slugs are
|
|
|
141
141
|
| Google Ads Transparency | `enableGoogleAds` | 3 | advertisers, search, creative |
|
|
142
142
|
| Meta Ad Library | `enableMetaAds` | 3 | search, advertiser, ad |
|
|
143
143
|
| Website map, crawl, batch | `enableCrawl` | 5 | map website, crawl website, crawl status, batch extract, batch status |
|
|
144
|
-
| **Total** | | **
|
|
144
|
+
| **Total** | | **195** | |
|
|
145
145
|
|
|
146
146
|
Two endpoints are deliberately not exposed:
|
|
147
147
|
|
package/dist/index.cjs
CHANGED
|
@@ -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
|
|
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
|
|
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'."),
|
|
@@ -1590,7 +1590,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1590
1590
|
page: onum("Results page, 1-based."),
|
|
1591
1591
|
count: onum("Results per page, 1-28. Defaults to 24; Target rejects anything above 28 outright."),
|
|
1592
1592
|
sort: ostr("Result sort order. Defaults to 'relevance'. Accepted values: 'relevance', 'featured', 'price_low', 'price_high', 'rating_high', 'best_seller', 'newest'."),
|
|
1593
|
-
store_id: ostr("Numeric Target store id whose prices
|
|
1593
|
+
store_id: ostr("Numeric Target store id whose prices the response reflects. Defaults to '3991', the store target.com uses with no store context.")
|
|
1594
1594
|
}),
|
|
1595
1595
|
(i) => client.target.search(i)
|
|
1596
1596
|
),
|
|
@@ -1603,7 +1603,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1603
1603
|
page: onum("Results page, 1-based."),
|
|
1604
1604
|
count: onum("Results per page, 1-28. Defaults to 24; Target rejects anything above 28 outright."),
|
|
1605
1605
|
sort: ostr("Result sort order. Defaults to 'relevance'. Accepted values: 'relevance', 'featured', 'price_low', 'price_high', 'rating_high', 'best_seller', 'newest'."),
|
|
1606
|
-
store_id: ostr("Numeric Target store id whose prices
|
|
1606
|
+
store_id: ostr("Numeric Target store id whose prices the response reflects. Defaults to '3991'.")
|
|
1607
1607
|
}),
|
|
1608
1608
|
(i) => client.target.category(i)
|
|
1609
1609
|
),
|
|
@@ -1613,7 +1613,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1613
1613
|
"Target product details by TCIN: price, rating, images, specifications, variants, return policy, fulfillment. seller_id/seller_name are null for stock sold by Target. Costs 1 credit.",
|
|
1614
1614
|
import_zod.z.object({
|
|
1615
1615
|
tcin: str("Target catalog id (tcin, e.g. '1010453160'). A colour/size child tcin is answered by its variation parent, with the child present in 'variants'."),
|
|
1616
|
-
store_id: ostr("Numeric Target store id whose prices
|
|
1616
|
+
store_id: ostr("Numeric Target store id whose prices the response reflects. Defaults to '3991'.")
|
|
1617
1617
|
}),
|
|
1618
1618
|
(i) => client.target.product(i)
|
|
1619
1619
|
),
|
|
@@ -1624,9 +1624,21 @@ function buildScavioToolkit(options = {}) {
|
|
|
1624
1624
|
import_zod.z.object({
|
|
1625
1625
|
tcin: str("Target catalog id (tcin, e.g. '1010453160')."),
|
|
1626
1626
|
limit: onum("Trim the returned reviews to at most this many (1 or greater). Target publishes 8 anonymously and offers no paging, so this only trims."),
|
|
1627
|
-
store_id: ostr("Numeric Target store id whose prices
|
|
1627
|
+
store_id: ostr("Numeric Target store id whose prices the response reflects. Defaults to '3991'.")
|
|
1628
1628
|
}),
|
|
1629
1629
|
(i) => client.target.reviews(i)
|
|
1630
|
+
),
|
|
1631
|
+
tool(
|
|
1632
|
+
"TARGET_AVAILABILITY",
|
|
1633
|
+
"Scavio Target Availability",
|
|
1634
|
+
"In-store stock for a Target product at every store near a ZIP: units available, in-store, pickup, curbside and ship-to-store status, distance, address and hours. Costs 1 credit.",
|
|
1635
|
+
import_zod.z.object({
|
|
1636
|
+
tcin: str("Target catalog id (tcin, e.g. '85978609')."),
|
|
1637
|
+
zip: str("5-digit US ZIP code to search around."),
|
|
1638
|
+
radius: onum("Search radius in miles, 1-100. Defaults to 25. At most 20 stores."),
|
|
1639
|
+
store_id: ostr("Return only this Target store. It must be within radius of zip.")
|
|
1640
|
+
}),
|
|
1641
|
+
(i) => client.target.availability(i)
|
|
1630
1642
|
)
|
|
1631
1643
|
);
|
|
1632
1644
|
}
|
|
@@ -1750,7 +1762,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1750
1762
|
adults: onum("Adult guests, >= 1 (default 2)."),
|
|
1751
1763
|
children_ages: oarrnum("AGES of accompanying children, each 0-17, max 10 entries. Ages, not a count."),
|
|
1752
1764
|
rooms: onum("Rooms required, >= 1 (default 1)."),
|
|
1753
|
-
currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking
|
|
1765
|
+
currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking picks a currency itself and identical requests can disagree.")
|
|
1754
1766
|
}),
|
|
1755
1767
|
(i) => client.booking.search(i)
|
|
1756
1768
|
),
|
|
@@ -1766,7 +1778,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1766
1778
|
adults: onum("Adult guests, >= 1 (default 2)."),
|
|
1767
1779
|
children_ages: oarrnum("AGES of accompanying children, each 0-17, max 10 entries. Ages, not a count."),
|
|
1768
1780
|
rooms: onum("Rooms required, >= 1 (default 1)."),
|
|
1769
|
-
currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking
|
|
1781
|
+
currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Booking picks a currency itself and identical requests can disagree.")
|
|
1770
1782
|
}),
|
|
1771
1783
|
(i) => client.booking.hotel(i)
|
|
1772
1784
|
),
|
|
@@ -1912,7 +1924,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1912
1924
|
guest_favorite: obool("Guest Favorite listings only."),
|
|
1913
1925
|
free_cancellation: obool("Listings with free cancellation only."),
|
|
1914
1926
|
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
|
|
1927
|
+
currency: ostr("ISO 4217 currency for prices, 3 letters (default 'USD'). Without it Airbnb picks a currency itself and identical requests can disagree."),
|
|
1916
1928
|
page: onum("Results page, 1-based. 18 listings per page. Cannot be combined with cursor."),
|
|
1917
1929
|
cursor: ostr("next_cursor from a previous response (1-500 characters); wins over page, so sending both is rejected.")
|
|
1918
1930
|
}),
|
|
@@ -1975,7 +1987,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1975
1987
|
"Scavio Glassdoor Reviews",
|
|
1976
1988
|
"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
1989
|
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
|
|
1990
|
+
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
1991
|
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
1992
|
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
1993
|
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 +2000,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
1988
2000
|
"Scavio Glassdoor Salaries",
|
|
1989
2001
|
"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
2002
|
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
|
|
2003
|
+
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
2004
|
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
2005
|
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
2006
|
page: onum("Results page, 1-based. Ten job titles per page; page_count on the response is how many pages exist.")
|
|
@@ -2005,7 +2017,7 @@ function buildScavioToolkit(options = {}) {
|
|
|
2005
2017
|
"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
2018
|
import_zod.z.object({
|
|
2007
2019
|
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
|
|
2020
|
+
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
2021
|
page: onum("Results page, 1-based. Yelp fixes the page size at 10."),
|
|
2010
2022
|
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
2023
|
price: oarrnum("Price bands to include, 1 ($) to 4 ($$$$); 1-4 values, combined freely - [1, 2] means $ or $$. Accepted values: 1, 2, 3, 4."),
|