getanyapi 0.100.2__tar.gz → 0.101.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 (109) hide show
  1. {getanyapi-0.100.2 → getanyapi-0.101.0}/PKG-INFO +1 -1
  2. {getanyapi-0.100.2 → getanyapi-0.101.0}/pyproject.toml +1 -1
  3. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/__init__.py +1 -1
  4. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/apollo.py +21 -21
  5. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/company_enrichment.py +10 -8
  6. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/company_identify.py +1 -1
  7. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/company_search.py +14 -12
  8. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/contact_enrichment.py +3 -3
  9. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/email.py +4 -4
  10. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/email_finding.py +16 -12
  11. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/email_verification.py +22 -18
  12. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/job_search.py +3 -3
  13. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/linkedin.py +15 -1
  14. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/mobile_phone.py +2 -2
  15. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/people_search.py +47 -18
  16. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/person.py +1 -1
  17. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/person_enrichment.py +41 -14
  18. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/property_records.py +3 -3
  19. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/seo.py +15 -1
  20. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/social.py +1 -1
  21. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/technographics.py +1 -1
  22. {getanyapi-0.100.2 → getanyapi-0.101.0}/.gitignore +0 -0
  23. {getanyapi-0.100.2 → getanyapi-0.101.0}/README.md +0 -0
  24. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_account.py +0 -0
  25. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_async_client.py +0 -0
  26. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_client.py +0 -0
  27. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_errors.py +0 -0
  28. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_idempotency.py +0 -0
  29. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_pagination.py +0 -0
  30. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/_transport.py +0 -0
  31. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/discovery_types.py +0 -0
  32. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/__init__.py +0 -0
  33. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/ahrefs.py +0 -0
  34. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/airbnb.py +0 -0
  35. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/alibaba.py +0 -0
  36. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/amazon.py +0 -0
  37. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/appstore.py +0 -0
  38. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/bluesky.py +0 -0
  39. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/booking.py +0 -0
  40. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/capterra.py +0 -0
  41. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/chatgpt.py +0 -0
  42. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/coinmarketcap.py +0 -0
  43. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/company.py +0 -0
  44. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/congress.py +0 -0
  45. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/douyin.py +0 -0
  46. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/ebay.py +0 -0
  47. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/facebook.py +0 -0
  48. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/fiverr.py +0 -0
  49. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/g2.py +0 -0
  50. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/gemini.py +0 -0
  51. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/github.py +0 -0
  52. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/glassdoor.py +0 -0
  53. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/google.py +0 -0
  54. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/google_ads.py +0 -0
  55. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/google_finance.py +0 -0
  56. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/google_hotels.py +0 -0
  57. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/google_shopping.py +0 -0
  58. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/hackernews.py +0 -0
  59. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/indeed.py +0 -0
  60. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/instagram.py +0 -0
  61. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/maps.py +0 -0
  62. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/naver.py +0 -0
  63. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/nextdoor.py +0 -0
  64. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/perplexity.py +0 -0
  65. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/pexels.py +0 -0
  66. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/pinterest.py +0 -0
  67. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/playstore.py +0 -0
  68. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/polymarket.py +0 -0
  69. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/realtor.py +0 -0
  70. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/reddit.py +0 -0
  71. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/redfin.py +0 -0
  72. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/rednote.py +0 -0
  73. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/sec.py +0 -0
  74. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/semrush.py +0 -0
  75. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/similarweb.py +0 -0
  76. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/snapchat.py +0 -0
  77. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/spotify.py +0 -0
  78. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/substack.py +0 -0
  79. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/threads.py +0 -0
  80. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/tiktok.py +0 -0
  81. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/tiktok_shop.py +0 -0
  82. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/tripadvisor.py +0 -0
  83. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/trustpilot.py +0 -0
  84. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/truthsocial.py +0 -0
  85. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/twitter.py +0 -0
  86. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/unsplash.py +0 -0
  87. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/upwork.py +0 -0
  88. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/walmart.py +0 -0
  89. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/web.py +0 -0
  90. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/weibo.py +0 -0
  91. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/yahoo_finance.py +0 -0
  92. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/yelp.py +0 -0
  93. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/youtube.py +0 -0
  94. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/zhihu.py +0 -0
  95. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/platforms/zillow.py +0 -0
  96. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/py.typed +0 -0
  97. {getanyapi-0.100.2 → getanyapi-0.101.0}/src/getanyapi/types.py +0 -0
  98. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/conftest.py +0 -0
  99. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_account.py +0 -0
  100. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_client.py +0 -0
  101. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_durable_requests.py +0 -0
  102. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_envelope.py +0 -0
  103. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_errors.py +0 -0
  104. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_fixture_roundtrip.py +0 -0
  105. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_fixture_sweep.py +0 -0
  106. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_not_found_reason.py +0 -0
  107. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_pagination.py +0 -0
  108. {getanyapi-0.100.2 → getanyapi-0.101.0}/tests/test_transport.py +0 -0
  109. {getanyapi-0.100.2 → getanyapi-0.101.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: getanyapi
3
- Version: 0.100.2
3
+ Version: 0.101.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.100.2"
7
+ version = "0.101.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.100.2"
58
+ __version__ = "0.101.0"
59
59
 
60
60
  __all__ = [
61
61
  # clients + top-level functions
@@ -364,7 +364,7 @@ class ApolloOrganizationData(BaseModel):
364
364
  alias="fundingEvents",
365
365
  description="Funding rounds Apollo records for the organization.",
366
366
  )
367
- id: str = Field(description="Stable organization identifier.")
367
+ id: str | None = Field(description="Stable organization identifier.")
368
368
  image: str | None = Field(default=None, description="Organization logo URL.")
369
369
  industries: list[str] | None = Field(
370
370
  default=None, description="Industries associated with the organization."
@@ -412,7 +412,7 @@ class ApolloOrganizationData(BaseModel):
412
412
  naics_codes: list[str] | None = Field(
413
413
  default=None, alias="naicsCodes", description="NAICS industry codes."
414
414
  )
415
- name: str = Field(description="Organization name.")
415
+ name: str | None = Field(description="Organization name.")
416
416
  org_chart_root_person_ids: list[str] | None = Field(
417
417
  default=None,
418
418
  alias="orgChartRootPersonIds",
@@ -680,7 +680,7 @@ class ApolloOrganizationEnrichData(BaseModel):
680
680
  alias="headcountByRole",
681
681
  description="Employee count per department, keyed by Apollo department name.",
682
682
  )
683
- id: str = Field(description="Stable organization identifier.")
683
+ id: str | None = Field(description="Stable organization identifier.")
684
684
  image: str | None = Field(default=None, description="Organization logo URL.")
685
685
  industries: list[str] | None = Field(
686
686
  default=None, description="Industries associated with the organization."
@@ -728,7 +728,7 @@ class ApolloOrganizationEnrichData(BaseModel):
728
728
  naics_codes: list[str] | None = Field(
729
729
  default=None, alias="naicsCodes", description="NAICS industry codes."
730
730
  )
731
- name: str = Field(description="Organization name.")
731
+ name: str | None = Field(description="Organization name.")
732
732
  org_chart_root_person_ids: list[str] | None = Field(
733
733
  default=None,
734
734
  alias="orgChartRootPersonIds",
@@ -927,7 +927,7 @@ class ApolloOrganizationJobsJob(BaseModel):
927
927
 
928
928
  city: str | None = Field(default=None, description="Job city.")
929
929
  country: str | None = Field(default=None, description="Job country.")
930
- id: str = Field(description="Stable job posting identifier.")
930
+ id: str | None = Field(description="Stable job posting identifier.")
931
931
  last_seen_utc: float | None = Field(
932
932
  default=None,
933
933
  alias="lastSeenUtc",
@@ -939,8 +939,8 @@ class ApolloOrganizationJobsJob(BaseModel):
939
939
  description="UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.",
940
940
  )
941
941
  state: str | None = Field(default=None, description="Job state or region.")
942
- title: str = Field(description="Job title.")
943
- url: str = Field(description="Canonical job posting URL.")
942
+ title: str | None = Field(description="Job title.")
943
+ url: str | None = Field(description="Canonical job posting URL.")
944
944
 
945
945
 
946
946
  class ApolloOrganizationNewsData(BaseModel):
@@ -966,7 +966,7 @@ class ApolloOrganizationNewsArticle(BaseModel):
966
966
  alias="eventCategories",
967
967
  description="Detected business event categories.",
968
968
  )
969
- id: str = Field(description="Stable article identifier.")
969
+ id: str | None = Field(description="Stable article identifier.")
970
970
  organization_ids: list[str] | None = Field(
971
971
  default=None,
972
972
  alias="organizationIds",
@@ -978,8 +978,8 @@ class ApolloOrganizationNewsArticle(BaseModel):
978
978
  description="UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.",
979
979
  )
980
980
  snippet: str | None = Field(default=None, description="Article summary or excerpt.")
981
- title: str = Field(description="Article title.")
982
- url: str = Field(description="Canonical article URL.")
981
+ title: str | None = Field(description="Article title.")
982
+ url: str | None = Field(description="Canonical article URL.")
983
983
 
984
984
 
985
985
  class ApolloOrganizationsBulkEnrichData(BaseModel):
@@ -1055,7 +1055,7 @@ class ApolloOrganizationsBulkEnrichOrganization(BaseModel):
1055
1055
  alias="headcountByRole",
1056
1056
  description="Employee count per department, keyed by Apollo department name.",
1057
1057
  )
1058
- id: str = Field(description="Stable organization identifier.")
1058
+ id: str | None = Field(description="Stable organization identifier.")
1059
1059
  image: str | None = Field(default=None, description="Organization logo URL.")
1060
1060
  industries: list[str] | None = Field(
1061
1061
  default=None, description="Industries associated with the organization."
@@ -1103,7 +1103,7 @@ class ApolloOrganizationsBulkEnrichOrganization(BaseModel):
1103
1103
  naics_codes: list[str] | None = Field(
1104
1104
  default=None, alias="naicsCodes", description="NAICS industry codes."
1105
1105
  )
1106
- name: str = Field(description="Organization name.")
1106
+ name: str | None = Field(description="Organization name.")
1107
1107
  ownership_chain_ids: list[str] | None = Field(
1108
1108
  default=None,
1109
1109
  alias="ownershipChainIds",
@@ -1338,7 +1338,7 @@ class ApolloOrganizationsSearchOrganization(BaseModel):
1338
1338
  alias="foundedYear",
1339
1339
  description="Year the organization was founded.",
1340
1340
  )
1341
- id: str = Field(description="Stable organization identifier.")
1341
+ id: str | None = Field(description="Stable organization identifier.")
1342
1342
  image: str | None = Field(default=None, description="Organization logo URL.")
1343
1343
  languages: list[str] | None = Field(
1344
1344
  default=None, description="Languages the organization operates in."
@@ -1354,7 +1354,7 @@ class ApolloOrganizationsSearchOrganization(BaseModel):
1354
1354
  naics_codes: list[str] | None = Field(
1355
1355
  default=None, alias="naicsCodes", description="NAICS industry codes."
1356
1356
  )
1357
- name: str = Field(description="Organization name.")
1357
+ name: str | None = Field(description="Organization name.")
1358
1358
  ownership_chain_ids: list[str] | None = Field(
1359
1359
  default=None,
1360
1360
  alias="ownershipChainIds",
@@ -1437,7 +1437,7 @@ class ApolloPeopleSearchData(BaseModel):
1437
1437
  class ApolloPeopleSearchPeople(BaseModel):
1438
1438
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1439
1439
 
1440
- first_name: str = Field(alias="firstName", description="Person first name.")
1440
+ first_name: str | None = Field(alias="firstName", description="Person first name.")
1441
1441
  has_city: bool | None = Field(
1442
1442
  default=None,
1443
1443
  alias="hasCity",
@@ -1463,7 +1463,7 @@ class ApolloPeopleSearchPeople(BaseModel):
1463
1463
  alias="hasState",
1464
1464
  description="Whether state or region data is available through enrichment.",
1465
1465
  )
1466
- id: str = Field(description="Stable person identifier.")
1466
+ id: str | None = Field(description="Stable person identifier.")
1467
1467
  last_name_initial: str | None = Field(
1468
1468
  default=None,
1469
1469
  alias="lastNameInitial",
@@ -1561,7 +1561,7 @@ class ApolloPersonEnrichData(BaseModel):
1561
1561
  facebook_url: str | None = Field(
1562
1562
  default=None, alias="facebookUrl", description="Canonical Facebook profile URL."
1563
1563
  )
1564
- first_name: str = Field(alias="firstName", description="Person first name.")
1564
+ first_name: str | None = Field(alias="firstName", description="Person first name.")
1565
1565
  functions: list[str] | None = Field(
1566
1566
  default=None, description="Current business functions."
1567
1567
  )
@@ -1569,13 +1569,13 @@ class ApolloPersonEnrichData(BaseModel):
1569
1569
  default=None, alias="githubUrl", description="Canonical GitHub profile URL."
1570
1570
  )
1571
1571
  headline: str | None = Field(default=None, description="Professional headline.")
1572
- id: str = Field(description="Stable person identifier.")
1572
+ id: str | None = Field(description="Stable person identifier.")
1573
1573
  image: str | None = Field(default=None, description="Profile image URL.")
1574
- last_name: str = Field(alias="lastName", description="Person last name.")
1574
+ last_name: str | None = Field(alias="lastName", description="Person last name.")
1575
1575
  linkedin_url: str | None = Field(
1576
1576
  default=None, alias="linkedinUrl", description="Canonical LinkedIn profile URL."
1577
1577
  )
1578
- name: str = Field(description="Full person name.")
1578
+ name: str | None = Field(description="Full person name.")
1579
1579
  organization: ApolloPersonEnrichOrganization | None = Field(
1580
1580
  default=None, description="Current organization summary."
1581
1581
  )
@@ -1624,7 +1624,7 @@ class ApolloPersonEnrichEmploymentHistory(BaseModel):
1624
1624
  alias="endUtc",
1625
1625
  description="UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.",
1626
1626
  )
1627
- id: str = Field(description="Stable employment record identifier.")
1627
+ id: str | None = Field(description="Stable employment record identifier.")
1628
1628
  organization_id: str | None = Field(
1629
1629
  default=None, alias="organizationId", description="Organization identifier."
1630
1630
  )
@@ -907,7 +907,7 @@ class CompanyEnrichmentLushaData(BaseModel):
907
907
  alias="naicsCodes",
908
908
  description="NAICS classification codes for the company.",
909
909
  )
910
- name: str = Field(description="Company name.")
910
+ name: str | None = Field(description="Company name.")
911
911
  offices: list[CompanyEnrichmentLushaOffice] | None = Field(
912
912
  default=None, description="Every office location Lusha holds for the company."
913
913
  )
@@ -968,7 +968,7 @@ class CompanyEnrichmentLushaLocation(BaseModel):
968
968
  class CompanyEnrichmentLushaNaicsCode(BaseModel):
969
969
  model_config = ConfigDict(extra="allow")
970
970
 
971
- code: str = Field(description="NAICS code.")
971
+ code: str | None = Field(description="NAICS code.")
972
972
  description: str | None = Field(
973
973
  default=None, description="What the NAICS code covers."
974
974
  )
@@ -999,7 +999,7 @@ class CompanyEnrichmentLushaOffice(BaseModel):
999
999
  class CompanyEnrichmentLushaSicCode(BaseModel):
1000
1000
  model_config = ConfigDict(extra="allow")
1001
1001
 
1002
- code: str = Field(description="SIC code.")
1002
+ code: str | None = Field(description="SIC code.")
1003
1003
  description: str | None = Field(
1004
1004
  default=None, description="What the SIC code covers."
1005
1005
  )
@@ -1008,7 +1008,7 @@ class CompanyEnrichmentLushaSicCode(BaseModel):
1008
1008
  class CompanyEnrichmentPeopledatalabsData(BaseModel):
1009
1009
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1010
1010
 
1011
- affiliated_entities: list[str] | None = Field(
1011
+ affiliated_entities: list[str | None] | None = Field(
1012
1012
  default=None,
1013
1013
  alias="affiliatedEntities",
1014
1014
  description="People Data Labs company ids of affiliated entities.",
@@ -1249,7 +1249,9 @@ class CompanyEnrichmentPeopledatalabsData(BaseModel):
1249
1249
  alias="naicsCodes",
1250
1250
  description="NAICS classification for the company.",
1251
1251
  )
1252
- name: str = Field(description="Company name as People Data Labs displays it.")
1252
+ name: str | None = Field(
1253
+ description="Company name as People Data Labs displays it."
1254
+ )
1253
1255
  name_normalized: str | None = Field(
1254
1256
  default=None,
1255
1257
  alias="nameNormalized",
@@ -1392,7 +1394,7 @@ class CompanyEnrichmentPeopledatalabsMedianTenureByRole(BaseModel):
1392
1394
  class CompanyEnrichmentPeopledatalabsNaicsCode(BaseModel):
1393
1395
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1394
1396
 
1395
- code: str = Field(description="NAICS code.")
1397
+ code: str | None = Field(description="NAICS code.")
1396
1398
  industry_group: str | None = Field(
1397
1399
  default=None, alias="industryGroup", description="NAICS industry group."
1398
1400
  )
@@ -1411,7 +1413,7 @@ class CompanyEnrichmentPeopledatalabsNaicsCode(BaseModel):
1411
1413
  class CompanyEnrichmentPeopledatalabsSicCode(BaseModel):
1412
1414
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1413
1415
 
1414
- code: str = Field(description="SIC code.")
1416
+ code: str | None = Field(description="SIC code.")
1415
1417
  industry_group: str | None = Field(
1416
1418
  default=None, alias="industryGroup", description="SIC industry group."
1417
1419
  )
@@ -1514,7 +1516,7 @@ class CompanyEnrichmentProspeoData(BaseModel):
1514
1516
  alias="naicsCodes",
1515
1517
  description="NAICS classification codes for the company.",
1516
1518
  )
1517
- name: str = Field(description="Company name.")
1519
+ name: str | None = Field(description="Company name.")
1518
1520
  other_websites: list[str] | None = Field(
1519
1521
  default=None,
1520
1522
  alias="otherWebsites",
@@ -41,7 +41,7 @@ class CompanyIdentifyCrustdataV3Input(TypedDict, total=False):
41
41
  class CompanyIdentifyCrustdataV3Data(BaseModel):
42
42
  model_config = ConfigDict(extra="allow", populate_by_name=True)
43
43
 
44
- company_id: str = Field(
44
+ company_id: str | None = Field(
45
45
  alias="companyId",
46
46
  description="Crustdata company id. Send it as companyId to identify the same company again.",
47
47
  )
@@ -525,7 +525,7 @@ class CompanySearchAiArkCompanie(BaseModel):
525
525
  naics: list[str] | None = Field(
526
526
  default=None, description="NAICS codes for the company."
527
527
  )
528
- name: str = Field(description="Company name.")
528
+ name: str | None = Field(description="Company name.")
529
529
  overview: str | None = Field(
530
530
  default=None,
531
531
  description="Longer company overview written by the source. Overlaps description but is a separately maintained blurb and is often longer or more current.",
@@ -876,7 +876,7 @@ class CompanySearchCrustdataCompanie(BaseModel):
876
876
  default=None,
877
877
  description="Markets the company trades in, e.g. PRIVATE or NASDAQ.",
878
878
  )
879
- name: str = Field(description="Company name.")
879
+ name: str | None = Field(description="Company name.")
880
880
  office_addresses: Any | None = Field(
881
881
  default=None,
882
882
  alias="officeAddresses",
@@ -1176,7 +1176,7 @@ class CompanySearchCrustdataV3Companie(BaseModel):
1176
1176
  default=None,
1177
1177
  description="Markets the company trades in, e.g. PRIVATE or NASDAQ.",
1178
1178
  )
1179
- name: str = Field(description="Company name.")
1179
+ name: str | None = Field(description="Company name.")
1180
1180
  office_addresses: Any | None = Field(
1181
1181
  default=None,
1182
1182
  alias="officeAddresses",
@@ -1379,7 +1379,7 @@ class CompanySearchFullenrichCompanie(BaseModel):
1379
1379
  linkedin_url: str | None = Field(
1380
1380
  default=None, alias="linkedinUrl", description="Company LinkedIn page URL."
1381
1381
  )
1382
- name: str = Field(description="Company name.")
1382
+ name: str | None = Field(description="Company name.")
1383
1383
  offices: list[CompanySearchFullenrichOffice] | None = Field(
1384
1384
  default=None, description="Every other office FullEnrich holds for the company."
1385
1385
  )
@@ -1437,7 +1437,7 @@ class CompanySearchPeopledatalabsData(BaseModel):
1437
1437
  class CompanySearchPeopledatalabsCompanie(BaseModel):
1438
1438
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1439
1439
 
1440
- affiliated_entities: list[str] | None = Field(
1440
+ affiliated_entities: list[str | None] | None = Field(
1441
1441
  default=None,
1442
1442
  alias="affiliatedEntities",
1443
1443
  description="People Data Labs company ids of affiliated entities.",
@@ -1663,7 +1663,9 @@ class CompanySearchPeopledatalabsCompanie(BaseModel):
1663
1663
  alias="naicsCodes",
1664
1664
  description="NAICS classification for the company.",
1665
1665
  )
1666
- name: str = Field(description="Company name as People Data Labs displays it.")
1666
+ name: str | None = Field(
1667
+ description="Company name as People Data Labs displays it."
1668
+ )
1667
1669
  name_normalized: str | None = Field(
1668
1670
  default=None,
1669
1671
  alias="nameNormalized",
@@ -1806,7 +1808,7 @@ class CompanySearchPeopledatalabsMedianTenureByRole(BaseModel):
1806
1808
  class CompanySearchPeopledatalabsNaicsCode(BaseModel):
1807
1809
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1808
1810
 
1809
- code: str = Field(description="NAICS code.")
1811
+ code: str | None = Field(description="NAICS code.")
1810
1812
  industry_group: str | None = Field(
1811
1813
  default=None, alias="industryGroup", description="NAICS industry group."
1812
1814
  )
@@ -1825,7 +1827,7 @@ class CompanySearchPeopledatalabsNaicsCode(BaseModel):
1825
1827
  class CompanySearchPeopledatalabsSicCode(BaseModel):
1826
1828
  model_config = ConfigDict(extra="allow", populate_by_name=True)
1827
1829
 
1828
- code: str = Field(description="SIC code.")
1830
+ code: str | None = Field(description="SIC code.")
1829
1831
  industry_group: str | None = Field(
1830
1832
  default=None, alias="industryGroup", description="SIC industry group."
1831
1833
  )
@@ -1951,7 +1953,7 @@ class CompanySearchProspeoCompanie(BaseModel):
1951
1953
  alias="naicsCodes",
1952
1954
  description="NAICS classification codes for the company.",
1953
1955
  )
1954
- name: str = Field(description="Company name.")
1956
+ name: str | None = Field(description="Company name.")
1955
1957
  other_websites: list[str] | None = Field(
1956
1958
  default=None,
1957
1959
  alias="otherWebsites",
@@ -2193,7 +2195,7 @@ class CompanySearchQuickenrichCompanie(BaseModel):
2193
2195
  linkedin_url: str | None = Field(
2194
2196
  default=None, alias="linkedinUrl", description="Person's LinkedIn profile URL."
2195
2197
  )
2196
- name: str = Field(description="Company name.")
2198
+ name: str | None = Field(description="Company name.")
2197
2199
  phone: str | None = Field(
2198
2200
  default=None,
2199
2201
  description="Direct business phone line held for the person. Mostly desk lines; read phoneType before treating it as a mobile.",
@@ -2354,7 +2356,7 @@ class CompanySearchTheirstackCompanie(BaseModel):
2354
2356
  alias="longDescription",
2355
2357
  description="Company description as the company writes it.",
2356
2358
  )
2357
- name: str = Field(description="Company name.")
2359
+ name: str | None = Field(description="Company name.")
2358
2360
  num_buying_intent_topics: int | None = Field(
2359
2361
  default=None,
2360
2362
  alias="numBuyingIntentTopics",
@@ -2483,7 +2485,7 @@ class CompanySearchTheirstackTechnologiesFound(BaseModel):
2483
2485
  alias="lastFoundUtc",
2484
2486
  description="UTC epoch timestamp in seconds (Unix time) the technology was last seen. Multiply by 1000 for a JS Date in milliseconds.",
2485
2487
  )
2486
- name: str = Field(description="Technology name.")
2488
+ name: str | None = Field(description="Technology name.")
2487
2489
  parent_category: str | None = Field(
2488
2490
  default=None, alias="parentCategory", description="Parent category."
2489
2491
  )
@@ -43,7 +43,7 @@ class ContactEnrichmentCrustdataV3Data(BaseModel):
43
43
  alias="matchConfidence",
44
44
  description="Confidence from 0 to 1 that the returned person is the one asked for.",
45
45
  )
46
- person_id: str = Field(alias="personId", description="Crustdata person id.")
46
+ person_id: str | None = Field(alias="personId", description="Crustdata person id.")
47
47
  personal_emails: list[ContactEnrichmentCrustdataV3PersonalEmail] | None = Field(
48
48
  default=None, alias="personalEmails", description="Personal email addresses."
49
49
  )
@@ -57,7 +57,7 @@ class ContactEnrichmentCrustdataV3Data(BaseModel):
57
57
  class ContactEnrichmentCrustdataV3BusinessEmail(BaseModel):
58
58
  model_config = ConfigDict(extra="allow")
59
59
 
60
- email: str = Field(description="Email address.")
60
+ email: str | None = Field(description="Email address.")
61
61
  status: str | None = Field(
62
62
  default=None, description="Deliverability status, e.g. deliverable or unknown."
63
63
  )
@@ -66,7 +66,7 @@ class ContactEnrichmentCrustdataV3BusinessEmail(BaseModel):
66
66
  class ContactEnrichmentCrustdataV3PersonalEmail(BaseModel):
67
67
  model_config = ConfigDict(extra="allow")
68
68
 
69
- email: str = Field(description="Email address.")
69
+ email: str | None = Field(description="Email address.")
70
70
  status: str | None = Field(
71
71
  default=None, description="Deliverability status, e.g. deliverable or unknown."
72
72
  )
@@ -56,10 +56,10 @@ class EmailFindData(BaseModel):
56
56
  class EmailFindItem(BaseModel):
57
57
  model_config = ConfigDict(extra="allow")
58
58
 
59
- email: str = Field(
59
+ email: str | None = Field(
60
60
  description="The discovered work email address. Populated whenever the provider has data for the entity."
61
61
  )
62
- status: str = Field(
62
+ status: str | None = Field(
63
63
  description='Lookup status. Always "found": a lookup that finds nothing returns found:false with a null data instead of an item, and is not charged. Populated whenever the provider has data for the entity.'
64
64
  )
65
65
 
@@ -78,7 +78,7 @@ class EmailVerifyItem(BaseModel):
78
78
  )
79
79
  disposable: bool | None = None
80
80
  domain: str | None = None
81
- email: str = Field(
81
+ email: str | None = Field(
82
82
  description="Populated whenever the provider has data for the entity."
83
83
  )
84
84
  free: bool | None = Field(default=None, description="Free email provider.")
@@ -103,7 +103,7 @@ class EmailVerifyItem(BaseModel):
103
103
  default=None,
104
104
  description="Confidence in the verdict, 0-100. Coarse rather than graded on most calls: it tracks the status rather than ranking addresses within one.",
105
105
  )
106
- status: str = Field(
106
+ status: str | None = Field(
107
107
  description="Deliverability verdict: good (the mailbox accepted), bad (it was refused), or risky (no source could settle it - usually a catch-all domain that accepts every address, sometimes a receiving server that declined to answer at all). Populated whenever the provider has data for the entity."
108
108
  )
109
109
 
@@ -184,7 +184,7 @@ class EmailFindingDropleadsData(BaseModel):
184
184
  company_size: Any | None = Field(
185
185
  default=None, alias="companySize", description="Company size when available."
186
186
  )
187
- email: str = Field(description="Matched email address.")
187
+ email: str | None = Field(description="Matched email address.")
188
188
  first_name: str | None = Field(
189
189
  default=None, alias="firstName", description="Matched first name."
190
190
  )
@@ -200,7 +200,9 @@ class EmailFindingDropleadsData(BaseModel):
200
200
  mx_record: str | None = Field(
201
201
  default=None, alias="mxRecord", description="Selected mail exchange record."
202
202
  )
203
- status: str = Field(description="Source validation status for the matched email.")
203
+ status: str | None = Field(
204
+ description="Source validation status for the matched email."
205
+ )
204
206
 
205
207
 
206
208
  class EmailFindingHunterCountData(BaseModel):
@@ -209,7 +211,7 @@ class EmailFindingHunterCountData(BaseModel):
209
211
  department_counts: EmailFindingHunterCountDepartmentCount | None = Field(
210
212
  default=None, alias="departmentCounts", description="Contacts per department."
211
213
  )
212
- domain: str = Field(description="The company domain the counts describe.")
214
+ domain: str | None = Field(description="The company domain the counts describe.")
213
215
  generic_emails: int | None = Field(
214
216
  default=None,
215
217
  alias="genericEmails",
@@ -225,7 +227,7 @@ class EmailFindingHunterCountData(BaseModel):
225
227
  alias="seniorityCounts",
226
228
  description="Contacts per seniority level.",
227
229
  )
228
- total: int = Field(description="Contacts known for the domain. Minimum: 0.")
230
+ total: int | None = Field(description="Contacts known for the domain. Minimum: 0.")
229
231
  type_: str | None = Field(
230
232
  default=None,
231
233
  alias="type",
@@ -369,7 +371,7 @@ class EmailFindingHunterDomainEmail(BaseModel):
369
371
  department: str | None = Field(
370
372
  default=None, description="Department the contact works in."
371
373
  )
372
- email: str = Field(description="The work email address.")
374
+ email: str | None = Field(description="The work email address.")
373
375
  first_name: str | None = Field(
374
376
  default=None, alias="firstName", description="Contact's first name."
375
377
  )
@@ -421,7 +423,9 @@ class EmailFindingHunterDomainEmail(BaseModel):
421
423
  class EmailFindingHunterDomainSource(BaseModel):
422
424
  model_config = ConfigDict(extra="allow", populate_by_name=True)
423
425
 
424
- domain: str = Field(description="Domain of the page the address was found on.")
426
+ domain: str | None = Field(
427
+ description="Domain of the page the address was found on."
428
+ )
425
429
  extracted_utc: float | None = Field(
426
430
  default=None,
427
431
  alias="extractedUtc",
@@ -454,7 +458,7 @@ class EmailFindingIcypeasData(BaseModel):
454
458
  alias="createdUtc",
455
459
  description="UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.",
456
460
  )
457
- email: str = Field(description="Best matching email address.")
461
+ email: str | None = Field(description="Best matching email address.")
458
462
  emails: list[EmailFindingIcypeasEmail] | None = Field(
459
463
  default=None,
460
464
  description="Every candidate address found for the person, best first. The top-level email is the first entry.",
@@ -579,7 +583,7 @@ class EmailFindingQuickenrichData(BaseModel):
579
583
  default=None,
580
584
  description="ISO 3166-1 alpha-2 country code on the employer record.",
581
585
  )
582
- email: str = Field(description="Work email address.")
586
+ email: str | None = Field(description="Work email address.")
583
587
  email_domain: str | None = Field(
584
588
  default=None,
585
589
  alias="emailDomain",
@@ -639,7 +643,7 @@ class EmailFindingZerobounceData(BaseModel):
639
643
  domain: str | None = Field(
640
644
  default=None, description="Domain the address belongs to."
641
645
  )
642
- email: str = Field(description="The email address ZeroBounce found.")
646
+ email: str | None = Field(description="The email address ZeroBounce found.")
643
647
  failure_reason: str | None = Field(
644
648
  default=None,
645
649
  alias="failureReason",
@@ -663,13 +667,13 @@ class EmailFindingZerobounceDomainData(BaseModel):
663
667
  alias="didYouMean",
664
668
  description="Corrected domain when ZeroBounce spots a likely typo.",
665
669
  )
666
- domain: str = Field(description="The domain that was inspected.")
670
+ domain: str | None = Field(description="The domain that was inspected.")
667
671
  failure_reason: str | None = Field(
668
672
  default=None,
669
673
  alias="failureReason",
670
674
  description="Why ZeroBounce could not answer with more confidence.",
671
675
  )
672
- format: str = Field(
676
+ format: str | None = Field(
673
677
  description="The address format ZeroBounce is most confident the domain uses, e.g. first.last or flast."
674
678
  )
675
679
  other_formats: list[EmailFindingZerobounceDomainOtherFormat] | None = Field(
@@ -685,7 +689,7 @@ class EmailFindingZerobounceDomainOtherFormat(BaseModel):
685
689
  confidence: str | None = Field(
686
690
  default=None, description="Confidence in that format: high, medium or low."
687
691
  )
688
- format: str = Field(description="Address format, e.g. last.first.")
692
+ format: str | None = Field(description="Address format, e.g. last.first.")
689
693
 
690
694
 
691
695
  class EmailFindingNamespace:
@@ -101,7 +101,7 @@ class EmailVerificationAllegrowData(BaseModel):
101
101
  description="The Allegrow dataset's own verdict field, returned verbatim as the source spells it (safe in the captured response). It duplicates status in the same response and is not remapped into the good/risky/bad vocabulary email.verify uses.",
102
102
  )
103
103
  domain: str | None = Field(default=None, description="Email domain.")
104
- email: str = Field(description="Validated email address.")
104
+ email: str | None = Field(description="Validated email address.")
105
105
  is_catch_all: bool | None = Field(
106
106
  default=None,
107
107
  alias="isCatchAll",
@@ -125,16 +125,20 @@ class EmailVerificationAllegrowData(BaseModel):
125
125
  alias="providerRequestId",
126
126
  description="The source's own identifier for this validation, surfaced so a result can be traced back to the record the source created.",
127
127
  )
128
- status: Literal[
129
- "safe",
130
- "do_not_mail_abuse",
131
- "some_risk",
132
- "block_bounce_risk",
133
- "dead_email",
134
- "spamtrap",
135
- "more_time_required",
136
- "missing_email",
137
- ] = Field(
128
+ status: (
129
+ Literal[
130
+ "safe",
131
+ "do_not_mail_abuse",
132
+ "some_risk",
133
+ "block_bounce_risk",
134
+ "dead_email",
135
+ "spamtrap",
136
+ "more_time_required",
137
+ "missing_email",
138
+ "null",
139
+ ]
140
+ | None
141
+ ) = Field(
138
142
  description="Deliverability verdict; negative verdicts are successful billable results."
139
143
  )
140
144
  sub_status: str | None = Field(
@@ -152,7 +156,7 @@ class EmailVerificationAllegrowData(BaseModel):
152
156
  class EmailVerificationBouncebanData(BaseModel):
153
157
  model_config = ConfigDict(extra="allow", populate_by_name=True)
154
158
 
155
- email: str
159
+ email: str | None
156
160
  is_catch_all: bool | None = Field(default=None, alias="isCatchAll")
157
161
  is_disposable: bool | None = Field(default=None, alias="isDisposable")
158
162
  is_free: bool | None = Field(default=None, alias="isFree")
@@ -160,7 +164,7 @@ class EmailVerificationBouncebanData(BaseModel):
160
164
  mode: str | None = None
161
165
  mx_records: list[str] | None = Field(default=None, alias="mxRecords")
162
166
  reason: str | None = None
163
- result: str = Field(
167
+ result: str | None = Field(
164
168
  description="Deliverability verdict; negative verdicts are successful results."
165
169
  )
166
170
  score: float | None = None
@@ -249,7 +253,7 @@ class EmailVerificationIcypeasData(BaseModel):
249
253
  alias="scanUser",
250
254
  description="The source's own identifier for the account that ran the scan.",
251
255
  )
252
- status: str = Field(
256
+ status: str | None = Field(
253
257
  description="Scan outcome for the address, returned verbatim as the source spells it (FOUND in the captured response; the scan also reports NOT_FOUND). This is not the good/risky/bad vocabulary used by email.verify."
254
258
  )
255
259
 
@@ -282,7 +286,7 @@ class EmailVerificationZerobounceData(BaseModel):
282
286
  alias="domainAgeDays",
283
287
  description="How long the domain has been registered, in days.",
284
288
  )
285
- email: str = Field(description="The address that was validated.")
289
+ email: str | None = Field(description="The address that was validated.")
286
290
  first_name: str | None = Field(
287
291
  default=None,
288
292
  alias="firstName",
@@ -322,7 +326,7 @@ class EmailVerificationZerobounceData(BaseModel):
322
326
  alias="smtpProvider",
323
327
  description="Mailbox provider behind the domain, e.g. g-suite.",
324
328
  )
325
- status: str = Field(
329
+ status: str | None = Field(
326
330
  description="Deliverability verdict: valid, invalid, catch-all, unknown, spamtrap, abuse or do_not_mail."
327
331
  )
328
332
  sub_status: str | None = Field(
@@ -343,13 +347,13 @@ class EmailVerificationZerobounceActivityData(BaseModel):
343
347
  alias="activeInDays",
344
348
  description="How recently the address was active, in days. ZeroBounce buckets this rather than giving an exact figure.",
345
349
  )
346
- email: str = Field(description="The address that was checked.")
350
+ email: str | None = Field(description="The address that was checked.")
347
351
  first_seen_utc: float | None = Field(
348
352
  default=None,
349
353
  alias="firstSeenUtc",
350
354
  description="UTC epoch timestamp in seconds (Unix time) ZeroBounce first saw activity from the address. Multiply by 1000 for a JS Date in milliseconds.",
351
355
  )
352
- has_activity: bool = Field(
356
+ has_activity: bool | None = Field(
353
357
  alias="hasActivity",
354
358
  description="True when ZeroBounce has seen engagement from this address.",
355
359
  )