scavio 0.30.0 → 0.31.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 +52 -3
- package/dist/index.cjs +274 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +414 -5
- package/dist/index.d.ts +414 -5
- package/dist/index.js +270 -5
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Scavio
|
|
2
2
|
|
|
3
3
|
TypeScript SDK for the [Scavio API](https://scavio.dev?utm_source=npm-scavio-js&utm_medium=package&utm_campaign=readme) — real-time structured web
|
|
4
|
-
data across
|
|
4
|
+
data across 42 platforms on one API key, plus `extract()` to read
|
|
5
5
|
any URL as clean Markdown, and `extract.map()` / `extract.crawl()` /
|
|
6
6
|
`extract.batch()` to map, crawl and batch-extract whole websites.
|
|
7
7
|
|
|
@@ -9,7 +9,7 @@ Structured JSON in, structured JSON out. No per-site parsers to maintain.
|
|
|
9
9
|
|
|
10
10
|
- **Search and SERP** — Google (organic, news, maps, shopping, flights, hotels, trends, AI Mode)
|
|
11
11
|
- **AI assistants** — ChatGPT and Gemini answers with the sources they cite and the products they recommend
|
|
12
|
-
- **E-commerce** — Amazon, Walmart, Costco, Mercado Libre, eBay, Target, Home Depot, TikTok Shop
|
|
12
|
+
- **E-commerce** — Amazon, Walmart, Costco, Lowe's, Sam's Club, Canadian Tire, Dollar General, Mercado Libre, eBay, Target, Home Depot, TikTok Shop
|
|
13
13
|
- **Real estate and travel** — Zillow, Redfin, Realtor.com, Rightmove, Booking, Airbnb, Tripadvisor
|
|
14
14
|
- **Reviews and local** — Trustpilot, Yelp, G2, Capterra, Glassdoor, App Store, Google Play
|
|
15
15
|
- **Jobs and companies** — Indeed, Glassdoor, SEC EDGAR, Companies House
|
|
@@ -504,6 +504,55 @@ warehouses on us and 2 per warehouse on ca). The clearance price codes are the
|
|
|
504
504
|
member-community decode of Costco shelf prices; Costco does not publish them,
|
|
505
505
|
and only items Costco lists online are covered.
|
|
506
506
|
|
|
507
|
+
### Lowe's, Sam's Club, Canadian Tire and Dollar General
|
|
508
|
+
|
|
509
|
+
Four store-level retailers, new in 0.31.0. Each call answers for ONE store you
|
|
510
|
+
choose: get its number from the locator (`lowes.stores`, `samsClub.clubs`,
|
|
511
|
+
`canadianTire.stores`, `dollarGeneral.stores`) and pass it on every call.
|
|
512
|
+
|
|
513
|
+
```typescript
|
|
514
|
+
// Lowe's: store_id AND that store's own ZIP are required on search/product.
|
|
515
|
+
const lowesStores = await client.lowes.stores({ zip: "28117", limit: 1 });
|
|
516
|
+
const store = (lowesStores.data as any).stores[0];
|
|
517
|
+
const sid = store.store_id; // "0595"
|
|
518
|
+
const zip = store.address.postal_code; // "28117"
|
|
519
|
+
await client.lowes.search({ query: "cordless drill", store_id: sid, zip });
|
|
520
|
+
await client.lowes.search({ query: "cordless drill", store_id: sid, zip, on_sale: true }); // that store's deals
|
|
521
|
+
await client.lowes.product({ item_id: "5016412045", store_id: sid, zip }); // stock, aisle_locations, nearby stores
|
|
522
|
+
await client.lowes.reviews({ item_id: "5016412045", sort: "most_helpful" });
|
|
523
|
+
|
|
524
|
+
// Sam's Club: search, savings and category answer for a club picked by
|
|
525
|
+
// location (echoed in data.club). product({ club_id }) targets one club.
|
|
526
|
+
await client.samsClub.clubs({ zip: "75201", limit: 5 });
|
|
527
|
+
await client.samsClub.search({ query: "paper towels", sort: "price_low" });
|
|
528
|
+
await client.samsClub.product({ item_id: "15325822107", club_id: "6372" }); // club_price, in_stock_at_club
|
|
529
|
+
await client.samsClub.savings({ sort: "top_selling" }); // Instant Savings
|
|
530
|
+
await client.samsClub.category({ category_id: "1150109" }); // clearance
|
|
531
|
+
await client.samsClub.reviews({ item_id: "15325822107", sort: "lowest" });
|
|
532
|
+
|
|
533
|
+
// Canadian Tire: prices in CAD, per store and province.
|
|
534
|
+
await client.canadianTire.stores({ postal_code: "M5V 2T6", sku: "0438858" }); // + quantity and aisle per store
|
|
535
|
+
await client.canadianTire.search({ query: "dewalt drill", store_id: "600" });
|
|
536
|
+
await client.canadianTire.product({ product_code: "0547273P", store_id: "600" });
|
|
537
|
+
await client.canadianTire.availability({ store_id: "600", skus: ["0438858", "0547273"] }); // up to 50
|
|
538
|
+
await client.canadianTire.clearance({ store_id: "600" }); // in-stock only by default
|
|
539
|
+
await client.canadianTire.deals({ store_id: "600", type: "sale" }); // or instant_rebate, special_buy, loyalty
|
|
540
|
+
|
|
541
|
+
// Dollar General: one stores() call with a upc gives that product's unit
|
|
542
|
+
// count at up to 25 nearby stores.
|
|
543
|
+
await client.dollarGeneral.stores({ zip: "75203", upc: "030772156629" });
|
|
544
|
+
await client.dollarGeneral.search({ query: "paper towels", store_id: "12629", in_stock_only: true });
|
|
545
|
+
await client.dollarGeneral.product({ upc: "030772156629", store_id: "12629" });
|
|
546
|
+
await client.dollarGeneral.deals({ store_id: "12629", type: "clearance" }); // or on_sale
|
|
547
|
+
await client.dollarGeneral.coupons();
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
Lowe's `search`, `product` and `stores` cost 2 credits and `reviews` 1; every
|
|
551
|
+
Sam's Club, Canadian Tire and Dollar General call costs 1. Sam's Club caps
|
|
552
|
+
`available_quantity` at 8 (8 means 8 or more). Dollar General clearance items
|
|
553
|
+
carry the current price only, with no was-price. Canadian Tire and Dollar
|
|
554
|
+
General return a rating and review count but no review text.
|
|
555
|
+
|
|
507
556
|
### [Mercado Libre](https://scavio.dev/docs/mercadolibre-search?utm_source=npm-scavio-js&utm_medium=package&utm_campaign=readme)
|
|
508
557
|
|
|
509
558
|
Five endpoints, new in 0.21.0: `reviews` costs 1 credit, the other four 2. The
|
|
@@ -1215,7 +1264,7 @@ await client.glassdoor.reviews({ url: company.reviews_url as string });
|
|
|
1215
1264
|
await client.glassdoor.salaries({ url: company.salaries_url as string });
|
|
1216
1265
|
```
|
|
1217
1266
|
|
|
1218
|
-
|
|
1267
|
+
2 credits per call. Glassdoor's login wall caps `reviews` at **three reviews per
|
|
1219
1268
|
response** — there is deliberately no `page` param; move the window with
|
|
1220
1269
|
`category` and `employment_status` and read `filtered_review_count` to see how
|
|
1221
1270
|
many match. Addressing `reviews` or `salaries` by `employer_id` needs an
|
package/dist/index.cjs
CHANGED
|
@@ -36,11 +36,13 @@ __export(index_exports, {
|
|
|
36
36
|
AppStoreNamespace: () => AppStoreNamespace,
|
|
37
37
|
BadRequestError: () => BadRequestError,
|
|
38
38
|
BookingNamespace: () => BookingNamespace,
|
|
39
|
+
CanadianTireNamespace: () => CanadianTireNamespace,
|
|
39
40
|
CapterraNamespace: () => CapterraNamespace,
|
|
40
41
|
ChatgptNamespace: () => ChatgptNamespace,
|
|
41
42
|
CompaniesHouseNamespace: () => CompaniesHouseNamespace,
|
|
42
43
|
CostcoNamespace: () => CostcoNamespace,
|
|
43
44
|
DEFAULT_MAX_REQUESTS_PER_SECOND: () => DEFAULT_MAX_REQUESTS_PER_SECOND,
|
|
45
|
+
DollarGeneralNamespace: () => DollarGeneralNamespace,
|
|
44
46
|
EbayNamespace: () => EbayNamespace,
|
|
45
47
|
ExtractNamespace: () => ExtractNamespace,
|
|
46
48
|
G2Namespace: () => G2Namespace,
|
|
@@ -58,6 +60,7 @@ __export(index_exports, {
|
|
|
58
60
|
KrogerNamespace: () => KrogerNamespace,
|
|
59
61
|
KuaishouNamespace: () => KuaishouNamespace,
|
|
60
62
|
LinkedInNamespace: () => LinkedInNamespace,
|
|
63
|
+
LowesNamespace: () => LowesNamespace,
|
|
61
64
|
MAX_REQUESTS_PER_SECOND: () => MAX_REQUESTS_PER_SECOND,
|
|
62
65
|
MercadoLibreNamespace: () => MercadoLibreNamespace,
|
|
63
66
|
MetaAdsNamespace: () => MetaAdsNamespace,
|
|
@@ -69,6 +72,7 @@ __export(index_exports, {
|
|
|
69
72
|
RedfinNamespace: () => RedfinNamespace,
|
|
70
73
|
RightmoveNamespace: () => RightmoveNamespace,
|
|
71
74
|
SECNamespace: () => SECNamespace,
|
|
75
|
+
SamsClubNamespace: () => SamsClubNamespace,
|
|
72
76
|
Scavio: () => Scavio,
|
|
73
77
|
ScavioAPIError: () => ScavioAPIError,
|
|
74
78
|
ScavioConnectionError: () => ScavioConnectionError,
|
|
@@ -237,7 +241,7 @@ function parseRetryAfter(header) {
|
|
|
237
241
|
var BASE_URL = "https://api.scavio.dev";
|
|
238
242
|
var DEFAULT_TIMEOUT = 3e4;
|
|
239
243
|
var DEFAULT_MAX_RETRIES = 2;
|
|
240
|
-
var SDK_VERSION = true ? "0.
|
|
244
|
+
var SDK_VERSION = true ? "0.31.0" : "0.0.0";
|
|
241
245
|
var USER_AGENT = `scavio-js/${SDK_VERSION}`;
|
|
242
246
|
function isServerRuntime() {
|
|
243
247
|
const g = globalThis;
|
|
@@ -2037,7 +2041,7 @@ var GlassdoorNamespace = class {
|
|
|
2037
2041
|
* only inside Glassdoor's /Overview/ URLs, so this lookup is the entry
|
|
2038
2042
|
* point.
|
|
2039
2043
|
*
|
|
2040
|
-
* Costs
|
|
2044
|
+
* Costs 2 credits. Single response, no pagination.
|
|
2041
2045
|
*/
|
|
2042
2046
|
async companies(options) {
|
|
2043
2047
|
return this.client._post("/api/v1/glassdoor/companies", options);
|
|
@@ -2052,7 +2056,7 @@ var GlassdoorNamespace = class {
|
|
|
2052
2056
|
* reviews() and salaries() to halve the lookups. `employer_id` or
|
|
2053
2057
|
* `url` is required - `company` is cosmetic and does not satisfy it.
|
|
2054
2058
|
*
|
|
2055
|
-
* Costs
|
|
2059
|
+
* Costs 2 credits. Single response, no pagination. Typically a few seconds.
|
|
2056
2060
|
*/
|
|
2057
2061
|
async company(options) {
|
|
2058
2062
|
return this.client._post("/api/v1/glassdoor/company", options);
|
|
@@ -2069,7 +2073,7 @@ var GlassdoorNamespace = class {
|
|
|
2069
2073
|
* filtered_review_count to see how many match; the aggregate statistics are
|
|
2070
2074
|
* the full-population signal here, not the bodies.
|
|
2071
2075
|
*
|
|
2072
|
-
* `employer_id` or `url` is required. Costs
|
|
2076
|
+
* `employer_id` or `url` is required. Costs 2 credits. Typically a few seconds.
|
|
2073
2077
|
*/
|
|
2074
2078
|
async reviews(options) {
|
|
2075
2079
|
return this.client._post("/api/v1/glassdoor/reviews", options);
|
|
@@ -2083,7 +2087,7 @@ var GlassdoorNamespace = class {
|
|
|
2083
2087
|
* salaries. Paged with `page` at 10 job titles per page; `page_count` on the
|
|
2084
2088
|
* response is how many pages exist.
|
|
2085
2089
|
*
|
|
2086
|
-
* `employer_id` or `url` is required. Costs
|
|
2090
|
+
* `employer_id` or `url` is required. Costs 2 credits. Typically a few seconds.
|
|
2087
2091
|
*/
|
|
2088
2092
|
async salaries(options) {
|
|
2089
2093
|
return this.client._post("/api/v1/glassdoor/salaries", options);
|
|
@@ -2891,6 +2895,259 @@ var SpecsNamespace = class {
|
|
|
2891
2895
|
}
|
|
2892
2896
|
};
|
|
2893
2897
|
|
|
2898
|
+
// src/namespaces/lowes.ts
|
|
2899
|
+
var LowesNamespace = class {
|
|
2900
|
+
constructor(client) {
|
|
2901
|
+
this.client = client;
|
|
2902
|
+
}
|
|
2903
|
+
client;
|
|
2904
|
+
/**
|
|
2905
|
+
* Search Lowe's by keyword or category at one store: the store's price,
|
|
2906
|
+
* was-price and savings with the sale end date, brand, model number, rating,
|
|
2907
|
+
* review count, and stock for pickup, truck delivery, parcel shipping and
|
|
2908
|
+
* same-day delivery. Pass query or category_id; on_sale returns that
|
|
2909
|
+
* store's deals.
|
|
2910
|
+
*
|
|
2911
|
+
* Costs 2 credits.
|
|
2912
|
+
*/
|
|
2913
|
+
async search(options) {
|
|
2914
|
+
return this.client._post("/api/v1/lowes/search", options);
|
|
2915
|
+
}
|
|
2916
|
+
/**
|
|
2917
|
+
* One Lowe's item at one store: price, was-price and savings, on-hand stock
|
|
2918
|
+
* with lead time per fulfillment method, stock at nearby stores, aisle and
|
|
2919
|
+
* bay, grouped specifications, UPC, dimensions, weight, rating, images, and
|
|
2920
|
+
* the store's hours.
|
|
2921
|
+
*
|
|
2922
|
+
* Costs 2 credits.
|
|
2923
|
+
*/
|
|
2924
|
+
async product(options) {
|
|
2925
|
+
return this.client._post("/api/v1/lowes/product", options);
|
|
2926
|
+
}
|
|
2927
|
+
/**
|
|
2928
|
+
* Lowe's stores near a ZIP code, nearest first: store_id, name, address,
|
|
2929
|
+
* phone, coordinates, distance, time zone, opening hours and features.
|
|
2930
|
+
*
|
|
2931
|
+
* Costs 2 credits.
|
|
2932
|
+
*/
|
|
2933
|
+
async stores(options) {
|
|
2934
|
+
return this.client._post("/api/v1/lowes/stores", options);
|
|
2935
|
+
}
|
|
2936
|
+
/**
|
|
2937
|
+
* One page of an item's customer reviews (10 per page): rating, title, text,
|
|
2938
|
+
* date, reviewer, recommended, helpful votes, verified and incentivized
|
|
2939
|
+
* flags, photos and brand replies, plus the average rating and count per star.
|
|
2940
|
+
*
|
|
2941
|
+
* Costs 1 credit.
|
|
2942
|
+
*/
|
|
2943
|
+
async reviews(options) {
|
|
2944
|
+
return this.client._post("/api/v1/lowes/reviews", options);
|
|
2945
|
+
}
|
|
2946
|
+
};
|
|
2947
|
+
|
|
2948
|
+
// src/namespaces/sams-club.ts
|
|
2949
|
+
var SamsClubNamespace = class {
|
|
2950
|
+
constructor(client) {
|
|
2951
|
+
this.client = client;
|
|
2952
|
+
}
|
|
2953
|
+
client;
|
|
2954
|
+
/**
|
|
2955
|
+
* Search Sam's Club: item_id, price, was_price, savings_amount, unit price,
|
|
2956
|
+
* Instant Savings (amount, end date, purchase limit), rating, review count,
|
|
2957
|
+
* stock, pickup/delivery/shipping availability and aisle. The club is picked
|
|
2958
|
+
* by location and returned in data.club.
|
|
2959
|
+
*
|
|
2960
|
+
* Costs 1 credit.
|
|
2961
|
+
*/
|
|
2962
|
+
async search(options) {
|
|
2963
|
+
return this.client._post("/api/v1/samsclub/search", options);
|
|
2964
|
+
}
|
|
2965
|
+
/**
|
|
2966
|
+
* One Sam's Club item: online price and the club shelf price (club_price)
|
|
2967
|
+
* with was price, savings and unit price, Instant Savings, rating histogram,
|
|
2968
|
+
* UPC, model, specifications, and per-method fulfillment with stock and
|
|
2969
|
+
* aisle. Pass club_id to price and stock a specific club.
|
|
2970
|
+
*
|
|
2971
|
+
* Costs 1 credit.
|
|
2972
|
+
*/
|
|
2973
|
+
async product(options) {
|
|
2974
|
+
return this.client._post("/api/v1/samsclub/product", options);
|
|
2975
|
+
}
|
|
2976
|
+
/**
|
|
2977
|
+
* Sam's Club clubs near a US ZIP, nearest first: club_id, name, address,
|
|
2978
|
+
* coordinates, distance in miles, phone, opening hours, services and whether
|
|
2979
|
+
* the club is temporarily closed.
|
|
2980
|
+
*
|
|
2981
|
+
* Costs 1 credit.
|
|
2982
|
+
*/
|
|
2983
|
+
async clubs(options) {
|
|
2984
|
+
return this.client._post("/api/v1/samsclub/clubs", options);
|
|
2985
|
+
}
|
|
2986
|
+
/**
|
|
2987
|
+
* Every item on Sam's Club Instant Savings, paged: price, was price and
|
|
2988
|
+
* savings amount, plus each offer's amount, end date, purchase limit and
|
|
2989
|
+
* channels.
|
|
2990
|
+
*
|
|
2991
|
+
* Costs 1 credit.
|
|
2992
|
+
*/
|
|
2993
|
+
async savings(options = {}) {
|
|
2994
|
+
return this.client._post("/api/v1/samsclub/savings", options);
|
|
2995
|
+
}
|
|
2996
|
+
/**
|
|
2997
|
+
* Products in a Sam's Club category, paged, with the same fields as
|
|
2998
|
+
* search(). Clearance is category "1150109".
|
|
2999
|
+
*
|
|
3000
|
+
* Costs 1 credit.
|
|
3001
|
+
*/
|
|
3002
|
+
async category(options) {
|
|
3003
|
+
return this.client._post("/api/v1/samsclub/category", options);
|
|
3004
|
+
}
|
|
3005
|
+
/**
|
|
3006
|
+
* Customer reviews for a Sam's Club item, 10 per page: rating, title, text,
|
|
3007
|
+
* author, date, verified purchase and helpful votes, plus the average rating,
|
|
3008
|
+
* total count and 1-5 star breakdown.
|
|
3009
|
+
*
|
|
3010
|
+
* Costs 1 credit.
|
|
3011
|
+
*/
|
|
3012
|
+
async reviews(options) {
|
|
3013
|
+
return this.client._post("/api/v1/samsclub/reviews", options);
|
|
3014
|
+
}
|
|
3015
|
+
};
|
|
3016
|
+
|
|
3017
|
+
// src/namespaces/canadian-tire.ts
|
|
3018
|
+
var CanadianTireNamespace = class {
|
|
3019
|
+
constructor(client) {
|
|
3020
|
+
this.client = client;
|
|
3021
|
+
}
|
|
3022
|
+
client;
|
|
3023
|
+
/**
|
|
3024
|
+
* Search Canadian Tire by keyword or category at one store: the store's
|
|
3025
|
+
* price and regular price (CAD), price range for multi-variant items,
|
|
3026
|
+
* savings, badges (clearance, sale, rebate), rating, review count, brand,
|
|
3027
|
+
* part number, SKU, and stock at the store and online.
|
|
3028
|
+
*
|
|
3029
|
+
* Costs 1 credit.
|
|
3030
|
+
*/
|
|
3031
|
+
async search(options) {
|
|
3032
|
+
return this.client._post("/api/v1/canadiantire/search", options);
|
|
3033
|
+
}
|
|
3034
|
+
/**
|
|
3035
|
+
* One product by code at one store: breadcrumb, images, rating, review
|
|
3036
|
+
* count, descriptions, features, specifications, price and regular price,
|
|
3037
|
+
* warranty, manuals, variants with their SKUs, and the store's price, stock,
|
|
3038
|
+
* and pickup and ship-to-home dates.
|
|
3039
|
+
*
|
|
3040
|
+
* Costs 1 credit.
|
|
3041
|
+
*/
|
|
3042
|
+
async product(options) {
|
|
3043
|
+
return this.client._post("/api/v1/canadiantire/product", options);
|
|
3044
|
+
}
|
|
3045
|
+
/**
|
|
3046
|
+
* Canadian Tire stores near a postal code or coordinates, nearest first:
|
|
3047
|
+
* store_id, name, address, phone, coordinates, distance, weekly hours and
|
|
3048
|
+
* services. Pass sku to get each store's stock quantity and aisle for it.
|
|
3049
|
+
*
|
|
3050
|
+
* Costs 1 credit.
|
|
3051
|
+
*/
|
|
3052
|
+
async stores(options) {
|
|
3053
|
+
return this.client._post("/api/v1/canadiantire/stores", options);
|
|
3054
|
+
}
|
|
3055
|
+
/**
|
|
3056
|
+
* Up to 50 SKUs at one store in one call: the store's price and regular
|
|
3057
|
+
* price, clearance and sale flags, price valid-until date, stock quantity,
|
|
3058
|
+
* aisle, online stock, and pickup and delivery dates. Unknown SKUs are
|
|
3059
|
+
* listed in not_found.
|
|
3060
|
+
*
|
|
3061
|
+
* Costs 1 credit.
|
|
3062
|
+
*/
|
|
3063
|
+
async availability(options) {
|
|
3064
|
+
return this.client._post("/api/v1/canadiantire/availability", options);
|
|
3065
|
+
}
|
|
3066
|
+
/**
|
|
3067
|
+
* Every clearance item at one store, 100 per page, with clearance price,
|
|
3068
|
+
* regular price, stock at the store and the same fields as search().
|
|
3069
|
+
* In-stock items only by default.
|
|
3070
|
+
*
|
|
3071
|
+
* Costs 1 credit.
|
|
3072
|
+
*/
|
|
3073
|
+
async clearance(options) {
|
|
3074
|
+
return this.client._post("/api/v1/canadiantire/clearance", options);
|
|
3075
|
+
}
|
|
3076
|
+
/**
|
|
3077
|
+
* Items on a deal at one store, 100 per page: sale prices, instant rebates,
|
|
3078
|
+
* special buys or Triangle Rewards loyalty offers, with the same fields as
|
|
3079
|
+
* search().
|
|
3080
|
+
*
|
|
3081
|
+
* Costs 1 credit.
|
|
3082
|
+
*/
|
|
3083
|
+
async deals(options) {
|
|
3084
|
+
return this.client._post("/api/v1/canadiantire/deals", options);
|
|
3085
|
+
}
|
|
3086
|
+
};
|
|
3087
|
+
|
|
3088
|
+
// src/namespaces/dollar-general.ts
|
|
3089
|
+
var DollarGeneralNamespace = class {
|
|
3090
|
+
constructor(client) {
|
|
3091
|
+
this.client = client;
|
|
3092
|
+
}
|
|
3093
|
+
client;
|
|
3094
|
+
/**
|
|
3095
|
+
* Search Dollar General at one store: that store's price and original price,
|
|
3096
|
+
* available_quantity (units on hand at that store), inventory_status,
|
|
3097
|
+
* rating, review count, categories, digital coupons and promotions, UPC and
|
|
3098
|
+
* product URL.
|
|
3099
|
+
*
|
|
3100
|
+
* Costs 1 credit.
|
|
3101
|
+
*/
|
|
3102
|
+
async search(options) {
|
|
3103
|
+
return this.client._post("/api/v1/dollargeneral/search", options);
|
|
3104
|
+
}
|
|
3105
|
+
/**
|
|
3106
|
+
* One product by UPC at one store: price, original price,
|
|
3107
|
+
* available_quantity, stock_status, nearby_stores_with_stock, rating, review
|
|
3108
|
+
* count, SKU, brand, description, highlights, images, categories, digital
|
|
3109
|
+
* coupons and promotions. An unknown UPC or store number is a 404.
|
|
3110
|
+
*
|
|
3111
|
+
* Costs 1 credit.
|
|
3112
|
+
*/
|
|
3113
|
+
async product(options) {
|
|
3114
|
+
return this.client._post("/api/v1/dollargeneral/product", options);
|
|
3115
|
+
}
|
|
3116
|
+
/**
|
|
3117
|
+
* Dollar General stores near a US ZIP code or coordinates, nearest first (up
|
|
3118
|
+
* to 25): store_id, address, phone, coordinates, distance in miles, opening
|
|
3119
|
+
* hours and services. Pass upc and each store also carries its unit count of
|
|
3120
|
+
* that product.
|
|
3121
|
+
*
|
|
3122
|
+
* Costs 1 credit.
|
|
3123
|
+
*/
|
|
3124
|
+
async stores(options) {
|
|
3125
|
+
return this.client._post("/api/v1/dollargeneral/stores", options);
|
|
3126
|
+
}
|
|
3127
|
+
/**
|
|
3128
|
+
* Products on sale or on clearance, priced and stocked at one store, 24 per
|
|
3129
|
+
* page. available_quantity > 0 means in stock at that store; the listing
|
|
3130
|
+
* covers the whole chain. Clearance items carry the current price only (no
|
|
3131
|
+
* was-price).
|
|
3132
|
+
*
|
|
3133
|
+
* Costs 1 credit.
|
|
3134
|
+
*/
|
|
3135
|
+
async deals(options) {
|
|
3136
|
+
return this.client._post("/api/v1/dollargeneral/deals", options);
|
|
3137
|
+
}
|
|
3138
|
+
/**
|
|
3139
|
+
* Dollar General's current digital coupons, 30 per page: offer id and code,
|
|
3140
|
+
* summary, description, brand, company, value, offer type, category, minimum
|
|
3141
|
+
* quantity, start and expiration dates, and whether it is a manufacturer
|
|
3142
|
+
* coupon.
|
|
3143
|
+
*
|
|
3144
|
+
* Costs 1 credit.
|
|
3145
|
+
*/
|
|
3146
|
+
async coupons(options = {}) {
|
|
3147
|
+
return this.client._post("/api/v1/dollargeneral/coupons", options);
|
|
3148
|
+
}
|
|
3149
|
+
};
|
|
3150
|
+
|
|
2894
3151
|
// src/namespaces/trustpilot.ts
|
|
2895
3152
|
var TrustpilotNamespace = class {
|
|
2896
3153
|
constructor(client) {
|
|
@@ -3406,6 +3663,10 @@ var Scavio = class extends ScavioCore {
|
|
|
3406
3663
|
kroger;
|
|
3407
3664
|
decathlon;
|
|
3408
3665
|
specs;
|
|
3666
|
+
lowes;
|
|
3667
|
+
samsClub;
|
|
3668
|
+
canadianTire;
|
|
3669
|
+
dollarGeneral;
|
|
3409
3670
|
trustpilot;
|
|
3410
3671
|
chatgpt;
|
|
3411
3672
|
gemini;
|
|
@@ -3469,6 +3730,10 @@ var Scavio = class extends ScavioCore {
|
|
|
3469
3730
|
this.kroger = new KrogerNamespace(this);
|
|
3470
3731
|
this.decathlon = new DecathlonNamespace(this);
|
|
3471
3732
|
this.specs = new SpecsNamespace(this);
|
|
3733
|
+
this.lowes = new LowesNamespace(this);
|
|
3734
|
+
this.samsClub = new SamsClubNamespace(this);
|
|
3735
|
+
this.canadianTire = new CanadianTireNamespace(this);
|
|
3736
|
+
this.dollarGeneral = new DollarGeneralNamespace(this);
|
|
3472
3737
|
this.trustpilot = new TrustpilotNamespace(this);
|
|
3473
3738
|
this.chatgpt = new ChatgptNamespace(this);
|
|
3474
3739
|
this.gemini = new GeminiNamespace(this);
|
|
@@ -3584,11 +3849,13 @@ async function getSubtle() {
|
|
|
3584
3849
|
AppStoreNamespace,
|
|
3585
3850
|
BadRequestError,
|
|
3586
3851
|
BookingNamespace,
|
|
3852
|
+
CanadianTireNamespace,
|
|
3587
3853
|
CapterraNamespace,
|
|
3588
3854
|
ChatgptNamespace,
|
|
3589
3855
|
CompaniesHouseNamespace,
|
|
3590
3856
|
CostcoNamespace,
|
|
3591
3857
|
DEFAULT_MAX_REQUESTS_PER_SECOND,
|
|
3858
|
+
DollarGeneralNamespace,
|
|
3592
3859
|
EbayNamespace,
|
|
3593
3860
|
ExtractNamespace,
|
|
3594
3861
|
G2Namespace,
|
|
@@ -3606,6 +3873,7 @@ async function getSubtle() {
|
|
|
3606
3873
|
KrogerNamespace,
|
|
3607
3874
|
KuaishouNamespace,
|
|
3608
3875
|
LinkedInNamespace,
|
|
3876
|
+
LowesNamespace,
|
|
3609
3877
|
MAX_REQUESTS_PER_SECOND,
|
|
3610
3878
|
MercadoLibreNamespace,
|
|
3611
3879
|
MetaAdsNamespace,
|
|
@@ -3617,6 +3885,7 @@ async function getSubtle() {
|
|
|
3617
3885
|
RedfinNamespace,
|
|
3618
3886
|
RightmoveNamespace,
|
|
3619
3887
|
SECNamespace,
|
|
3888
|
+
SamsClubNamespace,
|
|
3620
3889
|
Scavio,
|
|
3621
3890
|
ScavioAPIError,
|
|
3622
3891
|
ScavioConnectionError,
|