getanyapi 0.69.0__tar.gz → 0.70.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.69.0 → getanyapi-0.70.0}/PKG-INFO +1 -1
  2. {getanyapi-0.69.0 → getanyapi-0.70.0}/pyproject.toml +1 -1
  3. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/__init__.py +1 -1
  4. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/glassdoor.py +20 -5
  5. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/upwork.py +5 -3
  6. {getanyapi-0.69.0 → getanyapi-0.70.0}/.gitignore +0 -0
  7. {getanyapi-0.69.0 → getanyapi-0.70.0}/README.md +0 -0
  8. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_account.py +0 -0
  9. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_async_client.py +0 -0
  10. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_client.py +0 -0
  11. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_errors.py +0 -0
  12. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_idempotency.py +0 -0
  13. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_pagination.py +0 -0
  14. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/_transport.py +0 -0
  15. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/discovery_types.py +0 -0
  16. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/__init__.py +0 -0
  17. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/ahrefs.py +0 -0
  18. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/airbnb.py +0 -0
  19. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/alibaba.py +0 -0
  20. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/amazon.py +0 -0
  21. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/apollo.py +0 -0
  22. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/appstore.py +0 -0
  23. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/bluesky.py +0 -0
  24. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/booking.py +0 -0
  25. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/capterra.py +0 -0
  26. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/chatgpt.py +0 -0
  27. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/coinmarketcap.py +0 -0
  28. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company.py +0 -0
  29. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_enrichment.py +0 -0
  30. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_identify.py +0 -0
  31. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_search.py +0 -0
  32. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/congress.py +0 -0
  33. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/contact_enrichment.py +0 -0
  34. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/douyin.py +0 -0
  35. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/ebay.py +0 -0
  36. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email.py +0 -0
  37. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email_finding.py +0 -0
  38. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email_verification.py +0 -0
  39. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/facebook.py +0 -0
  40. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/fiverr.py +0 -0
  41. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/g2.py +0 -0
  42. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/gemini.py +0 -0
  43. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/github.py +0 -0
  44. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google.py +0 -0
  45. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_ads.py +0 -0
  46. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_finance.py +0 -0
  47. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_shopping.py +0 -0
  48. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/hackernews.py +0 -0
  49. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/indeed.py +0 -0
  50. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/instagram.py +0 -0
  51. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/job_search.py +0 -0
  52. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/linkedin.py +0 -0
  53. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/maps.py +0 -0
  54. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/mobile_phone.py +0 -0
  55. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/naver.py +0 -0
  56. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/nextdoor.py +0 -0
  57. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/people_search.py +0 -0
  58. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/perplexity.py +0 -0
  59. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/person.py +0 -0
  60. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/person_enrichment.py +0 -0
  61. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/pinterest.py +0 -0
  62. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/playstore.py +0 -0
  63. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/polymarket.py +0 -0
  64. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/property_records.py +0 -0
  65. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/realtor.py +0 -0
  66. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/reddit.py +0 -0
  67. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/redfin.py +0 -0
  68. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/rednote.py +0 -0
  69. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/sec.py +0 -0
  70. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/semrush.py +0 -0
  71. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/seo.py +0 -0
  72. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/similarweb.py +0 -0
  73. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/snapchat.py +0 -0
  74. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/social.py +0 -0
  75. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/spotify.py +0 -0
  76. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/substack.py +0 -0
  77. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/technographics.py +0 -0
  78. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/threads.py +0 -0
  79. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tiktok.py +0 -0
  80. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tiktok_shop.py +0 -0
  81. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tripadvisor.py +0 -0
  82. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/trustpilot.py +0 -0
  83. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/truthsocial.py +0 -0
  84. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/twitter.py +0 -0
  85. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/walmart.py +0 -0
  86. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/web.py +0 -0
  87. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/weibo.py +0 -0
  88. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/yahoo_finance.py +0 -0
  89. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/yelp.py +0 -0
  90. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/youtube.py +0 -0
  91. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/zhihu.py +0 -0
  92. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/platforms/zillow.py +0 -0
  93. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/py.typed +0 -0
  94. {getanyapi-0.69.0 → getanyapi-0.70.0}/src/getanyapi/types.py +0 -0
  95. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/conftest.py +0 -0
  96. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_account.py +0 -0
  97. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_client.py +0 -0
  98. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_durable_requests.py +0 -0
  99. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_envelope.py +0 -0
  100. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_errors.py +0 -0
  101. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_fixture_roundtrip.py +0 -0
  102. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_fixture_sweep.py +0 -0
  103. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_not_found_reason.py +0 -0
  104. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_pagination.py +0 -0
  105. {getanyapi-0.69.0 → getanyapi-0.70.0}/tests/test_transport.py +0 -0
  106. {getanyapi-0.69.0 → getanyapi-0.70.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: getanyapi
3
- Version: 0.69.0
3
+ Version: 0.70.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.69.0"
7
+ version = "0.70.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.69.0"
58
+ __version__ = "0.70.0"
59
59
 
60
60
  __all__ = [
61
61
  # clients + top-level functions
@@ -25,7 +25,7 @@ class GlassdoorJobsInput(TypedDict, total=False):
25
25
  ignoreSources: NotRequired[list[str]]
26
26
  """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."""
27
27
  limit: NotRequired[int]
28
- """Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less. Range: 1 to 20."""
28
+ """Maximum number of results to return (1-20, default 20). Range: 1 to 20."""
29
29
  location: NotRequired[str]
30
30
  """City, region, or country to search within (keyword mode; e.g. United States, New York)."""
31
31
  postedLimit: NotRequired[Literal["24h", "week", "month"]]
@@ -34,6 +34,21 @@ class GlassdoorJobsInput(TypedDict, total=False):
34
34
  """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."""
35
35
  query: NotRequired[str]
36
36
  """Job title or keywords to search (keyword mode). Provide this or a url."""
37
+ requireFields: NotRequired[
38
+ list[
39
+ Literal[
40
+ "companyIndustry",
41
+ "companyRevenue",
42
+ "companySize",
43
+ "companyType",
44
+ "expired",
45
+ "logoUrl",
46
+ "normalizedTitle",
47
+ "sector",
48
+ ]
49
+ ]
50
+ ]
51
+ """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 `companyIndustry` or `logoUrl`, 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 job listing that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge."""
37
52
  sortBy: NotRequired[Literal["date", "relevance"]]
38
53
  """Sort order: most recent (date) or best match (relevance). Keyword mode only."""
39
54
  source: NotRequired[list[str]]
@@ -177,10 +192,10 @@ class GlassdoorNamespace:
177
192
  Glassdoor company or job search page URL - up to 20 normalized job records
178
193
  per request.
179
194
 
180
- Price: $0.0055 per request plus $0.00523 per result (maximum $0.11).
195
+ Price: $0.009 per request.
181
196
 
182
197
  Example:
183
- res = client.glassdoor.jobs(limit=3, location="United States", postedLimit="month", query="software engineer")
198
+ res = client.glassdoor.jobs(limit=3, url="https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm")
184
199
  """
185
200
  raw = self._client._run_raw( # pyright: ignore[reportPrivateUsage]
186
201
  "glassdoor.jobs", dict(input), options
@@ -206,10 +221,10 @@ class AsyncGlassdoorNamespace:
206
221
  Glassdoor company or job search page URL - up to 20 normalized job records
207
222
  per request.
208
223
 
209
- Price: $0.0055 per request plus $0.00523 per result (maximum $0.11).
224
+ Price: $0.009 per request.
210
225
 
211
226
  Example:
212
- res = client.glassdoor.jobs(limit=3, location="United States", postedLimit="month", query="software engineer")
227
+ res = client.glassdoor.jobs(limit=3, url="https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm")
213
228
  """
214
229
  raw = await self._client._arun_raw( # pyright: ignore[reportPrivateUsage]
215
230
  "glassdoor.jobs", dict(input), options
@@ -27,7 +27,7 @@ class UpworkJobsInput(TypedDict, total=False):
27
27
  jobType: NotRequired[Literal["fixed", "hourly"]]
28
28
  """Filter by payment type: fixed-price or hourly jobs."""
29
29
  limit: NotRequired[int]
30
- """Maximum number of results to return (10-25, default 25). You are billed per result returned, so a lower limit costs less. Range: 10 to 25."""
30
+ """Maximum number of results to return (10-25, default 25). Range: 10 to 25."""
31
31
  location: NotRequired[str]
32
32
  """Filter by client location - a region, subregion, or country (e.g. United States, Europe)."""
33
33
  paymentVerified: NotRequired[bool]
@@ -36,6 +36,8 @@ class UpworkJobsInput(TypedDict, total=False):
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]
38
38
  """Keywords to search Upwork jobs for (e.g. react developer)."""
39
+ requireFields: NotRequired[list[Literal["premium", "reposted"]]]
40
+ """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 `premium` or `reposted`, 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 job that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge."""
39
41
  sort: NotRequired[Literal["newest", "relevance"]]
40
42
  """Sort order for listings: newest or relevance (e.g. newest). Default: newest."""
41
43
  source: NotRequired[list[str]]
@@ -147,7 +149,7 @@ class UpworkNamespace:
147
149
  Search Upwork job postings by keyword, with up to 25 fresh listings per
148
150
  request.
149
151
 
150
- Price: $0.0011 per request plus $0.0011 per result (maximum $0.0286).
152
+ Price: $0.01 per request.
151
153
 
152
154
  Example:
153
155
  res = client.upwork.jobs(jobType="fixed", limit=10, query="web developer")
@@ -172,7 +174,7 @@ class AsyncUpworkNamespace:
172
174
  Search Upwork job postings by keyword, with up to 25 fresh listings per
173
175
  request.
174
176
 
175
- Price: $0.0011 per request plus $0.0011 per result (maximum $0.0286).
177
+ Price: $0.01 per request.
176
178
 
177
179
  Example:
178
180
  res = client.upwork.jobs(jobType="fixed", limit=10, query="web developer")
File without changes
File without changes
File without changes
File without changes