getanyapi 0.77.1__tar.gz → 0.78.0__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 (106) hide show
  1. {getanyapi-0.77.1 → getanyapi-0.78.0}/PKG-INFO +1 -1
  2. {getanyapi-0.77.1 → getanyapi-0.78.0}/pyproject.toml +1 -1
  3. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/__init__.py +1 -1
  4. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/email.py +2 -2
  5. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/google.py +2 -2
  6. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/tiktok.py +2 -2
  7. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/twitter.py +6 -4
  8. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/youtube.py +2 -2
  9. {getanyapi-0.77.1 → getanyapi-0.78.0}/.gitignore +0 -0
  10. {getanyapi-0.77.1 → getanyapi-0.78.0}/README.md +0 -0
  11. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_account.py +0 -0
  12. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_async_client.py +0 -0
  13. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_client.py +0 -0
  14. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_errors.py +0 -0
  15. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_idempotency.py +0 -0
  16. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_pagination.py +0 -0
  17. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/_transport.py +0 -0
  18. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/discovery_types.py +0 -0
  19. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/__init__.py +0 -0
  20. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/ahrefs.py +0 -0
  21. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/airbnb.py +0 -0
  22. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/alibaba.py +0 -0
  23. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/amazon.py +0 -0
  24. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/apollo.py +0 -0
  25. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/appstore.py +0 -0
  26. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/bluesky.py +0 -0
  27. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/booking.py +0 -0
  28. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/capterra.py +0 -0
  29. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/chatgpt.py +0 -0
  30. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/coinmarketcap.py +0 -0
  31. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/company.py +0 -0
  32. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/company_enrichment.py +0 -0
  33. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/company_identify.py +0 -0
  34. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/company_search.py +0 -0
  35. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/congress.py +0 -0
  36. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/contact_enrichment.py +0 -0
  37. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/douyin.py +0 -0
  38. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/ebay.py +0 -0
  39. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/email_finding.py +0 -0
  40. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/email_verification.py +0 -0
  41. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/facebook.py +0 -0
  42. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/fiverr.py +0 -0
  43. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/g2.py +0 -0
  44. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/gemini.py +0 -0
  45. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/github.py +0 -0
  46. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/glassdoor.py +0 -0
  47. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/google_ads.py +0 -0
  48. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/google_finance.py +0 -0
  49. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/google_shopping.py +0 -0
  50. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/hackernews.py +0 -0
  51. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/indeed.py +0 -0
  52. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/instagram.py +0 -0
  53. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/job_search.py +0 -0
  54. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/linkedin.py +0 -0
  55. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/maps.py +0 -0
  56. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/mobile_phone.py +0 -0
  57. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/naver.py +0 -0
  58. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/nextdoor.py +0 -0
  59. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/people_search.py +0 -0
  60. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/perplexity.py +0 -0
  61. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/person.py +0 -0
  62. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/person_enrichment.py +0 -0
  63. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/pinterest.py +0 -0
  64. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/playstore.py +0 -0
  65. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/polymarket.py +0 -0
  66. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/property_records.py +0 -0
  67. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/realtor.py +0 -0
  68. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/reddit.py +0 -0
  69. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/redfin.py +0 -0
  70. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/rednote.py +0 -0
  71. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/sec.py +0 -0
  72. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/semrush.py +0 -0
  73. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/seo.py +0 -0
  74. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/similarweb.py +0 -0
  75. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/snapchat.py +0 -0
  76. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/social.py +0 -0
  77. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/spotify.py +0 -0
  78. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/substack.py +0 -0
  79. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/technographics.py +0 -0
  80. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/threads.py +0 -0
  81. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/tiktok_shop.py +0 -0
  82. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/tripadvisor.py +0 -0
  83. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/trustpilot.py +0 -0
  84. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/truthsocial.py +0 -0
  85. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/upwork.py +0 -0
  86. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/walmart.py +0 -0
  87. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/web.py +0 -0
  88. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/weibo.py +0 -0
  89. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/yahoo_finance.py +0 -0
  90. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/yelp.py +0 -0
  91. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/zhihu.py +0 -0
  92. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/platforms/zillow.py +0 -0
  93. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/py.typed +0 -0
  94. {getanyapi-0.77.1 → getanyapi-0.78.0}/src/getanyapi/types.py +0 -0
  95. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/conftest.py +0 -0
  96. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_account.py +0 -0
  97. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_client.py +0 -0
  98. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_durable_requests.py +0 -0
  99. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_envelope.py +0 -0
  100. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_errors.py +0 -0
  101. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_fixture_roundtrip.py +0 -0
  102. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_fixture_sweep.py +0 -0
  103. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_not_found_reason.py +0 -0
  104. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_pagination.py +0 -0
  105. {getanyapi-0.77.1 → getanyapi-0.78.0}/tests/test_transport.py +0 -0
  106. {getanyapi-0.77.1 → getanyapi-0.78.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: getanyapi
3
- Version: 0.77.1
3
+ Version: 0.78.0
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.77.1"
7
+ version = "0.78.0"
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.77.1"
58
+ __version__ = "0.78.0"
59
59
 
60
60
  __all__ = [
61
61
  # clients + top-level functions
@@ -121,7 +121,7 @@ class EmailNamespace:
121
121
 
122
122
  Find a person's work email address from their name and company domain.
123
123
 
124
- Price: $0.0154 per request.
124
+ Price: $0.0308 per request.
125
125
 
126
126
  Example:
127
127
  res = client.email.find(person={"domain": "google.com", "firstName": "Damien", "surname": "Neil"})
@@ -169,7 +169,7 @@ class AsyncEmailNamespace:
169
169
 
170
170
  Find a person's work email address from their name and company domain.
171
171
 
172
- Price: $0.0154 per request.
172
+ Price: $0.0308 per request.
173
173
 
174
174
  Example:
175
175
  res = client.email.find(person={"domain": "google.com", "firstName": "Damien", "surname": "Neil"})
@@ -788,7 +788,7 @@ class GoogleNamespace:
788
788
  further, or use google.search_100 for up to 100 ranked results in one call,
789
789
  which is cheaper past roughly 20 results.
790
790
 
791
- Price: $0.0005 per request.
791
+ Price: $0.0004 per request.
792
792
 
793
793
  Example:
794
794
  res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker")
@@ -1053,7 +1053,7 @@ class AsyncGoogleNamespace:
1053
1053
  further, or use google.search_100 for up to 100 ranked results in one call,
1054
1054
  which is cheaper past roughly 20 results.
1055
1055
 
1056
- Price: $0.0005 per request.
1056
+ Price: $0.0004 per request.
1057
1057
 
1058
1058
  Example:
1059
1059
  res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker")
@@ -2613,7 +2613,7 @@ class TiktokNamespace:
2613
2613
  Search TikTok's public Ads Library by keyword or advertiser (advertiser,
2614
2614
  title, audience band, run dates, library link, and video).
2615
2615
 
2616
- Price: $0.0012 per request.
2616
+ Price: $0.0005 per request.
2617
2617
 
2618
2618
  Example:
2619
2619
  res = client.tiktok.ad_library_search(query="spotify")
@@ -3701,7 +3701,7 @@ class AsyncTiktokNamespace:
3701
3701
  Search TikTok's public Ads Library by keyword or advertiser (advertiser,
3702
3702
  title, audience band, run dates, library link, and video).
3703
3703
 
3704
- Price: $0.0012 per request.
3704
+ Price: $0.0005 per request.
3705
3705
 
3706
3706
  Example:
3707
3707
  res = client.tiktok.ad_library_search(query="spotify")
@@ -195,6 +195,8 @@ class TwitterSearchUsersInput(TypedDict, total=False):
195
195
  """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."""
196
196
  query: Required[str]
197
197
  """Keyword to match against X (Twitter) handles, display names, and profile bios. This is the People tab of X search: pass a topic ('ai agents'), a name ('Elon Musk'), or a handle ('openai') and get back accounts, not posts. Use twitter.search for posts."""
198
+ requireFields: NotRequired[list[Literal["canDm", "listedCount", "location"]]]
199
+ """Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `location`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a profile that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. 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."""
198
200
  source: NotRequired[list[str]]
199
201
  """Optional. Source ids to prefer, in order, taken from this endpoint's `lanes[].source.id` in /catalog or /apis. Omit it and the cheapest source serves, with automatic failover. Listed sources are tried first in the order given, then the others, unless `allowFallbacks` is false. A single source with `allowFallbacks` false is served only by that source at its price, quoted and charged exactly, with no failover. The price is that of the dearest source that may serve. An id that does not serve this endpoint is rejected as invalid input with no charge; a listed source that is not serving right now is refused with no charge, so omit `source` to be served by another. On a paginated walk, later pages must include the source that served page one, or omit `source`."""
200
202
 
@@ -933,7 +935,7 @@ class TwitterSearchUsersUser(BaseModel):
933
935
  can_dm: bool | None = Field(
934
936
  default=None,
935
937
  alias="canDm",
936
- description="Whether the account accepts direct messages.",
938
+ description="Whether the account accepts direct messages; null when the serving source does not return it. Name it in requireFields to be served by a source that does.",
937
939
  )
938
940
  cover_url: str | None = Field(
939
941
  default=None,
@@ -952,10 +954,10 @@ class TwitterSearchUsersUser(BaseModel):
952
954
  listed_count: int | None = Field(
953
955
  default=None,
954
956
  alias="listedCount",
955
- description="Number of public lists the account appears on.",
957
+ description="Number of public lists the account appears on; null when the serving source does not return it. Name it in requireFields to be served by a source that does.",
956
958
  )
957
- location: str = Field(
958
- description="The account's self-reported location (may be empty)."
959
+ location: str | None = Field(
960
+ description="The account's self-reported location (may be empty); null when the serving source does not return locations. Name it in requireFields to be served by a source that does."
959
961
  )
960
962
  name: str = Field(
961
963
  description="The account's display name. Populated whenever the provider has data for the entity."
@@ -1852,7 +1852,7 @@ class YoutubeNamespace:
1852
1852
  List the comments on a YouTube video or Short by URL with cursor pagination
1853
1853
  (text, author, likes, reply count).
1854
1854
 
1855
- Price: $0.0012 per request.
1855
+ Price: $0.0008 per request.
1856
1856
 
1857
1857
  Example:
1858
1858
  res = client.youtube.video_comments(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ")
@@ -2492,7 +2492,7 @@ class AsyncYoutubeNamespace:
2492
2492
  List the comments on a YouTube video or Short by URL with cursor pagination
2493
2493
  (text, author, likes, reply count).
2494
2494
 
2495
- Price: $0.0012 per request.
2495
+ Price: $0.0008 per request.
2496
2496
 
2497
2497
  Example:
2498
2498
  res = client.youtube.video_comments(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ")
File without changes
File without changes
File without changes
File without changes