serpkite 0.4.0 → 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 +10 -4
- package/dist/index.cjs +12 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +319 -14
- package/dist/index.d.ts +319 -14
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -156,7 +156,24 @@ interface paths {
|
|
|
156
156
|
};
|
|
157
157
|
get?: never;
|
|
158
158
|
put?: never;
|
|
159
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Google Maps search (places with coordinates). Accepts `ll` ("@lat,lng,zoomz") to search around a point
|
|
161
|
+
* @description Google Maps search results: name, full address, coordinates, categories, rating, website,
|
|
162
|
+
* phone, opening hours and the place's identifiers (`place_id`, `cid`, `fid`) for
|
|
163
|
+
* `/v1/place` and `/v1/reviews`. Categories, addresses and hours are in `language`.
|
|
164
|
+
*
|
|
165
|
+
* **Where:** `ll` ("@lat,lng,zoomz") searches the map at that point and zoom; `location`
|
|
166
|
+
* (or `uule`) searches the named place. Without either, Google picks the area from the
|
|
167
|
+
* query (an exact name or address) or from where the request comes from, so local queries
|
|
168
|
+
* such as "coffee" need `location` or `ll`.
|
|
169
|
+
*
|
|
170
|
+
* **Yandex Maps:** with `engine=yandex` (where the deployment enables it) the results come
|
|
171
|
+
* from Yandex Maps, which covers Russia and the CIS in depth. They have the same fields,
|
|
172
|
+
* with the Yandex organisation id in `oid` (for `/v1/place`) and `yandex_maps_url` instead
|
|
173
|
+
* of Google's identifiers; categories, addresses and hours follow `language` (`ru` for
|
|
174
|
+
* Russian). Pass `ll` or a `location` (a city, appended to the query); `uule` and `tbs`
|
|
175
|
+
* are refused.
|
|
176
|
+
*/
|
|
160
177
|
post: operations["maps"];
|
|
161
178
|
delete?: never;
|
|
162
179
|
options?: never;
|
|
@@ -173,7 +190,10 @@ interface paths {
|
|
|
173
190
|
};
|
|
174
191
|
get?: never;
|
|
175
192
|
put?: never;
|
|
176
|
-
/**
|
|
193
|
+
/**
|
|
194
|
+
* Google local results (places)
|
|
195
|
+
* @description Same results as `/v1/maps` (Google Maps search), with the same fields and location rules.
|
|
196
|
+
*/
|
|
177
197
|
post: operations["places"];
|
|
178
198
|
delete?: never;
|
|
179
199
|
options?: never;
|
|
@@ -181,6 +201,34 @@ interface paths {
|
|
|
181
201
|
patch?: never;
|
|
182
202
|
trace?: never;
|
|
183
203
|
};
|
|
204
|
+
"/v1/place": {
|
|
205
|
+
parameters: {
|
|
206
|
+
query?: never;
|
|
207
|
+
header?: never;
|
|
208
|
+
path?: never;
|
|
209
|
+
cookie?: never;
|
|
210
|
+
};
|
|
211
|
+
get?: never;
|
|
212
|
+
put?: never;
|
|
213
|
+
/**
|
|
214
|
+
* Details of one place (by `place_id`, `cid`, `fid` or Yandex `oid`); 1 credit
|
|
215
|
+
* @description The full Google Maps listing of one place: address, country, coordinates, time zone,
|
|
216
|
+
* categories, opening hours (as text and as structured `weekly_hours`), website, phone,
|
|
217
|
+
* rating, description and photos, in `language`. `results` holds the place, or is empty
|
|
218
|
+
* (not charged) when no place has that identifier.
|
|
219
|
+
*
|
|
220
|
+
* With `oid` (a Yandex Maps organisation id, e.g. from an `engine=yandex` maps result or
|
|
221
|
+
* `yandex.ru/maps/org/<name>/<oid>/`) the listing comes from Yandex Maps, where the
|
|
222
|
+
* deployment enables it: `oid` implies `engine=yandex` and can't be combined with Google's
|
|
223
|
+
* identifiers. Closed listings (temporarily or permanently) carry no hours.
|
|
224
|
+
*/
|
|
225
|
+
post: operations["place"];
|
|
226
|
+
delete?: never;
|
|
227
|
+
options?: never;
|
|
228
|
+
head?: never;
|
|
229
|
+
patch?: never;
|
|
230
|
+
trace?: never;
|
|
231
|
+
};
|
|
184
232
|
"/v1/reviews": {
|
|
185
233
|
parameters: {
|
|
186
234
|
query?: never;
|
|
@@ -639,7 +687,15 @@ interface paths {
|
|
|
639
687
|
};
|
|
640
688
|
get?: never;
|
|
641
689
|
put?: never;
|
|
642
|
-
/**
|
|
690
|
+
/**
|
|
691
|
+
* Remote MCP server (streamable HTTP, JSON-RPC 2.0). Tools search, news, maps, place, scholar, webpage
|
|
692
|
+
* @description Authenticates with an API key (`Authorization: Bearer skt_live_…`) or an
|
|
693
|
+
* OAuth 2.1 access token (`skt_oat_…`) issued by app-api.serpkite.com for
|
|
694
|
+
* this resource (MCP authorization spec). Without a valid credential the
|
|
695
|
+
* 401 carries `WWW-Authenticate: Bearer resource_metadata="…/.well-known/oauth-protected-resource/v1/mcp", scope="mcp"`
|
|
696
|
+
* (plus `error="invalid_token"` when a credential was rejected). OAuth
|
|
697
|
+
* access tokens are only accepted here, not on the REST endpoints.
|
|
698
|
+
*/
|
|
643
699
|
post: operations["mcp"];
|
|
644
700
|
delete?: never;
|
|
645
701
|
options?: never;
|
|
@@ -647,6 +703,40 @@ interface paths {
|
|
|
647
703
|
patch?: never;
|
|
648
704
|
trace?: never;
|
|
649
705
|
};
|
|
706
|
+
"/.well-known/oauth-protected-resource/v1/mcp": {
|
|
707
|
+
parameters: {
|
|
708
|
+
query?: never;
|
|
709
|
+
header?: never;
|
|
710
|
+
path?: never;
|
|
711
|
+
cookie?: never;
|
|
712
|
+
};
|
|
713
|
+
/** OAuth protected resource metadata for the MCP server (RFC 9728) */
|
|
714
|
+
get: operations["mcpProtectedResourceMetadata"];
|
|
715
|
+
put?: never;
|
|
716
|
+
post?: never;
|
|
717
|
+
delete?: never;
|
|
718
|
+
options?: never;
|
|
719
|
+
head?: never;
|
|
720
|
+
patch?: never;
|
|
721
|
+
trace?: never;
|
|
722
|
+
};
|
|
723
|
+
"/.well-known/oauth-protected-resource": {
|
|
724
|
+
parameters: {
|
|
725
|
+
query?: never;
|
|
726
|
+
header?: never;
|
|
727
|
+
path?: never;
|
|
728
|
+
cookie?: never;
|
|
729
|
+
};
|
|
730
|
+
/** OAuth protected resource metadata (root form; same document) */
|
|
731
|
+
get: operations["protectedResourceMetadata"];
|
|
732
|
+
put?: never;
|
|
733
|
+
post?: never;
|
|
734
|
+
delete?: never;
|
|
735
|
+
options?: never;
|
|
736
|
+
head?: never;
|
|
737
|
+
patch?: never;
|
|
738
|
+
trace?: never;
|
|
739
|
+
};
|
|
650
740
|
}
|
|
651
741
|
interface components {
|
|
652
742
|
schemas: {
|
|
@@ -675,6 +765,25 @@ interface components {
|
|
|
675
765
|
request_id?: string;
|
|
676
766
|
};
|
|
677
767
|
};
|
|
768
|
+
/** @description RFC 9728 protected resource metadata */
|
|
769
|
+
ProtectedResourceMetadata: {
|
|
770
|
+
/**
|
|
771
|
+
* Format: uri
|
|
772
|
+
* @example https://api.serpkite.com/v1/mcp
|
|
773
|
+
*/
|
|
774
|
+
resource: string;
|
|
775
|
+
/**
|
|
776
|
+
* @example [
|
|
777
|
+
* "https://app-api.serpkite.com"
|
|
778
|
+
* ]
|
|
779
|
+
*/
|
|
780
|
+
authorization_servers: string[];
|
|
781
|
+
scopes_supported?: string[];
|
|
782
|
+
bearer_methods_supported?: string[];
|
|
783
|
+
resource_name?: string;
|
|
784
|
+
/** Format: uri */
|
|
785
|
+
resource_documentation?: string;
|
|
786
|
+
};
|
|
678
787
|
SearchRequest: {
|
|
679
788
|
q: string;
|
|
680
789
|
/**
|
|
@@ -691,7 +800,7 @@ interface components {
|
|
|
691
800
|
location?: string;
|
|
692
801
|
/** @description Pre-encoded Google location (overrides ll and location; percent-encoded values are decoded) */
|
|
693
802
|
uule?: string;
|
|
694
|
-
/** @description Map point "@lat,lng,14z" (maps and places only; zoom optional): the
|
|
803
|
+
/** @description Map point "@lat,lng,14z" (maps and places only; zoom optional, default 14z): the map is searched around that point at that zoom, wherever the request comes from. Overrides location */
|
|
695
804
|
ll?: string;
|
|
696
805
|
/**
|
|
697
806
|
* @description 10, or up to 100 for the depth bundle on search and news (7 credits for 100; values between round up to whole pages). Other verticals return one page of 10
|
|
@@ -779,14 +888,15 @@ interface components {
|
|
|
779
888
|
country?: string;
|
|
780
889
|
language?: string;
|
|
781
890
|
/**
|
|
891
|
+
* @description Only `most_relevant` is served: Google Maps shows other review orders only to signed-in visitors, so `newest`, `highest_rating` and `lowest_rating` return 400 (not charged).
|
|
782
892
|
* @default most_relevant
|
|
783
893
|
* @enum {string}
|
|
784
894
|
*/
|
|
785
895
|
sort?: "most_relevant" | "newest" | "highest_rating" | "lowest_rating";
|
|
786
|
-
/** @description `next_page_token` from the previous page, unchanged. Opaque and bound to the place and `sort` it was issued for (anything else is a 400). Paging reaches the first
|
|
896
|
+
/** @description `next_page_token` from the previous page, unchanged. Opaque and bound to the place and `sort` it was issued for (anything else is a 400). Paging reaches the first 10 reviews of a place, all Google Maps shows a logged-out visitor. */
|
|
787
897
|
page_token?: string;
|
|
788
898
|
/**
|
|
789
|
-
* @description Reviews per page (a page can be shorter when Google stops loading early; `next_page_token` then resumes after it
|
|
899
|
+
* @description Reviews per page; a page holds at most 10 (the first 10 reviews of a place). A page can be shorter when Google stops loading early; `next_page_token` then resumes after it
|
|
790
900
|
* @default 10
|
|
791
901
|
*/
|
|
792
902
|
num?: number;
|
|
@@ -795,6 +905,39 @@ interface components {
|
|
|
795
905
|
fields?: string;
|
|
796
906
|
max_age?: number;
|
|
797
907
|
};
|
|
908
|
+
/** @description One of place_id, cid or fid (Google; place_id wins, then fid, then cid) or oid (Yandex Maps) is required */
|
|
909
|
+
PlaceRequest: {
|
|
910
|
+
/** @description Google place id ("ChIJ…"), e.g. `place_id` of a /v1/maps result */
|
|
911
|
+
place_id?: string;
|
|
912
|
+
/** @description Decimal customer id (`cid` of a result) */
|
|
913
|
+
cid?: string;
|
|
914
|
+
/** @description Feature id "0x…:0x…" (`fid` of a result) */
|
|
915
|
+
fid?: string;
|
|
916
|
+
/**
|
|
917
|
+
* @description Yandex Maps organisation id (`oid` of an `engine=yandex` maps result). Implies `engine=yandex`; not with place_id, cid or fid
|
|
918
|
+
* @example 1045821788
|
|
919
|
+
*/
|
|
920
|
+
oid?: string;
|
|
921
|
+
/**
|
|
922
|
+
* @description Country code (ISO 3166-1 alpha-2); Google's regional view of the listing
|
|
923
|
+
* @default us
|
|
924
|
+
*/
|
|
925
|
+
country?: string;
|
|
926
|
+
/**
|
|
927
|
+
* @description Language of the address, categories, hours and description (e.g. en, ru, de)
|
|
928
|
+
* @default en
|
|
929
|
+
*/
|
|
930
|
+
language?: string;
|
|
931
|
+
/**
|
|
932
|
+
* @default json
|
|
933
|
+
* @enum {string}
|
|
934
|
+
*/
|
|
935
|
+
format?: "json" | "markdown" | "compact";
|
|
936
|
+
fields?: string;
|
|
937
|
+
/** @description Accept a cached result up to this many seconds old (50% of credits on a hit) */
|
|
938
|
+
max_age?: number;
|
|
939
|
+
engine?: components["schemas"]["EngineParam"];
|
|
940
|
+
};
|
|
798
941
|
WebpageRequest: {
|
|
799
942
|
/**
|
|
800
943
|
* Format: uri
|
|
@@ -1131,8 +1274,8 @@ interface components {
|
|
|
1131
1274
|
* @description A search provider (docs/providers). Which verticals each serves depends on the deployment.
|
|
1132
1275
|
* @enum {string}
|
|
1133
1276
|
*/
|
|
1134
|
-
Provider: "google" | "brave" | "bing" | "yahoo" | "duckduckgo" | "mojeek" | "wikipedia";
|
|
1135
|
-
/** @description Which search providers may answer. `google` (the default) is Google only; within Google, SerpKite always fails over across its own proxy pools. `auto` allows falling back to other enabled providers, in route order, when Google is blocked or times out. A single other provider (`brave`) or a list (`["google","brave"]`, or `google,brave` in a query string) restricts the request to those providers. `meta.engine` always names the provider that answered and credits follow that provider's price. A key with "Allow fallback to other search engines" on treats a request without `engine` as `auto`. `consensus` (`/v1/search` only; 400 elsewhere, and it can't be combined with other names) queries several independent search indexes in parallel (at most one Bing-backed provider, so Yahoo or DuckDuckGo never count as agreeing with Bing), merges the results by URL and ranks them by how many providers returned each one. Each result lists its `sources`; `meta.engine` is `consensus` and `meta.route` lists every provider attempt. It stops once `num` unique results are in hand or after a few seconds, and costs the sum of one page at each provider that returned results (providers that failed, came back empty or were never started are free). */
|
|
1277
|
+
Provider: "google" | "brave" | "bing" | "yahoo" | "duckduckgo" | "mojeek" | "wikipedia" | "yandex";
|
|
1278
|
+
/** @description Which search providers may answer. `google` (the default) is Google only; within Google, SerpKite always fails over across its own proxy pools. `auto` allows falling back to other enabled providers, in route order, when Google is blocked or times out. A single other provider (`brave`) or a list (`["google","brave"]`, or `google,brave` in a query string) restricts the request to those providers. `meta.engine` always names the provider that answered and credits follow that provider's price. A key with "Allow fallback to other search engines" on treats a request without `engine` as `auto`. `consensus` (`/v1/search` only; 400 elsewhere, and it can't be combined with other names) queries several independent search indexes in parallel (at most one Bing-backed provider, so Yahoo or DuckDuckGo never count as agreeing with Bing), merges the results by URL and ranks them by how many providers returned each one. Each result lists its `sources`; `meta.engine` is `consensus` and `meta.route` lists every provider attempt. It stops once `num` unique results are in hand or after a few seconds, and costs the sum of one page at each provider that returned results (providers that failed, came back empty or were never started are free). `yandex` serves `/v1/maps`, `/v1/places` and `/v1/place` from Yandex Maps where the deployment enables it (otherwise a 503 `unavailable`, not charged); with `auto` it is the last fallback there. */
|
|
1136
1279
|
EngineParam: string | components["schemas"]["Provider"][];
|
|
1137
1280
|
/** @description One provider attempt behind this answer. Proxy pools are internal and never listed. */
|
|
1138
1281
|
RouteStep: {
|
|
@@ -1195,6 +1338,7 @@ interface components {
|
|
|
1195
1338
|
place_id?: string;
|
|
1196
1339
|
cid?: string;
|
|
1197
1340
|
fid?: string;
|
|
1341
|
+
oid?: string;
|
|
1198
1342
|
sort?: string;
|
|
1199
1343
|
include_content?: number;
|
|
1200
1344
|
format?: string;
|
|
@@ -1351,13 +1495,67 @@ interface components {
|
|
|
1351
1495
|
types?: string[];
|
|
1352
1496
|
website?: string;
|
|
1353
1497
|
phone_number?: string;
|
|
1498
|
+
/** @example +44 20 7232 3010 */
|
|
1499
|
+
international_phone_number?: string;
|
|
1500
|
+
/** @description Hours as the provider displays them, keyed by English weekday (Monday … Sunday), in `language`, e.g. {"Monday": "7:30 am–6 pm", "Sunday": "Closed"}; Yandex Maps: 24-hour times ("08:00–22:00"), "Closed"/"выходной", "Open 24 hours"/"круглосуточно" */
|
|
1354
1501
|
opening_hours?: {
|
|
1355
1502
|
[key: string]: string;
|
|
1356
1503
|
};
|
|
1504
|
+
weekly_hours?: components["schemas"]["WeeklyHours"];
|
|
1505
|
+
/** @description ISO 3166-1 alpha-2 country code of the place, upper case (RU, GB) */
|
|
1506
|
+
country?: string;
|
|
1507
|
+
/** @description IANA time zone of the place (Europe/Moscow) */
|
|
1508
|
+
timezone?: string;
|
|
1509
|
+
/** @description Google's short description of the place, or the owner's, when Google shows one; Yandex Maps' summary of the place when it has one */
|
|
1510
|
+
description?: string;
|
|
1511
|
+
/** @description Photos of the place (/v1/place; up to 10). The URLs are public and can be fetched server-side without cookies */
|
|
1512
|
+
photos?: components["schemas"]["PlacePhoto"][];
|
|
1513
|
+
/** @description The place on Google Maps */
|
|
1514
|
+
google_maps_url?: string;
|
|
1357
1515
|
thumbnail_url?: string;
|
|
1358
1516
|
place_id?: string;
|
|
1359
1517
|
cid?: string;
|
|
1360
1518
|
fid?: string;
|
|
1519
|
+
/** @description Yandex Maps organisation id (engine=yandex), for /v1/place */
|
|
1520
|
+
oid?: string;
|
|
1521
|
+
/** @description The place on Yandex Maps (engine=yandex): https://yandex.ru/maps/org/<oid>/ */
|
|
1522
|
+
yandex_maps_url?: string;
|
|
1523
|
+
};
|
|
1524
|
+
/**
|
|
1525
|
+
* @description Opening hours per weekday, from the provider's listing, as local times (`timezone`) in 24-hour HH:MM.
|
|
1526
|
+
* A day that is closed is an empty list; a day open 24 hours is `[{"open": "00:00", "close": "24:00"}]`;
|
|
1527
|
+
* a day with a break has several intervals. `close` is "24:00" at midnight, and an interval that
|
|
1528
|
+
* ends after midnight has `next_day: true` (e.g. 17:30–03:00). Days Google doesn't list are absent;
|
|
1529
|
+
* Yandex Maps lists all seven or none.
|
|
1530
|
+
*/
|
|
1531
|
+
WeeklyHours: {
|
|
1532
|
+
monday?: components["schemas"]["HoursIntervals"];
|
|
1533
|
+
tuesday?: components["schemas"]["HoursIntervals"];
|
|
1534
|
+
wednesday?: components["schemas"]["HoursIntervals"];
|
|
1535
|
+
thursday?: components["schemas"]["HoursIntervals"];
|
|
1536
|
+
friday?: components["schemas"]["HoursIntervals"];
|
|
1537
|
+
saturday?: components["schemas"]["HoursIntervals"];
|
|
1538
|
+
sunday?: components["schemas"]["HoursIntervals"];
|
|
1539
|
+
};
|
|
1540
|
+
HoursIntervals: components["schemas"]["HoursInterval"][];
|
|
1541
|
+
HoursInterval: {
|
|
1542
|
+
/** @example 08:00 */
|
|
1543
|
+
open: string;
|
|
1544
|
+
/** @example 22:00 */
|
|
1545
|
+
close: string;
|
|
1546
|
+
/** @description The interval closes after midnight, on the next day */
|
|
1547
|
+
next_day?: boolean;
|
|
1548
|
+
};
|
|
1549
|
+
PlacePhoto: {
|
|
1550
|
+
/** @description Image URL (at most 1600 px on the long side) */
|
|
1551
|
+
url: string;
|
|
1552
|
+
width?: number;
|
|
1553
|
+
height?: number;
|
|
1554
|
+
/**
|
|
1555
|
+
* @description Who uploaded it, when Google says (Google shows no contributor names to logged-out visitors)
|
|
1556
|
+
* @enum {string}
|
|
1557
|
+
*/
|
|
1558
|
+
source?: "business" | "visitor";
|
|
1361
1559
|
};
|
|
1362
1560
|
PlacesResponse: {
|
|
1363
1561
|
request: components["schemas"]["RequestEcho"];
|
|
@@ -1567,13 +1765,15 @@ interface components {
|
|
|
1567
1765
|
requests: number;
|
|
1568
1766
|
/** @description Share of requests without a 5xx (0-1) */
|
|
1569
1767
|
success_rate: number;
|
|
1768
|
+
/** @description Median latency of successful (non-error) responses; 0 when none succeeded */
|
|
1570
1769
|
p50_ms: number;
|
|
1770
|
+
/** @description 95th-percentile latency of successful (non-error) responses; 0 when none succeeded */
|
|
1571
1771
|
p95_ms: number;
|
|
1572
1772
|
}[];
|
|
1573
1773
|
};
|
|
1574
1774
|
BatchCreateRequest: {
|
|
1575
1775
|
/** @enum {string} */
|
|
1576
|
-
endpoint: "search" | "images" | "videos" | "news" | "maps" | "places" | "reviews" | "shopping" | "scholar" | "patents" | "autocomplete" | "webpage";
|
|
1776
|
+
endpoint: "search" | "images" | "videos" | "news" | "maps" | "places" | "place" | "reviews" | "shopping" | "scholar" | "patents" | "autocomplete" | "webpage";
|
|
1577
1777
|
/** @description Request bodies for `endpoint` (same fields as the realtime endpoint) */
|
|
1578
1778
|
requests: {
|
|
1579
1779
|
[key: string]: unknown;
|
|
@@ -2393,6 +2593,28 @@ interface operations {
|
|
|
2393
2593
|
503: components["responses"]["Unavailable"];
|
|
2394
2594
|
};
|
|
2395
2595
|
};
|
|
2596
|
+
place: {
|
|
2597
|
+
parameters: {
|
|
2598
|
+
query?: never;
|
|
2599
|
+
header?: never;
|
|
2600
|
+
path?: never;
|
|
2601
|
+
cookie?: never;
|
|
2602
|
+
};
|
|
2603
|
+
requestBody: {
|
|
2604
|
+
content: {
|
|
2605
|
+
"application/json": components["schemas"]["PlaceRequest"];
|
|
2606
|
+
};
|
|
2607
|
+
};
|
|
2608
|
+
responses: {
|
|
2609
|
+
200: components["responses"]["PlacesOK"];
|
|
2610
|
+
400: components["responses"]["Error"];
|
|
2611
|
+
401: components["responses"]["Error"];
|
|
2612
|
+
402: components["responses"]["Error"];
|
|
2613
|
+
403: components["responses"]["Error"];
|
|
2614
|
+
429: components["responses"]["Error"];
|
|
2615
|
+
503: components["responses"]["Unavailable"];
|
|
2616
|
+
};
|
|
2617
|
+
};
|
|
2396
2618
|
reviews: {
|
|
2397
2619
|
parameters: {
|
|
2398
2620
|
query?: never;
|
|
@@ -3096,7 +3318,57 @@ interface operations {
|
|
|
3096
3318
|
};
|
|
3097
3319
|
content?: never;
|
|
3098
3320
|
};
|
|
3099
|
-
|
|
3321
|
+
/** @description Missing, invalid, expired or revoked credential */
|
|
3322
|
+
401: {
|
|
3323
|
+
headers: {
|
|
3324
|
+
/** @description RFC 9728 challenge pointing at the protected resource metadata */
|
|
3325
|
+
"WWW-Authenticate"?: string;
|
|
3326
|
+
[name: string]: unknown;
|
|
3327
|
+
};
|
|
3328
|
+
content: {
|
|
3329
|
+
"application/json": components["schemas"]["Error"];
|
|
3330
|
+
};
|
|
3331
|
+
};
|
|
3332
|
+
};
|
|
3333
|
+
};
|
|
3334
|
+
mcpProtectedResourceMetadata: {
|
|
3335
|
+
parameters: {
|
|
3336
|
+
query?: never;
|
|
3337
|
+
header?: never;
|
|
3338
|
+
path?: never;
|
|
3339
|
+
cookie?: never;
|
|
3340
|
+
};
|
|
3341
|
+
requestBody?: never;
|
|
3342
|
+
responses: {
|
|
3343
|
+
/** @description Metadata */
|
|
3344
|
+
200: {
|
|
3345
|
+
headers: {
|
|
3346
|
+
[name: string]: unknown;
|
|
3347
|
+
};
|
|
3348
|
+
content: {
|
|
3349
|
+
"application/json": components["schemas"]["ProtectedResourceMetadata"];
|
|
3350
|
+
};
|
|
3351
|
+
};
|
|
3352
|
+
};
|
|
3353
|
+
};
|
|
3354
|
+
protectedResourceMetadata: {
|
|
3355
|
+
parameters: {
|
|
3356
|
+
query?: never;
|
|
3357
|
+
header?: never;
|
|
3358
|
+
path?: never;
|
|
3359
|
+
cookie?: never;
|
|
3360
|
+
};
|
|
3361
|
+
requestBody?: never;
|
|
3362
|
+
responses: {
|
|
3363
|
+
/** @description Metadata */
|
|
3364
|
+
200: {
|
|
3365
|
+
headers: {
|
|
3366
|
+
[name: string]: unknown;
|
|
3367
|
+
};
|
|
3368
|
+
content: {
|
|
3369
|
+
"application/json": components["schemas"]["ProtectedResourceMetadata"];
|
|
3370
|
+
};
|
|
3371
|
+
};
|
|
3100
3372
|
};
|
|
3101
3373
|
};
|
|
3102
3374
|
crawlCompletedWebhook: {
|
|
@@ -3171,6 +3443,14 @@ type SearchParams = Omit<Schemas["SearchRequest"], "engine"> & {
|
|
|
3171
3443
|
engine?: Engine;
|
|
3172
3444
|
};
|
|
3173
3445
|
type ReviewsParams = Schemas["ReviewsRequest"];
|
|
3446
|
+
/**
|
|
3447
|
+
* Parameters of `place`: one of `place_id`, `cid` or `fid` (Google; place_id wins, then fid,
|
|
3448
|
+
* then cid), or `oid` (a Yandex Maps organisation id, which implies `engine: "yandex"`).
|
|
3449
|
+
*/
|
|
3450
|
+
type PlaceParams = Omit<Schemas["PlaceRequest"], "engine"> & {
|
|
3451
|
+
/** Search providers allowed to answer. Default `"google"`. See {@link Engine}. */
|
|
3452
|
+
engine?: Engine;
|
|
3453
|
+
};
|
|
3174
3454
|
type WebpageParams = Schemas["WebpageRequest"];
|
|
3175
3455
|
type RankParams = Schemas["RankRequest"];
|
|
3176
3456
|
type MapParams = Schemas["MapRequest"];
|
|
@@ -3190,6 +3470,16 @@ type ImageResult = Schemas["ImageResult"];
|
|
|
3190
3470
|
type VideoResult = Schemas["VideoResult"];
|
|
3191
3471
|
type NewsResult = Schemas["NewsResult"];
|
|
3192
3472
|
type PlaceResult = Schemas["PlaceResult"];
|
|
3473
|
+
/**
|
|
3474
|
+
* Opening hours per weekday (`monday` … `sunday`) as local 24-hour `HH:MM` intervals: a closed
|
|
3475
|
+
* day is `[]`, a day open 24 hours `[{ open: "00:00", close: "24:00" }]`. Days Google doesn't
|
|
3476
|
+
* list are absent.
|
|
3477
|
+
*/
|
|
3478
|
+
type WeeklyHours = Schemas["WeeklyHours"];
|
|
3479
|
+
/** One opening interval; `next_day` when it closes after midnight. */
|
|
3480
|
+
type HoursInterval = Schemas["HoursInterval"];
|
|
3481
|
+
/** A photo of a place (`place`; up to 10). */
|
|
3482
|
+
type PlacePhoto = Schemas["PlacePhoto"];
|
|
3193
3483
|
type ReviewResult = Schemas["ReviewResult"];
|
|
3194
3484
|
type ShoppingResult = Schemas["ShoppingResult"];
|
|
3195
3485
|
type ScholarResult = Schemas["ScholarResult"];
|
|
@@ -3210,7 +3500,7 @@ type SearchResponse = Schemas["SearchResponse"];
|
|
|
3210
3500
|
type ImagesResponse = Schemas["ImagesResponse"];
|
|
3211
3501
|
type VideosResponse = Schemas["VideosResponse"];
|
|
3212
3502
|
type NewsResponse = Schemas["NewsResponse"];
|
|
3213
|
-
/** Returned by
|
|
3503
|
+
/** Returned by `maps`, `places` and `place`. */
|
|
3214
3504
|
type PlacesResponse = Schemas["PlacesResponse"];
|
|
3215
3505
|
type MapsResponse = PlacesResponse;
|
|
3216
3506
|
type ReviewsResponse = Schemas["ReviewsResponse"];
|
|
@@ -3253,6 +3543,7 @@ type BatchRequestMap = {
|
|
|
3253
3543
|
news: SearchParams;
|
|
3254
3544
|
maps: SearchParams;
|
|
3255
3545
|
places: SearchParams;
|
|
3546
|
+
place: PlaceParams;
|
|
3256
3547
|
reviews: ReviewsParams;
|
|
3257
3548
|
shopping: SearchParams;
|
|
3258
3549
|
scholar: SearchParams;
|
|
@@ -3365,7 +3656,7 @@ type WebhookEvent = {
|
|
|
3365
3656
|
data: MonitorResultsEvent;
|
|
3366
3657
|
};
|
|
3367
3658
|
|
|
3368
|
-
declare const VERSION = "0.
|
|
3659
|
+
declare const VERSION = "0.6.0";
|
|
3369
3660
|
declare const DEFAULT_BASE_URL = "https://api.serpkite.com";
|
|
3370
3661
|
interface SerpKiteOptions {
|
|
3371
3662
|
/** API key (`skt_live_…`). Defaults to the `SERPKITE_API_KEY` environment variable. */
|
|
@@ -3486,7 +3777,10 @@ declare class SerpKite {
|
|
|
3486
3777
|
results: components["schemas"]["NewsResult"][];
|
|
3487
3778
|
meta: components["schemas"]["Meta"];
|
|
3488
3779
|
}>;
|
|
3489
|
-
/**
|
|
3780
|
+
/**
|
|
3781
|
+
* Google Maps search (places with coordinates). Accepts `ll` ("@lat,lng,14z"). With
|
|
3782
|
+
* `engine: "yandex"` (where enabled) the places come from Yandex Maps and carry an `oid`.
|
|
3783
|
+
*/
|
|
3490
3784
|
readonly maps: VerticalMethod<SearchParams, {
|
|
3491
3785
|
request: components["schemas"]["RequestEcho"];
|
|
3492
3786
|
results: components["schemas"]["PlaceResult"][];
|
|
@@ -3498,6 +3792,17 @@ declare class SerpKite {
|
|
|
3498
3792
|
results: components["schemas"]["PlaceResult"][];
|
|
3499
3793
|
meta: components["schemas"]["Meta"];
|
|
3500
3794
|
}>;
|
|
3795
|
+
/**
|
|
3796
|
+
* Details of one place by `place_id`, `cid` or `fid`, or by a Yandex Maps `oid` (implies
|
|
3797
|
+
* `engine: "yandex"`): address, country, time zone, hours
|
|
3798
|
+
* (`opening_hours` text and structured `weekly_hours`), phones, description and photos.
|
|
3799
|
+
* `results` holds the place, or is empty (not charged) when no place has that id. 1 credit.
|
|
3800
|
+
*/
|
|
3801
|
+
readonly place: VerticalMethod<PlaceParams, {
|
|
3802
|
+
request: components["schemas"]["RequestEcho"];
|
|
3803
|
+
results: components["schemas"]["PlaceResult"][];
|
|
3804
|
+
meta: components["schemas"]["Meta"];
|
|
3805
|
+
}>;
|
|
3501
3806
|
/** Reviews of a place by `place_id`, `cid` or `fid`. Page with `page_token` = `next_page_token`. */
|
|
3502
3807
|
readonly reviews: VerticalMethod<{
|
|
3503
3808
|
place_id?: string;
|
|
@@ -3744,4 +4049,4 @@ declare function verifyWebhook(secret: string, payload: string | Uint8Array, hea
|
|
|
3744
4049
|
*/
|
|
3745
4050
|
declare function parseWebhook(secret: string, payload: string | Uint8Array, headers: HeaderSource, options?: VerifyWebhookOptions): Promise<WebhookEvent>;
|
|
3746
4051
|
|
|
3747
|
-
export { type Account, type AnswerBox, type AutocompleteResponse, type Batch, type BatchCompletedEvent, type BatchCreateEntry, type BatchCreateError, type BatchCreateOptions, type BatchCreateParams, type BatchCreateResponse, type BatchEndpoint, type BatchStatus, type CompactResponse, type CrawlPage, type CrawlParams, type CrawlResult, type CrawlSitemapMode, type CrawlStats, type CrawlStopReason, type CrawlTask, DEFAULT_BASE_URL, type DomainList, type Engine, type ErrorBody, type ExtractFailure, type ExtractParams, type ExtractResponse, type ExtractResult, type Format, type Highlight, type ImageResult, type ImagesResponse, type KnowledgeGraph, type MapParams, type MapResponse, type MapURL, type MapsResponse, type Meta, type Monitor, type MonitorCreateParams, type MonitorEndpoint, type MonitorList, type MonitorMetadata, type MonitorPageChange, type MonitorResultsEvent, type MonitorRun, type MonitorRunList, type MonitorRunsParams, type MonitorSearch, type MonitorStatus, type MonitorUpdateParams, type NewsResponse, type NewsResult, type OrganicResult, type PageLink, type PageMetadata, type PatentResult, type PatentsResponse, type PeopleAlsoAsk, type PlaceResult, type PlacesResponse, type Provider, type RankMatch, type RankParams, type RankResponse, type RelatedSearch, type RequestEcho, type RequestOptions, type ResponseInfo, type ReviewResult, type ReviewsParams, type ReviewsResponse, type RouteOutcome, type RouteStep, type ScholarResponse, type ScholarResult, type SearchParams, type SearchResponse, SerpKite, SerpKiteError, type SerpKiteOptions, type ShoppingResponse, type ShoppingResult, type Sitelink, type Status, type Suggestion, type TaskCancelResponse, type TaskCompletedEvent, type TaskCreated, type TaskError, type TaskStatus, VERSION, type VerifyWebhookOptions, type VerticalMethod, type VideoResult, type VideosResponse, type WaitOptions, type WebhookEvent, type WebhookEventType, type WebpageParams, type WebpageResponse, type components, isBatchError, type operations, parseRetryAfter, parseWebhook, type paths, verifyWebhook };
|
|
4052
|
+
export { type Account, type AnswerBox, type AutocompleteResponse, type Batch, type BatchCompletedEvent, type BatchCreateEntry, type BatchCreateError, type BatchCreateOptions, type BatchCreateParams, type BatchCreateResponse, type BatchEndpoint, type BatchStatus, type CompactResponse, type CrawlPage, type CrawlParams, type CrawlResult, type CrawlSitemapMode, type CrawlStats, type CrawlStopReason, type CrawlTask, DEFAULT_BASE_URL, type DomainList, type Engine, type ErrorBody, type ExtractFailure, type ExtractParams, type ExtractResponse, type ExtractResult, type Format, type Highlight, type HoursInterval, type ImageResult, type ImagesResponse, type KnowledgeGraph, type MapParams, type MapResponse, type MapURL, type MapsResponse, type Meta, type Monitor, type MonitorCreateParams, type MonitorEndpoint, type MonitorList, type MonitorMetadata, type MonitorPageChange, type MonitorResultsEvent, type MonitorRun, type MonitorRunList, type MonitorRunsParams, type MonitorSearch, type MonitorStatus, type MonitorUpdateParams, type NewsResponse, type NewsResult, type OrganicResult, type PageLink, type PageMetadata, type PatentResult, type PatentsResponse, type PeopleAlsoAsk, type PlaceParams, type PlacePhoto, type PlaceResult, type PlacesResponse, type Provider, type RankMatch, type RankParams, type RankResponse, type RelatedSearch, type RequestEcho, type RequestOptions, type ResponseInfo, type ReviewResult, type ReviewsParams, type ReviewsResponse, type RouteOutcome, type RouteStep, type ScholarResponse, type ScholarResult, type SearchParams, type SearchResponse, SerpKite, SerpKiteError, type SerpKiteOptions, type ShoppingResponse, type ShoppingResult, type Sitelink, type Status, type Suggestion, type TaskCancelResponse, type TaskCompletedEvent, type TaskCreated, type TaskError, type TaskStatus, VERSION, type VerifyWebhookOptions, type VerticalMethod, type VideoResult, type VideosResponse, type WaitOptions, type WebhookEvent, type WebhookEventType, type WebpageParams, type WebpageResponse, type WeeklyHours, type components, isBatchError, type operations, parseRetryAfter, parseWebhook, type paths, verifyWebhook };
|