getanyapi 0.68.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.68.0 → getanyapi-0.70.0}/PKG-INFO +1 -1
  2. {getanyapi-0.68.0 → getanyapi-0.70.0}/pyproject.toml +1 -1
  3. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/__init__.py +1 -1
  4. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/glassdoor.py +20 -5
  5. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/linkedin.py +26 -7
  6. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/upwork.py +5 -3
  7. {getanyapi-0.68.0 → getanyapi-0.70.0}/.gitignore +0 -0
  8. {getanyapi-0.68.0 → getanyapi-0.70.0}/README.md +0 -0
  9. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_account.py +0 -0
  10. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_async_client.py +0 -0
  11. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_client.py +0 -0
  12. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_errors.py +0 -0
  13. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_idempotency.py +0 -0
  14. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_pagination.py +0 -0
  15. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/_transport.py +0 -0
  16. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/discovery_types.py +0 -0
  17. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/__init__.py +0 -0
  18. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/ahrefs.py +0 -0
  19. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/airbnb.py +0 -0
  20. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/alibaba.py +0 -0
  21. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/amazon.py +0 -0
  22. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/apollo.py +0 -0
  23. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/appstore.py +0 -0
  24. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/bluesky.py +0 -0
  25. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/booking.py +0 -0
  26. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/capterra.py +0 -0
  27. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/chatgpt.py +0 -0
  28. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/coinmarketcap.py +0 -0
  29. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company.py +0 -0
  30. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_enrichment.py +0 -0
  31. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_identify.py +0 -0
  32. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/company_search.py +0 -0
  33. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/congress.py +0 -0
  34. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/contact_enrichment.py +0 -0
  35. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/douyin.py +0 -0
  36. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/ebay.py +0 -0
  37. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email.py +0 -0
  38. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email_finding.py +0 -0
  39. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/email_verification.py +0 -0
  40. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/facebook.py +0 -0
  41. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/fiverr.py +0 -0
  42. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/g2.py +0 -0
  43. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/gemini.py +0 -0
  44. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/github.py +0 -0
  45. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google.py +0 -0
  46. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_ads.py +0 -0
  47. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_finance.py +0 -0
  48. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/google_shopping.py +0 -0
  49. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/hackernews.py +0 -0
  50. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/indeed.py +0 -0
  51. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/instagram.py +0 -0
  52. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/job_search.py +0 -0
  53. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/maps.py +0 -0
  54. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/mobile_phone.py +0 -0
  55. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/naver.py +0 -0
  56. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/nextdoor.py +0 -0
  57. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/people_search.py +0 -0
  58. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/perplexity.py +0 -0
  59. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/person.py +0 -0
  60. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/person_enrichment.py +0 -0
  61. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/pinterest.py +0 -0
  62. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/playstore.py +0 -0
  63. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/polymarket.py +0 -0
  64. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/property_records.py +0 -0
  65. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/realtor.py +0 -0
  66. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/reddit.py +0 -0
  67. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/redfin.py +0 -0
  68. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/rednote.py +0 -0
  69. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/sec.py +0 -0
  70. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/semrush.py +0 -0
  71. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/seo.py +0 -0
  72. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/similarweb.py +0 -0
  73. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/snapchat.py +0 -0
  74. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/social.py +0 -0
  75. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/spotify.py +0 -0
  76. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/substack.py +0 -0
  77. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/technographics.py +0 -0
  78. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/threads.py +0 -0
  79. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tiktok.py +0 -0
  80. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tiktok_shop.py +0 -0
  81. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/tripadvisor.py +0 -0
  82. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/trustpilot.py +0 -0
  83. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/truthsocial.py +0 -0
  84. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/twitter.py +0 -0
  85. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/walmart.py +0 -0
  86. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/web.py +0 -0
  87. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/weibo.py +0 -0
  88. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/yahoo_finance.py +0 -0
  89. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/yelp.py +0 -0
  90. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/youtube.py +0 -0
  91. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/zhihu.py +0 -0
  92. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/platforms/zillow.py +0 -0
  93. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/py.typed +0 -0
  94. {getanyapi-0.68.0 → getanyapi-0.70.0}/src/getanyapi/types.py +0 -0
  95. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/conftest.py +0 -0
  96. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_account.py +0 -0
  97. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_client.py +0 -0
  98. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_durable_requests.py +0 -0
  99. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_envelope.py +0 -0
  100. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_errors.py +0 -0
  101. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_fixture_roundtrip.py +0 -0
  102. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_fixture_sweep.py +0 -0
  103. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_not_found_reason.py +0 -0
  104. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_pagination.py +0 -0
  105. {getanyapi-0.68.0 → getanyapi-0.70.0}/tests/test_transport.py +0 -0
  106. {getanyapi-0.68.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.68.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.68.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.68.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
@@ -136,7 +136,7 @@ class LinkedinCompanyEmployeesInput(TypedDict, total=False):
136
136
  jobTitle: NotRequired[str]
137
137
  """Optional job-title filter supporting boolean operators (e.g. CEO OR CTO)."""
138
138
  limit: NotRequired[int]
139
- """Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less. Range: 1 to 10."""
139
+ """Maximum number of results to return (1-10, default 10). Range: 1 to 10."""
140
140
  preferLatencyUnderMs: NotRequired[int]
141
141
  """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."""
142
142
  requireFields: NotRequired[
@@ -211,6 +211,8 @@ class LinkedinCompanyThinInput(TypedDict, total=False):
211
211
  """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."""
212
212
  preferLatencyUnderMs: NotRequired[int]
213
213
  """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."""
214
+ requireFields: NotRequired[list[Literal["companyType", "coverImage"]]]
215
+ """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 `companyType` or `coverImage`, 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 company page that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge."""
214
216
  source: NotRequired[list[str]]
215
217
  """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`."""
216
218
  url: Required[str]
@@ -629,6 +631,23 @@ class LinkedinSearchPostsFullInput(TypedDict, total=False):
629
631
  """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."""
630
632
  query: Required[str]
631
633
  """LinkedIn post search query, including quoted terms or Boolean operators accepted by LinkedIn search."""
634
+ requireFields: NotRequired[
635
+ list[
636
+ Literal[
637
+ "attachmentDescription",
638
+ "attachmentImage",
639
+ "attachmentSubtitle",
640
+ "attachmentTitle",
641
+ "attachmentType",
642
+ "attachmentUrl",
643
+ "pollClosed",
644
+ "pollOptions",
645
+ "pollQuestion",
646
+ "pollTotalVotes",
647
+ ]
648
+ ]
649
+ ]
650
+ """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 `attachmentType` or `pollOptions`, 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 post that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge."""
632
651
  sort: NotRequired[Literal["relevance", "date"]]
633
652
  """Order results by search relevance or publication date. Default: relevance."""
634
653
  source: NotRequired[list[str]]
@@ -4164,7 +4183,7 @@ class LinkedinNamespace:
4164
4183
  List the employees of a LinkedIn company by name or company URL, with
4165
4184
  optional job-title filtering.
4166
4185
 
4167
- Price: $0.0032 per request plus $0.0048 per result (maximum $0.0512).
4186
+ Price: $0.006 per request.
4168
4187
 
4169
4188
  Example:
4170
4189
  res = client.linkedin.company_employees(company="stripe", limit=3)
@@ -4229,7 +4248,7 @@ class LinkedinNamespace:
4229
4248
  tagline. No follower count, founded year, office locations, or funding data
4230
4249
  - for those use linkedin.company.
4231
4250
 
4232
- Price: $0.0012 per request.
4251
+ Price: $0.001 per request.
4233
4252
 
4234
4253
  Example:
4235
4254
  res = client.linkedin.company_thin(url="https://www.linkedin.com/company/stripe")
@@ -4622,7 +4641,7 @@ class LinkedinNamespace:
4622
4641
  Search public LinkedIn posts with rich author, engagement, attachment, and
4623
4642
  poll details.
4624
4643
 
4625
- Price: $0.005 per request.
4644
+ Price: $0.003 per request.
4626
4645
 
4627
4646
  Example:
4628
4647
  res = client.linkedin.search_posts_full(datePosted="last-week", limit=10, query="artificial intelligence", sort="relevance")
@@ -4858,7 +4877,7 @@ class AsyncLinkedinNamespace:
4858
4877
  List the employees of a LinkedIn company by name or company URL, with
4859
4878
  optional job-title filtering.
4860
4879
 
4861
- Price: $0.0032 per request plus $0.0048 per result (maximum $0.0512).
4880
+ Price: $0.006 per request.
4862
4881
 
4863
4882
  Example:
4864
4883
  res = client.linkedin.company_employees(company="stripe", limit=3)
@@ -4923,7 +4942,7 @@ class AsyncLinkedinNamespace:
4923
4942
  tagline. No follower count, founded year, office locations, or funding data
4924
4943
  - for those use linkedin.company.
4925
4944
 
4926
- Price: $0.0012 per request.
4945
+ Price: $0.001 per request.
4927
4946
 
4928
4947
  Example:
4929
4948
  res = client.linkedin.company_thin(url="https://www.linkedin.com/company/stripe")
@@ -5316,7 +5335,7 @@ class AsyncLinkedinNamespace:
5316
5335
  Search public LinkedIn posts with rich author, engagement, attachment, and
5317
5336
  poll details.
5318
5337
 
5319
- Price: $0.005 per request.
5338
+ Price: $0.003 per request.
5320
5339
 
5321
5340
  Example:
5322
5341
  res = client.linkedin.search_posts_full(datePosted="last-week", limit=10, query="artificial intelligence", sort="relevance")
@@ -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