getanyapi 0.93.0__tar.gz → 0.93.2__tar.gz

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.
Files changed (109) hide show
  1. {getanyapi-0.93.0 → getanyapi-0.93.2}/PKG-INFO +1 -1
  2. {getanyapi-0.93.0 → getanyapi-0.93.2}/pyproject.toml +1 -1
  3. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/__init__.py +1 -1
  4. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/google.py +1 -1
  5. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/maps.py +1 -1
  6. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/pinterest.py +1 -1
  7. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/reddit.py +2 -2
  8. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/twitter.py +6 -6
  9. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/web.py +2 -2
  10. {getanyapi-0.93.0 → getanyapi-0.93.2}/.gitignore +0 -0
  11. {getanyapi-0.93.0 → getanyapi-0.93.2}/README.md +0 -0
  12. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_account.py +0 -0
  13. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_async_client.py +0 -0
  14. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_client.py +0 -0
  15. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_errors.py +0 -0
  16. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_idempotency.py +0 -0
  17. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_pagination.py +0 -0
  18. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/_transport.py +0 -0
  19. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/discovery_types.py +0 -0
  20. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/__init__.py +0 -0
  21. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/ahrefs.py +0 -0
  22. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/airbnb.py +0 -0
  23. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/alibaba.py +0 -0
  24. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/amazon.py +0 -0
  25. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/apollo.py +0 -0
  26. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/appstore.py +0 -0
  27. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/bluesky.py +0 -0
  28. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/booking.py +0 -0
  29. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/capterra.py +0 -0
  30. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/chatgpt.py +0 -0
  31. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/coinmarketcap.py +0 -0
  32. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/company.py +0 -0
  33. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/company_enrichment.py +0 -0
  34. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/company_identify.py +0 -0
  35. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/company_search.py +0 -0
  36. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/congress.py +0 -0
  37. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/contact_enrichment.py +0 -0
  38. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/douyin.py +0 -0
  39. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/ebay.py +0 -0
  40. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/email.py +0 -0
  41. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/email_finding.py +0 -0
  42. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/email_verification.py +0 -0
  43. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/facebook.py +0 -0
  44. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/fiverr.py +0 -0
  45. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/g2.py +0 -0
  46. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/gemini.py +0 -0
  47. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/github.py +0 -0
  48. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/glassdoor.py +0 -0
  49. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/google_ads.py +0 -0
  50. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/google_finance.py +0 -0
  51. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/google_hotels.py +0 -0
  52. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/google_shopping.py +0 -0
  53. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/hackernews.py +0 -0
  54. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/indeed.py +0 -0
  55. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/instagram.py +0 -0
  56. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/job_search.py +0 -0
  57. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/linkedin.py +0 -0
  58. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/mobile_phone.py +0 -0
  59. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/naver.py +0 -0
  60. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/nextdoor.py +0 -0
  61. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/people_search.py +0 -0
  62. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/perplexity.py +0 -0
  63. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/person.py +0 -0
  64. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/person_enrichment.py +0 -0
  65. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/pexels.py +0 -0
  66. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/playstore.py +0 -0
  67. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/polymarket.py +0 -0
  68. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/property_records.py +0 -0
  69. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/realtor.py +0 -0
  70. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/redfin.py +0 -0
  71. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/rednote.py +0 -0
  72. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/sec.py +0 -0
  73. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/semrush.py +0 -0
  74. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/seo.py +0 -0
  75. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/similarweb.py +0 -0
  76. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/snapchat.py +0 -0
  77. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/social.py +0 -0
  78. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/spotify.py +0 -0
  79. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/substack.py +0 -0
  80. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/technographics.py +0 -0
  81. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/threads.py +0 -0
  82. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/tiktok.py +0 -0
  83. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/tiktok_shop.py +0 -0
  84. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/tripadvisor.py +0 -0
  85. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/trustpilot.py +0 -0
  86. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/truthsocial.py +0 -0
  87. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/unsplash.py +0 -0
  88. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/upwork.py +0 -0
  89. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/walmart.py +0 -0
  90. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/weibo.py +0 -0
  91. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/yahoo_finance.py +0 -0
  92. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/yelp.py +0 -0
  93. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/youtube.py +0 -0
  94. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/zhihu.py +0 -0
  95. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/platforms/zillow.py +0 -0
  96. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/py.typed +0 -0
  97. {getanyapi-0.93.0 → getanyapi-0.93.2}/src/getanyapi/types.py +0 -0
  98. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/conftest.py +0 -0
  99. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_account.py +0 -0
  100. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_client.py +0 -0
  101. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_durable_requests.py +0 -0
  102. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_envelope.py +0 -0
  103. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_errors.py +0 -0
  104. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_fixture_roundtrip.py +0 -0
  105. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_fixture_sweep.py +0 -0
  106. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_not_found_reason.py +0 -0
  107. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_pagination.py +0 -0
  108. {getanyapi-0.93.0 → getanyapi-0.93.2}/tests/test_transport.py +0 -0
  109. {getanyapi-0.93.0 → getanyapi-0.93.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: getanyapi
3
- Version: 0.93.0
3
+ Version: 0.93.2
4
4
  Summary: Official typed Python SDK for AnyAPI: any API, one wallet, USD, no subscriptions.
5
5
  Project-URL: Homepage, https://getanyapi.com
6
6
  Project-URL: Documentation, https://getanyapi.com/docs
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "getanyapi"
7
- version = "0.93.0"
7
+ version = "0.93.2"
8
8
  description = "Official typed Python SDK for AnyAPI: any API, one wallet, USD, no subscriptions."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -55,7 +55,7 @@ from .types import (
55
55
  unwrap,
56
56
  )
57
57
 
58
- __version__ = "0.93.0"
58
+ __version__ = "0.93.2"
59
59
 
60
60
  __all__ = [
61
61
  # clients + top-level functions
@@ -198,7 +198,7 @@ class GoogleSearchInput(TypedDict, total=False):
198
198
  ignoreSources: NotRequired[list[str]]
199
199
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
200
200
  limit: NotRequired[int]
201
- """Maximum number of organic results to return in this response. Google stopped honoring bulk result counts in September 2025, so one page is about 10 results and a limit above 10 is accepted but will not return more than that. To go deeper, send page (about 10 results per page, each billed as a request) or use google.search_100, which returns up to 100 ranked results in a single call for one flat charge and is cheaper past roughly 20 results. Price is flat per request. Range: 1 to 100. Default: 10."""
201
+ """Page size to ask for. Google returns about 10 organic results per page and stopped honoring larger counts in September 2025, so a limit above 10 still returns about 10. Some sources return their whole page of about 10 whatever limit says: a page is never trimmed after the call, so nextCursor always continues exactly where this response ended. To go deeper, send page (about 10 results per page, each billed as a request) or use google.search_100, which returns up to 100 ranked results in a single call for one flat charge and is cheaper past roughly 20 results. Price is flat per request. Range: 1 to 100. Default: 10."""
202
202
  location: NotRequired[str]
203
203
  """Fine-grained location to localize results to, more specific than the country-level gl. Send it as an Active Canonical Name from Google's geo-target list: place, then each parent region, then country, with no space after each comma, e.g. 'New York,New York,United States', 'Austin,Texas,United States', 'London,England,United Kingdom'. Common variations are translated to that name when they point to exactly one place: spaces after commas, missing accents, a US state abbreviation ('Orlando, FL, United States'), or a skipped region ('Sydney, Australia'). A value that names no place, or more than one, is rejected rather than quietly searched from somewhere else."""
204
204
  page: NotRequired[int]
@@ -197,7 +197,7 @@ class MapsSearchNearbyInput(TypedDict, total=False):
197
197
  language: NotRequired[str]
198
198
  """Two-letter language code for the results (e.g. en). Default: en."""
199
199
  limit: NotRequired[int]
200
- """Maximum number of places to return in this response (1-20). Google Maps returns one viewport of about 20 places per call; page with cursor for more. Price is flat per request. Range: 1 to 20. Default: 20."""
200
+ """Accepted but does not change the page: every call returns one full Google Maps viewport of about 20 places, never trimmed, so nextCursor continues exactly where this response ended. Price is flat per request. Range: 1 to 20. Default: 20."""
201
201
  preferLatencyUnderMs: NotRequired[int]
202
202
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
203
203
  query: Required[str]
@@ -31,7 +31,7 @@ class PinterestSearchInput(TypedDict, total=False):
31
31
  ignoreSources: NotRequired[list[str]]
32
32
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
33
33
  limit: NotRequired[int]
34
- """Maximum number of results to return from this page (1-20). Range: 1 to 20."""
34
+ """Page size to ask for (1-20). Some sources return their whole page of about 20 pins whatever limit says: a page is never trimmed after the call, so nextCursor continues exactly where this response ended. Range: 1 to 20."""
35
35
  preferLatencyUnderMs: NotRequired[int]
36
36
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
37
37
  query: Required[str]
@@ -156,7 +156,7 @@ class RedditSubredditPostsInput(TypedDict, total=False):
156
156
  ignoreSources: NotRequired[list[str]]
157
157
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
158
158
  limit: NotRequired[int]
159
- """Requested number of posts. Note: the upstream returns one page (about 25 posts) per call; values larger than a page are not delivered in a single response. To fetch more, pass `nextCursor` back as `cursor`. Range: 1 to 100. Default: 25."""
159
+ """Page size to ask for (up to 100). Some sources honor it; others always return their whole page of about 25 posts. A page is never trimmed after the call, so pass nextCursor back as cursor to continue exactly where this response ended. Range: 1 to 100. Default: 25."""
160
160
  preferLatencyUnderMs: NotRequired[int]
161
161
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
162
162
  requireFields: NotRequired[
@@ -231,7 +231,7 @@ class RedditUserCommentsInput(TypedDict, total=False):
231
231
  ignoreSources: NotRequired[list[str]]
232
232
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
233
233
  limit: NotRequired[int]
234
- """Maximum number of comments to return in this response (a page cap, not a total). Defaults to 25. Range: 1 to 100. Default: 25."""
234
+ """Page size to ask for (up to 100, default 25). Some sources honor it; others always return their whole page of about 25 comments. A page is never trimmed after the call, so pass nextCursor back as cursor to continue exactly where this response ended. Range: 1 to 100. Default: 25."""
235
235
  preferLatencyUnderMs: NotRequired[int]
236
236
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
237
237
  sort: NotRequired[Literal["new", "top", "hot", "controversial"]]
@@ -76,7 +76,7 @@ class TwitterFollowersInput(TypedDict, total=False):
76
76
  ignoreSources: NotRequired[list[str]]
77
77
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
78
78
  limit: NotRequired[int]
79
- """Per-page maximum number of followers to return (default 200). A native page holds up to 200 accounts, so a larger limit still returns at most one native page; follow the response's nextCursor for more. Range: 1 to 100000. Default: 200."""
79
+ """Accepted but does not change the page: every call returns one full native page of followers (up to 200, depending on the source), never trimmed, so follow nextCursor to continue exactly where this response ended. Range: 1 to 100000. Default: 200."""
80
80
  preferLatencyUnderMs: NotRequired[int]
81
81
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
82
82
  requireFields: NotRequired[list[Literal["bio", "following"]]]
@@ -97,7 +97,7 @@ class TwitterFollowingInput(TypedDict, total=False):
97
97
  ignoreSources: NotRequired[list[str]]
98
98
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
99
99
  limit: NotRequired[int]
100
- """Per-page maximum number of followed accounts to return (default 200). A limit larger than the native page still returns at most one native page; follow the response's nextCursor for more. Range: 1 to 100000. Default: 200."""
100
+ """Accepted but does not change the page: every call returns one full native page of followed accounts (about 50), never trimmed, so follow nextCursor to continue exactly where this response ended. Range: 1 to 100000. Default: 200."""
101
101
  preferLatencyUnderMs: NotRequired[int]
102
102
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
103
103
  requireFields: NotRequired[list[Literal["location"]]]
@@ -154,7 +154,7 @@ class TwitterSearchInput(TypedDict, total=False):
154
154
  ignoreSources: NotRequired[list[str]]
155
155
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
156
156
  limit: NotRequired[int]
157
- """Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more. Range: 1 to 50. Default: 20."""
157
+ """Page size to ask for (1-50, default 20). Some sources honor it; others always return their whole native page of about 20. A page is never trimmed after the call, so follow nextCursor to continue exactly where this response ended. Range: 1 to 50. Default: 20."""
158
158
  preferLatencyUnderMs: NotRequired[int]
159
159
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
160
160
  query: Required[str]
@@ -304,7 +304,7 @@ class TwitterUserTweetsInput(TypedDict, total=False):
304
304
  ignoreSources: NotRequired[list[str]]
305
305
  """Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
306
306
  limit: NotRequired[int]
307
- """Maximum number of authored tweets and replies to return in THIS page (1-100). Sources return fewer - most cap at 20 - so read `nextCursor` and pass it back as `cursor` to walk further rather than asking for one large page. Range: 1 to 100. Default: 20."""
307
+ """Page size to ask for (1-100, default 20). Some sources honor it; others always return their whole native page of about 20 authored tweets and replies. A page is never trimmed after the call, so follow nextCursor and pass it back as cursor to continue exactly where this response ended. Range: 1 to 100. Default: 20."""
308
308
  preferLatencyUnderMs: NotRequired[int]
309
309
  """Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
310
310
  requireFields: NotRequired[list[Literal["isPinned"]]]
@@ -1796,7 +1796,7 @@ class TwitterNamespace:
1796
1796
  records with follower, following, and post counts plus cursor pagination.
1797
1797
  Use twitter.search for posts.
1798
1798
 
1799
- Price: $0.00075 per request.
1799
+ Price: $0.0007 per request.
1800
1800
 
1801
1801
  Example:
1802
1802
  res = client.twitter.search_users(query="ai agents")
@@ -2336,7 +2336,7 @@ class AsyncTwitterNamespace:
2336
2336
  records with follower, following, and post counts plus cursor pagination.
2337
2337
  Use twitter.search for posts.
2338
2338
 
2339
- Price: $0.00075 per request.
2339
+ Price: $0.0007 per request.
2340
2340
 
2341
2341
  Example:
2342
2342
  res = client.twitter.search_users(query="ai agents")
@@ -249,7 +249,7 @@ class WebNamespace:
249
249
 
250
250
  Capture a real-browser screenshot of any web page URL.
251
251
 
252
- Price: $0.00174 per request plus $0 per result (maximum $0.00174).
252
+ Price: $0.0013 per request.
253
253
 
254
254
  Example:
255
255
  res = client.web.screenshot(url="https://example.com")
@@ -330,7 +330,7 @@ class AsyncWebNamespace:
330
330
 
331
331
  Capture a real-browser screenshot of any web page URL.
332
332
 
333
- Price: $0.00174 per request plus $0 per result (maximum $0.00174).
333
+ Price: $0.0013 per request.
334
334
 
335
335
  Example:
336
336
  res = client.web.screenshot(url="https://example.com")
File without changes
File without changes
File without changes
File without changes