@getanyapi/sdk 0.9.2 → 0.9.6

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/dist/index.cjs CHANGED
@@ -103,13 +103,18 @@ var AnyAPIError = class extends Error {
103
103
  status;
104
104
  /** The x-request-id response header when present, else undefined. */
105
105
  requestId;
106
- constructor(message, status, requestId) {
106
+ /** Stable gateway error code when the JSON body includes one, else undefined. */
107
+ code;
108
+ constructor(message, status, requestId, code) {
107
109
  super(message);
108
110
  this.name = new.target.name;
109
111
  this.status = status;
110
112
  if (requestId !== void 0) {
111
113
  this.requestId = requestId;
112
114
  }
115
+ if (code !== void 0) {
116
+ this.code = code;
117
+ }
113
118
  Object.setPrototypeOf(this, new.target.prototype);
114
119
  }
115
120
  };
@@ -131,25 +136,72 @@ var ConnectionError = class extends AnyAPIError {
131
136
  };
132
137
  var TimeoutError = class extends AnyAPIError {
133
138
  };
134
- function errorFromStatus(status, message, requestId) {
139
+ function errorFromStatus(status, message, requestId, code) {
135
140
  switch (status) {
136
141
  case 400:
137
- return new BadRequestError(message, status, requestId);
142
+ return new BadRequestError(message, status, requestId, code);
138
143
  case 401:
139
- return new AuthenticationError(message, status, requestId);
144
+ return new AuthenticationError(message, status, requestId, code);
140
145
  case 402:
141
- return new InsufficientBalanceError(message, status, requestId);
146
+ return new InsufficientBalanceError(message, status, requestId, code);
142
147
  case 404:
143
- return new NotFoundError(message, status, requestId);
148
+ return new NotFoundError(message, status, requestId, code);
144
149
  case 429:
145
- return new RateLimitedError(message, status, requestId);
150
+ return new RateLimitedError(message, status, requestId, code);
146
151
  case 502:
147
- return new UpstreamError(message, status, requestId);
152
+ return new UpstreamError(message, status, requestId, code);
148
153
  default:
149
- return new AnyAPIError(message, status, requestId);
154
+ return new AnyAPIError(message, status, requestId, code);
150
155
  }
151
156
  }
152
157
 
158
+ // src/core/idempotency.ts
159
+ var MAX_IDEMPOTENCY_KEY_BYTES = 255;
160
+ function generateIdempotencyKey() {
161
+ let runtimeCrypto;
162
+ try {
163
+ runtimeCrypto = globalThis.crypto;
164
+ } catch {
165
+ runtimeCrypto = void 0;
166
+ }
167
+ if (typeof runtimeCrypto?.randomUUID === "function") {
168
+ try {
169
+ return runtimeCrypto.randomUUID();
170
+ } catch {
171
+ }
172
+ }
173
+ if (typeof runtimeCrypto?.getRandomValues === "function") {
174
+ try {
175
+ const bytes = runtimeCrypto.getRandomValues(new Uint8Array(16));
176
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
177
+ } catch {
178
+ }
179
+ }
180
+ return Array.from(
181
+ { length: 4 },
182
+ () => Math.floor(Math.random() * 4294967296).toString(16).padStart(8, "0")
183
+ ).join("");
184
+ }
185
+ function validateIdempotencyKey(key) {
186
+ if (key.length === 0 || key.length > MAX_IDEMPOTENCY_KEY_BYTES || [...key].some((char) => {
187
+ const code = char.charCodeAt(0);
188
+ return code < 33 || code > 126;
189
+ })) {
190
+ throw new TypeError(
191
+ "idempotencyKey must be 1-255 bytes of visible ASCII (0x21-0x7e)"
192
+ );
193
+ }
194
+ }
195
+ function pageIdempotencyKey(key, pageNumber) {
196
+ validateIdempotencyKey(key);
197
+ const suffix = `-p${pageNumber}`;
198
+ const prefixLength = MAX_IDEMPOTENCY_KEY_BYTES - suffix.length;
199
+ if (prefixLength < 1) {
200
+ throw new TypeError("pagination page number is too large for an idempotency key");
201
+ }
202
+ return `${key.slice(0, prefixLength)}${suffix}`;
203
+ }
204
+
153
205
  // src/core/account.ts
154
206
  var DEFAULT_BASE_URL = "https://api.getanyapi.com";
155
207
  function malformed(path) {
@@ -458,14 +510,18 @@ async function agentSignup(options = {}) {
458
510
  const text = await response.text().catch(() => "");
459
511
  if (response.status !== 200) {
460
512
  let message = `request failed with status ${response.status}`;
513
+ let code;
461
514
  try {
462
515
  const parsed2 = JSON.parse(text);
463
516
  if (typeof parsed2.error === "string" && parsed2.error !== "") {
464
517
  message = parsed2.error;
465
518
  }
519
+ if (typeof parsed2.code === "string" && parsed2.code !== "") {
520
+ code = parsed2.code;
521
+ }
466
522
  } catch {
467
523
  }
468
- throw errorFromStatus(response.status, message, requestId);
524
+ throw errorFromStatus(response.status, message, requestId, code);
469
525
  }
470
526
  const parsed = JSON.parse(text);
471
527
  return {
@@ -482,6 +538,18 @@ var DEFAULT_TIMEOUT_MS = 6e4;
482
538
  var DEFAULT_MAX_RETRIES = 2;
483
539
  var RETRY_BASE_DELAY_MS = 500;
484
540
  var RETRY_MAX_DELAY_MS = 8e3;
541
+ var PRE_SEND_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
542
+ "EADDRNOTAVAIL",
543
+ "EAI_AGAIN",
544
+ "EAI_NODATA",
545
+ "EAI_NONAME",
546
+ "ECONNREFUSED",
547
+ "EHOSTUNREACH",
548
+ "ENETUNREACH",
549
+ "ENOTFOUND",
550
+ "UND_ERR_CONNECT_TIMEOUT",
551
+ "ConnectionRefused"
552
+ ]);
485
553
  function envApiKey() {
486
554
  try {
487
555
  if (typeof process !== "undefined" && process?.env) {
@@ -566,6 +634,33 @@ function isTimeoutSignal(timeoutSignal, callerSignal) {
566
634
  }
567
635
  return callerSignal?.aborted !== true || timeoutSignal.aborted;
568
636
  }
637
+ function isDefinitelyPreSendConnectionError(error) {
638
+ const seen = /* @__PURE__ */ new Set();
639
+ const visit = (value) => {
640
+ if (typeof value !== "object" && typeof value !== "function" || value === null) {
641
+ return false;
642
+ }
643
+ if (seen.has(value)) {
644
+ return false;
645
+ }
646
+ seen.add(value);
647
+ const candidate = value;
648
+ if (typeof candidate.code === "string" && PRE_SEND_NETWORK_ERROR_CODES.has(candidate.code)) {
649
+ return true;
650
+ }
651
+ if (candidate.code === "ETIMEDOUT" && candidate.syscall === "connect") {
652
+ return true;
653
+ }
654
+ if (candidate.code === "UND_ERR_SOCKET" && candidate.socket?.bytesWritten === 0) {
655
+ return true;
656
+ }
657
+ if (Array.isArray(candidate.errors) && candidate.errors.length > 0) {
658
+ return candidate.errors.some((item) => visit(item)) || visit(candidate.cause);
659
+ }
660
+ return visit(candidate.cause);
661
+ };
662
+ return visit(error);
663
+ }
569
664
  function buildUrl(baseUrl, slug, options) {
570
665
  const base = baseUrl.replace(/\/+$/, "");
571
666
  const url = new URL(`${base}/v1/run/${slug}`);
@@ -584,13 +679,21 @@ function messageFromBody(body, status) {
584
679
  if (body) {
585
680
  try {
586
681
  const parsed = JSON.parse(body);
682
+ const code = typeof parsed.code === "string" && parsed.code !== "" ? parsed.code : void 0;
587
683
  if (typeof parsed.error === "string" && parsed.error !== "") {
588
- return parsed.error;
684
+ return {
685
+ message: parsed.error,
686
+ ...code !== void 0 ? { code } : {}
687
+ };
589
688
  }
689
+ return {
690
+ message: `request failed with status ${status}`,
691
+ ...code !== void 0 ? { code } : {}
692
+ };
590
693
  } catch {
591
694
  }
592
695
  }
593
- return `request failed with status ${status}`;
696
+ return { message: `request failed with status ${status}` };
594
697
  }
595
698
  var AnyAPI = class {
596
699
  apiKey;
@@ -598,6 +701,7 @@ var AnyAPI = class {
598
701
  fetchImpl;
599
702
  maxRetries;
600
703
  timeoutMs;
704
+ idempotency;
601
705
  /**
602
706
  * The network seam the generated per-platform namespaces target. The base client IS a
603
707
  * ClientCore (it implements `run`), so the generated subclass hands `this._core` to each
@@ -620,6 +724,11 @@ var AnyAPI = class {
620
724
  this.fetchImpl = resolvedFetch;
621
725
  this.maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
622
726
  this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
727
+ const idempotency = options.idempotency ?? "auto";
728
+ if (idempotency !== "auto" && idempotency !== "off") {
729
+ throw new TypeError('idempotency must be "auto" or "off"');
730
+ }
731
+ this.idempotency = idempotency;
623
732
  }
624
733
  /**
625
734
  * Generic run for any SKU by slug (the untyped network seam + the string fallback). The
@@ -627,13 +736,15 @@ var AnyAPI = class {
627
736
  * base signature is the fallback that returns RunResult<unknown> for an unknown slug.
628
737
  */
629
738
  run(slug, input, options) {
739
+ const body = JSON.stringify(input ?? {});
630
740
  return this.request(
631
741
  "POST",
632
742
  buildUrl(this.baseUrl, slug, options),
633
743
  {
634
- body: JSON.stringify(input ?? {}),
744
+ body,
635
745
  timeoutMs: options?.timeoutMs ?? this.timeoutMs,
636
746
  maxRetries: options?.maxRetries ?? this.maxRetries,
747
+ ...options?.idempotencyKey !== void 0 ? { idempotencyKey: options.idempotencyKey } : {},
637
748
  ...options?.signal ? { signal: options.signal } : {}
638
749
  }
639
750
  );
@@ -698,6 +809,12 @@ var AnyAPI = class {
698
809
  if (this.apiKey) {
699
810
  headers["Authorization"] = `Bearer ${this.apiKey}`;
700
811
  }
812
+ const billedPost = method === "POST" && opts.body !== void 0;
813
+ if (billedPost && this.idempotency === "auto") {
814
+ const key = opts.idempotencyKey ?? generateIdempotencyKey();
815
+ validateIdempotencyKey(key);
816
+ headers["Idempotency-Key"] = key;
817
+ }
701
818
  let attempt = 0;
702
819
  for (; ; ) {
703
820
  const { signal, timeoutSignal } = composeSignal(
@@ -723,7 +840,9 @@ var AnyAPI = class {
723
840
  err instanceof Error ? err.message : "connection failed",
724
841
  0
725
842
  );
726
- if (attempt < opts.maxRetries) {
843
+ const requestMayBeBilled = method === "POST" && opts.body !== void 0;
844
+ const safeToRetry = !requestMayBeBilled || isDefinitelyPreSendConnectionError(err);
845
+ if (safeToRetry && attempt < opts.maxRetries) {
727
846
  await sleep(backoffDelay(attempt), opts.signal);
728
847
  attempt += 1;
729
848
  continue;
@@ -744,7 +863,7 @@ var AnyAPI = class {
744
863
  }
745
864
  }
746
865
  const body = await response.text().catch(() => "");
747
- const message = messageFromBody(body, response.status);
866
+ const { message, code } = messageFromBody(body, response.status);
748
867
  if (response.status === 429 && attempt < opts.maxRetries) {
749
868
  const retryAfter = parseRetryAfter(response.headers.get("retry-after"));
750
869
  const delay = retryAfter ?? backoffDelay(attempt);
@@ -752,7 +871,7 @@ var AnyAPI = class {
752
871
  attempt += 1;
753
872
  continue;
754
873
  }
755
- throw errorFromStatus(response.status, message, requestId);
874
+ throw errorFromStatus(response.status, message, requestId, code);
756
875
  }
757
876
  }
758
877
  /** Internal accessor for GET helpers in account.ts (same base URL / machinery). */
@@ -797,12 +916,14 @@ function paginate(core, slug, input, itemsField, bare, options) {
797
916
  const maxItems = options?.maxItems;
798
917
  async function* walkPages() {
799
918
  let cursor;
919
+ let pageNumber = 1;
800
920
  for (; ; ) {
801
921
  const pageInput = { ...input };
802
922
  if (cursor !== void 0) {
803
923
  pageInput["cursor"] = cursor;
804
924
  }
805
- const result = await core.run(slug, pageInput, wireOptions);
925
+ const pageOptions = optionsForPage(wireOptions, pageNumber);
926
+ const result = await core.run(slug, pageInput, pageOptions);
806
927
  yield result;
807
928
  const data = pageData(result, bare);
808
929
  if (data === null) {
@@ -813,6 +934,7 @@ function paginate(core, slug, input, itemsField, bare, options) {
813
934
  return;
814
935
  }
815
936
  cursor = next;
937
+ pageNumber += 1;
816
938
  }
817
939
  }
818
940
  async function* walkItems() {
@@ -844,6 +966,15 @@ function paginate(core, slug, input, itemsField, bare, options) {
844
966
  };
845
967
  return paginator;
846
968
  }
969
+ function optionsForPage(options, pageNumber) {
970
+ if (options?.idempotencyKey === void 0) {
971
+ return options;
972
+ }
973
+ return {
974
+ ...options,
975
+ idempotencyKey: pageIdempotencyKey(options.idempotencyKey, pageNumber)
976
+ };
977
+ }
847
978
  function stripMaxItems(options) {
848
979
  if (!options) {
849
980
  return void 0;
@@ -1196,7 +1327,7 @@ var BlueskyNamespace = class {
1196
1327
  /**
1197
1328
  * Bluesky User Posts
1198
1329
  *
1199
- * List a Bluesky account's recent posts (text, author handle, like, reply, and repost counts) by handle as clean JSON, normalized across providers.
1330
+ * List a Bluesky account's recent posts (text, author handle, like, reply, and repost counts) by handle as clean JSON.
1200
1331
  *
1201
1332
  * Price: $0.002 per request.
1202
1333
  *
@@ -1421,7 +1552,7 @@ var EmailNamespace = class {
1421
1552
  /**
1422
1553
  * Email Verifier
1423
1554
  *
1424
- * Verify any email address for deliverability: syntax, domain, and mailbox checks in one normalized response.
1555
+ * Verify an email address for deliverability: a status verdict (valid, risky, or invalid) with domain, mailbox, catch-all, disposable, and role signals plus a confidence score. Malformed addresses are rejected by the input schema with no charge; every syntactically valid address returns a billed verdict, including undeliverable ones.
1425
1556
  *
1426
1557
  * Price: $0 per request plus $0.0008 per result (maximum $0.0008).
1427
1558
  *
@@ -1468,7 +1599,7 @@ var FacebookNamespace = class {
1468
1599
  /**
1469
1600
  * Facebook Ad Search
1470
1601
  *
1471
- * Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination and transparent failover.
1602
+ * Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination.
1472
1603
  *
1473
1604
  * Price: $0.002 per request.
1474
1605
  *
@@ -1497,7 +1628,7 @@ var FacebookNamespace = class {
1497
1628
  /**
1498
1629
  * Facebook Comment Replies
1499
1630
  *
1500
- * List the replies to a Facebook post comment (text, author, reactions, and timestamps) as normalized JSON at a.
1631
+ * List the replies to a Facebook post comment (text, author, reactions, and timestamps) as normalized JSON.
1501
1632
  *
1502
1633
  * Price: $0.002 per request.
1503
1634
  *
@@ -1555,7 +1686,7 @@ var FacebookNamespace = class {
1555
1686
  /**
1556
1687
  * Facebook Event Details
1557
1688
  *
1558
- * Fetch full details for a single Facebook event by ID or URL (name, schedule, venue, hosts, and attendance) as normalized JSON at a.
1689
+ * Fetch full details for a single Facebook event by ID or URL (name, schedule, venue, hosts, and attendance) as normalized JSON.
1559
1690
  *
1560
1691
  * Price: $0.002 per request.
1561
1692
  *
@@ -1568,7 +1699,7 @@ var FacebookNamespace = class {
1568
1699
  /**
1569
1700
  * Facebook Events
1570
1701
  *
1571
- * List public Facebook events for a city or place by its events-page URL (event name, date, venue, and attendance) as normalized JSON at a.
1702
+ * List public Facebook events for a city or place by its events-page URL (event name, date, venue, and attendance) as normalized JSON.
1572
1703
  *
1573
1704
  * Price: $0.002 per request.
1574
1705
  *
@@ -1597,7 +1728,7 @@ var FacebookNamespace = class {
1597
1728
  /**
1598
1729
  * Facebook Events Search
1599
1730
  *
1600
- * Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON at a.
1731
+ * Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON.
1601
1732
  *
1602
1733
  * Price: $0.002 per request.
1603
1734
  *
@@ -1697,7 +1828,7 @@ var FacebookNamespace = class {
1697
1828
  /**
1698
1829
  * Facebook Marketplace Item
1699
1830
  *
1700
- * Fetch full details for a single Facebook Marketplace listing by ID or URL (title, price, location, photos, and attributes) as normalized JSON at a.
1831
+ * Fetch full details for a single Facebook Marketplace listing by ID or URL (title, price, location, photos, and attributes) as normalized JSON.
1701
1832
  *
1702
1833
  * Price: $0.002 per request.
1703
1834
  *
@@ -1710,7 +1841,7 @@ var FacebookNamespace = class {
1710
1841
  /**
1711
1842
  * Facebook Marketplace Location Search
1712
1843
  *
1713
- * Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON at a.
1844
+ * Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON.
1714
1845
  *
1715
1846
  * Price: $0.002 per request.
1716
1847
  *
@@ -1740,7 +1871,7 @@ var FacebookNamespace = class {
1740
1871
  /**
1741
1872
  * Facebook Page Photos
1742
1873
  *
1743
- * Fetch recent photos posted by any public Facebook page or profile (image URLs, captions, and dimensions) as normalized JSON at a.
1874
+ * Fetch recent photos posted by any public Facebook page or profile (image URLs, captions, and dimensions) as normalized JSON.
1744
1875
  *
1745
1876
  * Price: $0.002 per request.
1746
1877
  *
@@ -1769,7 +1900,7 @@ var FacebookNamespace = class {
1769
1900
  /**
1770
1901
  * Facebook Post
1771
1902
  *
1772
- * Fetch a single Facebook post by URL with its text and engagement counts (likes, comments, shares, views), normalized across providers.
1903
+ * Fetch a single Facebook post by URL with its text and engagement counts (likes, comments, shares, views).
1773
1904
  *
1774
1905
  * Price: $0.002 per request.
1775
1906
  *
@@ -1782,7 +1913,7 @@ var FacebookNamespace = class {
1782
1913
  /**
1783
1914
  * Facebook Post Comments
1784
1915
  *
1785
- * List the comments on a Facebook post by URL with cursor pagination (text, author, reactions, reply count), normalized across providers.
1916
+ * List the comments on a Facebook post by URL with cursor pagination (text, author, reactions, reply count).
1786
1917
  *
1787
1918
  * Price: $0.002 per request.
1788
1919
  *
@@ -1811,7 +1942,7 @@ var FacebookNamespace = class {
1811
1942
  /**
1812
1943
  * Facebook Post Transcript
1813
1944
  *
1814
- * Get the spoken-word transcript of any public Facebook video post by URL as normalized JSON at a.
1945
+ * Get the spoken-word transcript of any public Facebook video post by URL as normalized JSON.
1815
1946
  *
1816
1947
  * Price: $0.002 per request.
1817
1948
  *
@@ -1824,7 +1955,7 @@ var FacebookNamespace = class {
1824
1955
  /**
1825
1956
  * Facebook Profile
1826
1957
  *
1827
- * Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle, normalized across providers.
1958
+ * Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle.
1828
1959
  *
1829
1960
  * Price: $0.002 per request.
1830
1961
  *
@@ -1837,7 +1968,7 @@ var FacebookNamespace = class {
1837
1968
  /**
1838
1969
  * Facebook Page Events
1839
1970
  *
1840
- * List upcoming and past events hosted by any public Facebook page by URL (name, schedule, venue, and host) as normalized JSON at a.
1971
+ * List upcoming and past events hosted by any public Facebook page by URL (name, schedule, venue, and host) as normalized JSON.
1841
1972
  *
1842
1973
  * Price: $0.002 per request.
1843
1974
  *
@@ -1866,7 +1997,7 @@ var FacebookNamespace = class {
1866
1997
  /**
1867
1998
  * Facebook Profile Posts
1868
1999
  *
1869
- * List a Facebook page's recent posts by URL or page id with cursor pagination (text, author, permalink), normalized across providers.
2000
+ * List a Facebook page's recent posts by URL or page id with cursor pagination (text, author, permalink).
1870
2001
  *
1871
2002
  * Price: $0.002 per request.
1872
2003
  *
@@ -1879,7 +2010,7 @@ var FacebookNamespace = class {
1879
2010
  /**
1880
2011
  * Facebook Profile Reels
1881
2012
  *
1882
- * List a Facebook page's reels by URL with cursor pagination (caption, view count, permalink, thumbnail), normalized across providers.
2013
+ * List a Facebook page's reels by URL with cursor pagination (caption, view count, permalink, thumbnail).
1883
2014
  *
1884
2015
  * Price: $0.002 per request.
1885
2016
  *
@@ -1905,7 +2036,7 @@ var FacebookNamespace = class {
1905
2036
  /**
1906
2037
  * Facebook Page Search
1907
2038
  *
1908
- * Search Facebook Pages by keyword, optionally narrowed to a location, and get structured page profiles (name, category, followers, contact details) at a.
2039
+ * Search Facebook Pages by keyword, optionally narrowed to a location, and get structured page profiles (name, category, followers, contact details).
1909
2040
  *
1910
2041
  * Price: $0.001 per request plus $0.011 per result (maximum $0.111).
1911
2042
  *
@@ -1960,7 +2091,7 @@ var GithubNamespace = class {
1960
2091
  /**
1961
2092
  * GitHub Repository
1962
2093
  *
1963
- * Fetch a GitHub repository's metadata by URL (stars, forks, language, topics, license, and timestamps), normalized across providers with transparent failover.
2094
+ * Fetch a GitHub repository's metadata by URL (stars, forks, language, topics, license, and timestamps).
1964
2095
  *
1965
2096
  * Price: $0.002 per request.
1966
2097
  *
@@ -1986,7 +2117,7 @@ var GithubNamespace = class {
1986
2117
  /**
1987
2118
  * GitHub Trending Repositories
1988
2119
  *
1989
- * List GitHub Trending repositories (rank, stars, stars gained today, language, and description), filterable by language and time window, normalized across providers.
2120
+ * List GitHub Trending repositories (rank, stars, stars gained today, language, and description), filterable by language and time window.
1990
2121
  *
1991
2122
  * Price: $0.002 per request.
1992
2123
  *
@@ -1999,7 +2130,7 @@ var GithubNamespace = class {
1999
2130
  /**
2000
2131
  * GitHub User
2001
2132
  *
2002
- * Fetch a GitHub user's public profile by handle (name, bio, company, location, followers, and repo counts), normalized across providers with transparent failover.
2133
+ * Fetch a GitHub user's public profile by handle (name, bio, company, location, followers, and repo counts).
2003
2134
  *
2004
2135
  * Price: $0.002 per request.
2005
2136
  *
@@ -2041,7 +2172,7 @@ var GithubNamespace = class {
2041
2172
  /**
2042
2173
  * GitHub User Contributions
2043
2174
  *
2044
- * Fetch a GitHub user's contribution graph for a year (total contributions plus per-day counts and heatmap intensity), normalized across providers with transparent failover.
2175
+ * Fetch a GitHub user's contribution graph for a year (total contributions plus per-day counts and heatmap intensity).
2045
2176
  *
2046
2177
  * Price: $0.002 per request.
2047
2178
  *
@@ -2141,7 +2272,7 @@ var GithubNamespace = class {
2141
2272
  /**
2142
2273
  * GitHub User Repositories
2143
2274
  *
2144
- * List a GitHub user's public repositories (name, description, language, stars, and forks) with sorting and cursor pagination, normalized across providers.
2275
+ * List a GitHub user's public repositories (name, description, language, stars, and forks) with sorting and cursor pagination.
2145
2276
  *
2146
2277
  * Price: $0.002 per request.
2147
2278
  *
@@ -2494,7 +2625,7 @@ var InstagramNamespace = class {
2494
2625
  /**
2495
2626
  * Instagram Reels by Audio
2496
2627
  *
2497
- * List Instagram reels that use a given audio track by audio id, normalized across providers with transparent failover.
2628
+ * List Instagram reels that use a given audio track by audio id.
2498
2629
  *
2499
2630
  * Price: $0.002 per request.
2500
2631
  *
@@ -2523,7 +2654,7 @@ var InstagramNamespace = class {
2523
2654
  /**
2524
2655
  * Instagram Basic Profile
2525
2656
  *
2526
- * Fetch an Instagram account's core public profile fields (followers, posts, bio, verification) by user id, normalized across providers with transparent failover.
2657
+ * Fetch an Instagram account's core public profile fields (followers, posts, bio, verification) by user id.
2527
2658
  *
2528
2659
  * Price: $0.002 per request.
2529
2660
  *
@@ -2536,7 +2667,7 @@ var InstagramNamespace = class {
2536
2667
  /**
2537
2668
  * Instagram Profile Embed
2538
2669
  *
2539
- * Fetch the public embed HTML for an Instagram profile by handle, normalized across providers with transparent failover.
2670
+ * Fetch the public embed HTML for an Instagram profile by handle.
2540
2671
  *
2541
2672
  * Price: $0.002 per request.
2542
2673
  *
@@ -2607,7 +2738,7 @@ var InstagramNamespace = class {
2607
2738
  /**
2608
2739
  * Instagram Hashtag Analytics
2609
2740
  *
2610
- * Get analytics for any Instagram hashtag (total post count, related hashtags, and usage signals), normalized.
2741
+ * Get analytics for any Instagram hashtag (total post count, related hashtags, and usage signals).
2611
2742
  *
2612
2743
  * Price: $0.001 per request plus $0.0017 per result (maximum $0.035).
2613
2744
  *
@@ -2620,7 +2751,7 @@ var InstagramNamespace = class {
2620
2751
  /**
2621
2752
  * Instagram Highlight Detail
2622
2753
  *
2623
- * Fetch the details and media items of a single Instagram story highlight by id, normalized across providers with transparent failover.
2754
+ * Fetch the details and media items of a single Instagram story highlight by id.
2624
2755
  *
2625
2756
  * Price: $0.002 per request.
2626
2757
  *
@@ -2633,7 +2764,7 @@ var InstagramNamespace = class {
2633
2764
  /**
2634
2765
  * Instagram Media Transcript
2635
2766
  *
2636
- * Get the spoken-audio transcript text for an Instagram post or reel by URL, normalized across providers with transparent failover.
2767
+ * Get the spoken-audio transcript text for an Instagram post or reel by URL.
2637
2768
  *
2638
2769
  * Price: $0.002 per request.
2639
2770
  *
@@ -2646,7 +2777,7 @@ var InstagramNamespace = class {
2646
2777
  /**
2647
2778
  * Instagram Post
2648
2779
  *
2649
- * Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON, across providers with transparent failover.
2780
+ * Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON.
2650
2781
  *
2651
2782
  * Price: $0.002 per request.
2652
2783
  *
@@ -2659,7 +2790,7 @@ var InstagramNamespace = class {
2659
2790
  /**
2660
2791
  * Instagram Post Comments
2661
2792
  *
2662
- * List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes), normalized across providers.
2793
+ * List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes).
2663
2794
  *
2664
2795
  * Price: $0.002 per request.
2665
2796
  *
@@ -2672,7 +2803,7 @@ var InstagramNamespace = class {
2672
2803
  /**
2673
2804
  * Instagram Profile
2674
2805
  *
2675
- * Fetch an Instagram account's public profile (followers, posts, bio, verification) by handle, normalized across providers with transparent failover.
2806
+ * Fetch an Instagram account's public profile (followers, posts, bio, verification) by handle.
2676
2807
  *
2677
2808
  * Price: $0.002 per request.
2678
2809
  *
@@ -2698,7 +2829,7 @@ var InstagramNamespace = class {
2698
2829
  /**
2699
2830
  * Instagram Reels Search
2700
2831
  *
2701
- * Search Instagram Reels by keyword and get matching reels (caption, views, likes, creator, and duration), normalized across providers with transparent failover.
2832
+ * Search Instagram Reels by keyword and get matching reels (caption, views, likes, creator, and duration). Paging tops out around 110 reels per query (11 pages of 10).
2702
2833
  *
2703
2834
  * Price: $0.002 per request.
2704
2835
  *
@@ -2724,7 +2855,7 @@ var InstagramNamespace = class {
2724
2855
  /**
2725
2856
  * Instagram Hashtag Search
2726
2857
  *
2727
- * List recent Instagram posts under a hashtag (caption, type, media URL), normalized across providers with transparent failover.
2858
+ * Search Instagram posts under a hashtag (caption, type, media URL). Results are relevance-ranked by Instagram, not date-ordered, so a page can mix recent and older posts.
2728
2859
  *
2729
2860
  * Price: $0.002 per request.
2730
2861
  *
@@ -2737,7 +2868,7 @@ var InstagramNamespace = class {
2737
2868
  /**
2738
2869
  * Instagram Profile Search
2739
2870
  *
2740
- * Search public Instagram profiles by a bio or caption keyword, normalized across providers with transparent failover.
2871
+ * Search public Instagram profiles by a bio or caption keyword.
2741
2872
  *
2742
2873
  * Price: $0.002 per request.
2743
2874
  *
@@ -2792,7 +2923,7 @@ var InstagramNamespace = class {
2792
2923
  /**
2793
2924
  * Instagram Trending Reels
2794
2925
  *
2795
- * List currently trending Instagram reels, normalized across providers with transparent failover.
2926
+ * List currently trending Instagram reels.
2796
2927
  *
2797
2928
  * Price: $0.002 per request.
2798
2929
  *
@@ -2805,7 +2936,7 @@ var InstagramNamespace = class {
2805
2936
  /**
2806
2937
  * Instagram User Highlights
2807
2938
  *
2808
- * List an Instagram account's story highlight reels by handle, normalized across providers with transparent failover.
2939
+ * List an Instagram account's story highlight reels by handle.
2809
2940
  *
2810
2941
  * Price: $0.002 per request.
2811
2942
  *
@@ -2818,7 +2949,7 @@ var InstagramNamespace = class {
2818
2949
  /**
2819
2950
  * Instagram User Posts
2820
2951
  *
2821
- * List an Instagram account's recent posts (likes, comments, captions) by handle with cursor pagination, normalized across providers.
2952
+ * List an Instagram account's recent posts (likes, comments, captions) by handle with cursor pagination.
2822
2953
  *
2823
2954
  * Price: $0.002 per request.
2824
2955
  *
@@ -2847,7 +2978,7 @@ var InstagramNamespace = class {
2847
2978
  /**
2848
2979
  * Instagram User Reels
2849
2980
  *
2850
- * List an Instagram account's reels by handle with cursor pagination (caption, plays, likes, comments), normalized across providers.
2981
+ * List an Instagram account's reels by handle with cursor pagination (caption, plays, likes, comments).
2851
2982
  *
2852
2983
  * Price: $0.002 per request.
2853
2984
  *
@@ -3027,7 +3158,7 @@ var LinkedinNamespace = class {
3027
3158
  /**
3028
3159
  * LinkedIn Post
3029
3160
  *
3030
- * Fetch a single LinkedIn post or article by URL (title, text, author, like and comment counts, publish date), normalized across providers.
3161
+ * Fetch a single LinkedIn post or article by URL (title, text, author, like and comment counts, publish date).
3031
3162
  *
3032
3163
  * Price: $0.001 per request.
3033
3164
  *
@@ -3118,7 +3249,7 @@ var LinkedinNamespace = class {
3118
3249
  /**
3119
3250
  * LinkedIn Post Search
3120
3251
  *
3121
- * Search public LinkedIn posts by keyword (text, link, publish date), normalized across providers with transparent failover.
3252
+ * Search public LinkedIn posts by keyword (text, link, publish date).
3122
3253
  *
3123
3254
  * Price: $0.002 per request.
3124
3255
  *
@@ -3390,7 +3521,7 @@ var RedditNamespace = class {
3390
3521
  /**
3391
3522
  * Reddit Post Comments
3392
3523
  *
3393
- * List the top-level comments on a Reddit post by URL (author, body, score, timestamp), normalized across providers with transparent failover.
3524
+ * List the top-level comments on a Reddit post by URL (author, body, score, timestamp).
3394
3525
  *
3395
3526
  * Price: $0.002 per request.
3396
3527
  *
@@ -3403,7 +3534,7 @@ var RedditNamespace = class {
3403
3534
  /**
3404
3535
  * Reddit Post Transcript
3405
3536
  *
3406
- * Extract the spoken transcript from a Reddit video post by URL, normalized across providers with transparent failover.
3537
+ * Extract the spoken transcript from a Reddit video post by URL.
3407
3538
  *
3408
3539
  * Price: $0.002 per request.
3409
3540
  *
@@ -3416,7 +3547,7 @@ var RedditNamespace = class {
3416
3547
  /**
3417
3548
  * Reddit Search
3418
3549
  *
3419
- * Search Reddit posts across all subreddits by query, normalized across providers with transparent failover.
3550
+ * Search Reddit posts across all subreddits by query.
3420
3551
  *
3421
3552
  * Price: $0.001 per request.
3422
3553
  *
@@ -3445,7 +3576,7 @@ var RedditNamespace = class {
3445
3576
  /**
3446
3577
  * Reddit Subreddit Details
3447
3578
  *
3448
- * Fetch a subreddit's metadata (weekly active users, description, and category), normalized across providers with transparent failover.
3579
+ * Fetch a subreddit's metadata (weekly active users, description, and category).
3449
3580
  *
3450
3581
  * Price: $0.001 per request.
3451
3582
  *
@@ -3458,7 +3589,7 @@ var RedditNamespace = class {
3458
3589
  /**
3459
3590
  * Reddit Subreddit Posts
3460
3591
  *
3461
- * Fetch posts from a subreddit listing (hot, new, or top), normalized across providers with transparent failover.
3592
+ * Fetch posts from a subreddit listing (hot, new, or top).
3462
3593
  *
3463
3594
  * Price: $0.002 per request.
3464
3595
  *
@@ -3471,7 +3602,7 @@ var RedditNamespace = class {
3471
3602
  /**
3472
3603
  * Reddit Subreddit Search
3473
3604
  *
3474
- * Search posts within a single subreddit by query, sort, and timeframe, normalized across providers with transparent failover.
3605
+ * Search posts within a single subreddit by query, sort, and timeframe.
3475
3606
  *
3476
3607
  * Price: $0.002 per request.
3477
3608
  *
@@ -4149,7 +4280,7 @@ var TiktokNamespace = class {
4149
4280
  /**
4150
4281
  * TikTok Ad Library Ad
4151
4282
  *
4152
- * Fetch full details for a single TikTok ad (brand, title, spend, CTR, objectives, landing page, and video info), normalized across providers with transparent failover.
4283
+ * Fetch full details for a single TikTok ad (brand, title, spend, CTR, objectives, landing page, and video info).
4153
4284
  *
4154
4285
  * Price: $0.002 per request.
4155
4286
  *
@@ -4162,7 +4293,7 @@ var TiktokNamespace = class {
4162
4293
  /**
4163
4294
  * TikTok Ad Library Search
4164
4295
  *
4165
- * Search TikTok's ad library by keyword (top ads with brand, title, spend, CTR, likes, and video info), normalized across providers with transparent failover.
4296
+ * Search TikTok's ad library by keyword (top ads with brand, title, spend, CTR, likes, and video info).
4166
4297
  *
4167
4298
  * Price: $0.002 per request.
4168
4299
  *
@@ -4191,7 +4322,7 @@ var TiktokNamespace = class {
4191
4322
  /**
4192
4323
  * TikTok Audience Demographics
4193
4324
  *
4194
- * Get the audience country breakdown (follower count and share per country) for a TikTok creator by handle, normalized across providers.
4325
+ * Get the audience country breakdown (follower count and share per country) for a TikTok creator by handle.
4195
4326
  *
4196
4327
  * Price: $0.01625 per request.
4197
4328
  *
@@ -4204,7 +4335,7 @@ var TiktokNamespace = class {
4204
4335
  /**
4205
4336
  * TikTok Comment Replies
4206
4337
  *
4207
- * List the replies to a TikTok comment with cursor pagination (text, author, likes), normalized across providers.
4338
+ * List the replies to a TikTok comment with cursor pagination (text, author, likes).
4208
4339
  *
4209
4340
  * Price: $0.002 per request.
4210
4341
  *
@@ -4262,7 +4393,7 @@ var TiktokNamespace = class {
4262
4393
  /**
4263
4394
  * TikTok Following
4264
4395
  *
4265
- * List the accounts a TikTok user follows (handle, display name, follower count, bio) by username, normalized across providers.
4396
+ * List the accounts a TikTok user follows (handle, display name, follower count, bio) by username.
4266
4397
  *
4267
4398
  * Price: $0.002 per request.
4268
4399
  *
@@ -4275,7 +4406,7 @@ var TiktokNamespace = class {
4275
4406
  /**
4276
4407
  * TikTok Hashtag Videos
4277
4408
  *
4278
- * List recent TikTok videos for a hashtag (creator, caption, views, likes, shares), normalized output.
4409
+ * List recent TikTok videos for a hashtag (creator, caption, views, likes, shares).
4279
4410
  *
4280
4411
  * Price: $0.00325 per request.
4281
4412
  *
@@ -4288,7 +4419,7 @@ var TiktokNamespace = class {
4288
4419
  /**
4289
4420
  * TikTok Live
4290
4421
  *
4291
- * Check whether a TikTok creator is live and get the current live room (title, viewers, start time) by handle, normalized across providers.
4422
+ * Check whether a TikTok creator is live and get the current live room (title, viewers, start time) by handle.
4292
4423
  *
4293
4424
  * Price: $0.002 per request.
4294
4425
  *
@@ -4301,7 +4432,7 @@ var TiktokNamespace = class {
4301
4432
  /**
4302
4433
  * TikTok Profile
4303
4434
  *
4304
- * Fetch a TikTok creator's public profile (followers, likes, bio, verification) by handle, normalized across providers with transparent failover.
4435
+ * Fetch a TikTok creator's public profile (followers, likes, bio, verification) by handle.
4305
4436
  *
4306
4437
  * Price: $0.001 per request.
4307
4438
  *
@@ -4314,7 +4445,7 @@ var TiktokNamespace = class {
4314
4445
  /**
4315
4446
  * TikTok Profile Region
4316
4447
  *
4317
- * Resolve the home region (country) of a TikTok creator by handle, normalized across providers with transparent failover.
4448
+ * Resolve the home region (country) of a TikTok creator by handle.
4318
4449
  *
4319
4450
  * Price: $0.002 per request.
4320
4451
  *
@@ -4327,7 +4458,7 @@ var TiktokNamespace = class {
4327
4458
  /**
4328
4459
  * TikTok Profile Videos
4329
4460
  *
4330
- * List a TikTok creator's recent videos (views, likes, comments) by handle with cursor pagination, normalized across providers.
4461
+ * List a TikTok creator's recent videos (views, likes, comments) by handle with cursor pagination.
4331
4462
  *
4332
4463
  * Price: $0.001 per request.
4333
4464
  *
@@ -4356,7 +4487,7 @@ var TiktokNamespace = class {
4356
4487
  /**
4357
4488
  * TikTok Hashtag Search
4358
4489
  *
4359
- * Search TikTok by hashtag and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.
4490
+ * Search TikTok by hashtag and get matching videos (caption, views, likes, comments, shares) as normalized JSON.
4360
4491
  *
4361
4492
  * Price: $0.002 per request.
4362
4493
  *
@@ -4369,7 +4500,7 @@ var TiktokNamespace = class {
4369
4500
  /**
4370
4501
  * TikTok Keyword Search
4371
4502
  *
4372
- * Search TikTok by keyword and get matching videos (caption, views, likes, comments, shares) as normalized JSON, across providers with transparent failover.
4503
+ * Search TikTok by keyword and get matching videos (caption, views, likes, comments, shares) as normalized JSON.
4373
4504
  *
4374
4505
  * Price: $0.001 per request.
4375
4506
  *
@@ -4382,7 +4513,7 @@ var TiktokNamespace = class {
4382
4513
  /**
4383
4514
  * TikTok Top Search
4384
4515
  *
4385
- * Search TikTok's top results for a keyword (caption, views, likes, comments, shares) with cursor pagination, normalized across providers.
4516
+ * Search TikTok's top results for a keyword (caption, views, likes, comments, shares) with cursor pagination.
4386
4517
  *
4387
4518
  * Price: $0.002 per request.
4388
4519
  *
@@ -4411,7 +4542,7 @@ var TiktokNamespace = class {
4411
4542
  /**
4412
4543
  * TikTok User Search
4413
4544
  *
4414
- * Search TikTok accounts by keyword (handle, nickname, follower count) with cursor pagination, normalized across providers.
4545
+ * Search TikTok accounts by keyword (handle, nickname, follower count) with cursor pagination.
4415
4546
  *
4416
4547
  * Price: $0.001 per request.
4417
4548
  *
@@ -4440,7 +4571,7 @@ var TiktokNamespace = class {
4440
4571
  /**
4441
4572
  * TikTok Song
4442
4573
  *
4443
- * Fetch details for a TikTok song or sound (title, author, duration, cover art, and how many videos use it), normalized across providers with transparent failover.
4574
+ * Fetch details for a TikTok song or sound (title, author, duration, cover art, and how many videos use it).
4444
4575
  *
4445
4576
  * Price: $0.002 per request.
4446
4577
  *
@@ -4453,7 +4584,7 @@ var TiktokNamespace = class {
4453
4584
  /**
4454
4585
  * TikTok Song Videos
4455
4586
  *
4456
- * List TikTok videos that use a given song or sound (with descriptions, authors, and engagement stats), normalized across providers with transparent failover.
4587
+ * List TikTok videos that use a given song or sound (with descriptions, authors, and engagement stats).
4457
4588
  *
4458
4589
  * Price: $0.002 per request.
4459
4590
  *
@@ -4482,7 +4613,7 @@ var TiktokNamespace = class {
4482
4613
  /**
4483
4614
  * TikTok Trending Feed
4484
4615
  *
4485
- * Get TikTok's trending feed for a region (caption, views, likes, comments, author) as normalized JSON, across providers with transparent failover.
4616
+ * Get TikTok's trending feed for a region (caption, views, likes, comments, author) as normalized JSON.
4486
4617
  *
4487
4618
  * Price: $0.002 per request.
4488
4619
  *
@@ -4495,7 +4626,7 @@ var TiktokNamespace = class {
4495
4626
  /**
4496
4627
  * TikTok Video
4497
4628
  *
4498
- * Fetch a single TikTok video by URL with its caption and engagement counts (views, likes, comments, shares, saves), normalized across providers with transparent failover.
4629
+ * Fetch a single TikTok video by URL with its caption and engagement counts (views, likes, comments, shares, saves).
4499
4630
  *
4500
4631
  * Price: $0.001 per request.
4501
4632
  *
@@ -4508,7 +4639,7 @@ var TiktokNamespace = class {
4508
4639
  /**
4509
4640
  * TikTok Video Comments
4510
4641
  *
4511
- * List the comments on a TikTok video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.
4642
+ * List the comments on a TikTok video by URL with cursor pagination (text, author, likes, reply count).
4512
4643
  *
4513
4644
  * Price: $0.002 per request.
4514
4645
  *
@@ -4537,7 +4668,7 @@ var TiktokNamespace = class {
4537
4668
  /**
4538
4669
  * TikTok Video Transcript
4539
4670
  *
4540
- * Fetch the spoken-word transcript of a TikTok video by URL, normalized across providers with transparent failover.
4671
+ * Fetch the spoken-word transcript of a TikTok video by URL.
4541
4672
  *
4542
4673
  * Price: $0.002 per request.
4543
4674
  *
@@ -4571,7 +4702,7 @@ var TiktokShopNamespace = class {
4571
4702
  /**
4572
4703
  * TikTok Shop Product Reviews
4573
4704
  *
4574
- * Fetch customer reviews for a TikTok Shop product by URL (rating, text, reviewer, country, and verified-purchase flag), normalized across providers with transparent failover.
4705
+ * Fetch customer reviews for a TikTok Shop product by URL (rating, text, reviewer, country, and verified-purchase flag).
4575
4706
  *
4576
4707
  * Price: $0.002 per request.
4577
4708
  *
@@ -4597,7 +4728,7 @@ var TiktokShopNamespace = class {
4597
4728
  /**
4598
4729
  * TikTok Shop Store Products
4599
4730
  *
4600
- * List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination and transparent failover.
4731
+ * List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination.
4601
4732
  *
4602
4733
  * Price: $0.002 per request.
4603
4734
  *
@@ -4626,7 +4757,7 @@ var TiktokShopNamespace = class {
4626
4757
  /**
4627
4758
  * TikTok Shop User Showcase
4628
4759
  *
4629
- * List the TikTok Shop products a creator showcases (title, price, rating, and sales per product), normalized across providers with transparent failover.
4760
+ * List the TikTok Shop products a creator showcases (title, price, rating, and sales per product).
4630
4761
  *
4631
4762
  * Price: $0.002 per request.
4632
4763
  *
@@ -4778,7 +4909,7 @@ var TwitterNamespace = class {
4778
4909
  /**
4779
4910
  * Twitter Community
4780
4911
  *
4781
- * Fetch a Twitter/X community's public details (name, description, member count, join policy) by URL, normalized across providers with transparent failover.
4912
+ * Fetch a Twitter/X community's public details (name, description, member count, join policy) by URL.
4782
4913
  *
4783
4914
  * Price: $0.002 per request.
4784
4915
  *
@@ -4791,7 +4922,7 @@ var TwitterNamespace = class {
4791
4922
  /**
4792
4923
  * Twitter Community Tweets
4793
4924
  *
4794
- * List recent tweets posted in a Twitter/X community by URL, normalized across providers with transparent failover.
4925
+ * List recent tweets posted in a Twitter/X community by URL.
4795
4926
  *
4796
4927
  * Price: $0.002 per request.
4797
4928
  *
@@ -4862,7 +4993,7 @@ var TwitterNamespace = class {
4862
4993
  /**
4863
4994
  * Twitter Profile
4864
4995
  *
4865
- * Fetch a Twitter/X account's public profile (followers, tweets, bio, verification) by handle, normalized across providers with transparent failover.
4996
+ * Fetch a Twitter/X account's public profile (followers, tweets, bio, verification) by handle.
4866
4997
  *
4867
4998
  * Price: $0.00075 per request.
4868
4999
  *
@@ -4930,7 +5061,7 @@ var TwitterNamespace = class {
4930
5061
  /**
4931
5062
  * Twitter Tweet
4932
5063
  *
4933
- * Fetch a single Twitter/X tweet by URL with its full text and engagement counts (likes, retweets, replies, quotes, bookmarks, views), normalized across providers.
5064
+ * Fetch a single Twitter/X tweet by URL with its full text and engagement counts (likes, retweets, replies, quotes, bookmarks, views).
4934
5065
  *
4935
5066
  * Price: $0.00075 per request.
4936
5067
  *
@@ -4943,7 +5074,7 @@ var TwitterNamespace = class {
4943
5074
  /**
4944
5075
  * Twitter Tweet Transcript
4945
5076
  *
4946
- * Extract the spoken transcript from a Twitter/X video tweet by URL, normalized across providers with transparent failover.
5077
+ * Extract the spoken transcript from a Twitter/X video tweet by URL.
4947
5078
  *
4948
5079
  * Price: $0.002 per request.
4949
5080
  *
@@ -5305,7 +5436,7 @@ var YoutubeNamespace = class {
5305
5436
  /**
5306
5437
  * YouTube Channel
5307
5438
  *
5308
- * Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID, normalized across providers.
5439
+ * Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID.
5309
5440
  *
5310
5441
  * Price: $0.002 per request.
5311
5442
  *
@@ -5318,7 +5449,7 @@ var YoutubeNamespace = class {
5318
5449
  /**
5319
5450
  * YouTube Channel Community Posts
5320
5451
  *
5321
- * List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time), normalized across providers.
5452
+ * List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time).
5322
5453
  *
5323
5454
  * Price: $0.002 per request.
5324
5455
  *
@@ -5347,7 +5478,7 @@ var YoutubeNamespace = class {
5347
5478
  /**
5348
5479
  * YouTube Channel Live Streams
5349
5480
  *
5350
- * List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.
5481
+ * List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time).
5351
5482
  *
5352
5483
  * Price: $0.002 per request.
5353
5484
  *
@@ -5376,7 +5507,7 @@ var YoutubeNamespace = class {
5376
5507
  /**
5377
5508
  * YouTube Channel Playlists
5378
5509
  *
5379
- * List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail), normalized across providers.
5510
+ * List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail).
5380
5511
  *
5381
5512
  * Price: $0.002 per request.
5382
5513
  *
@@ -5405,7 +5536,7 @@ var YoutubeNamespace = class {
5405
5536
  /**
5406
5537
  * YouTube Channel Shorts
5407
5538
  *
5408
- * List a YouTube channel's Shorts by handle or channel ID with cursor pagination (title, views, likes, duration), normalized across providers.
5539
+ * List a YouTube channel's Shorts by handle or channel ID with cursor pagination (title, views, likes, duration).
5409
5540
  *
5410
5541
  * Price: $0.002 per request.
5411
5542
  *
@@ -5434,7 +5565,7 @@ var YoutubeNamespace = class {
5434
5565
  /**
5435
5566
  * YouTube Channel Videos
5436
5567
  *
5437
- * List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time), normalized across providers.
5568
+ * List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time).
5438
5569
  *
5439
5570
  * Price: $0.002 per request.
5440
5571
  *
@@ -5463,7 +5594,7 @@ var YoutubeNamespace = class {
5463
5594
  /**
5464
5595
  * YouTube Comment Replies
5465
5596
  *
5466
- * List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time), normalized across providers.
5597
+ * List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time).
5467
5598
  *
5468
5599
  * Price: $0.002 per request.
5469
5600
  *
@@ -5476,7 +5607,7 @@ var YoutubeNamespace = class {
5476
5607
  /**
5477
5608
  * YouTube Community Post
5478
5609
  *
5479
- * Fetch a single YouTube community post by URL (text, images, channel, publish time), normalized across providers.
5610
+ * Fetch a single YouTube community post by URL (text, images, channel, publish time).
5480
5611
  *
5481
5612
  * Price: $0.002 per request.
5482
5613
  *
@@ -5489,7 +5620,7 @@ var YoutubeNamespace = class {
5489
5620
  /**
5490
5621
  * YouTube Playlist
5491
5622
  *
5492
- * List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals), normalized across providers with transparent failover.
5623
+ * List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals).
5493
5624
  *
5494
5625
  * Price: $0.002 per request.
5495
5626
  *
@@ -5502,7 +5633,7 @@ var YoutubeNamespace = class {
5502
5633
  /**
5503
5634
  * YouTube Search
5504
5635
  *
5505
- * Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON, across providers with transparent failover.
5636
+ * Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.
5506
5637
  *
5507
5638
  * Price: $0.002 per request.
5508
5639
  *
@@ -5515,7 +5646,7 @@ var YoutubeNamespace = class {
5515
5646
  /**
5516
5647
  * YouTube Hashtag Search
5517
5648
  *
5518
- * Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time), normalized across providers.
5649
+ * Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time).
5519
5650
  *
5520
5651
  * Price: $0.002 per request.
5521
5652
  *
@@ -5544,7 +5675,7 @@ var YoutubeNamespace = class {
5544
5675
  /**
5545
5676
  * YouTube Trending Shorts
5546
5677
  *
5547
- * List currently trending YouTube Shorts (title, channel, views, likes, duration), normalized across providers.
5678
+ * List currently trending YouTube Shorts (title, channel, views, likes, duration).
5548
5679
  *
5549
5680
  * Price: $0.002 per request.
5550
5681
  *
@@ -5557,7 +5688,7 @@ var YoutubeNamespace = class {
5557
5688
  /**
5558
5689
  * YouTube Video
5559
5690
  *
5560
- * Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID, normalized across providers.
5691
+ * Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID.
5561
5692
  *
5562
5693
  * Price: $0.002 per request.
5563
5694
  *
@@ -5570,7 +5701,7 @@ var YoutubeNamespace = class {
5570
5701
  /**
5571
5702
  * YouTube Video Comments
5572
5703
  *
5573
- * List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count), normalized across providers.
5704
+ * List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count).
5574
5705
  *
5575
5706
  * Price: $0.002 per request.
5576
5707
  *
@@ -5599,7 +5730,7 @@ var YoutubeNamespace = class {
5599
5730
  /**
5600
5731
  * YouTube Video Sponsors
5601
5732
  *
5602
- * Detect suspected sponsors and paid promotions in a YouTube video by URL (sponsor names, websites, confidence), normalized across providers.
5733
+ * Detect suspected sponsors and paid promotions in a YouTube video by URL (sponsor names, websites, confidence).
5603
5734
  *
5604
5735
  * Price: $0.002 per request.
5605
5736
  *
@@ -5612,7 +5743,7 @@ var YoutubeNamespace = class {
5612
5743
  /**
5613
5744
  * YouTube Video Transcript
5614
5745
  *
5615
- * Fetch the transcript/captions of a YouTube video by URL or ID, normalized across providers with transparent failover.
5746
+ * Fetch the transcript/captions of a YouTube video by URL or ID.
5616
5747
  *
5617
5748
  * Price: $0.002 per request.
5618
5749
  *