Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## v1.28.0-sdk.1

- Regenerated from the public API contract (848 to 849 operations), adding
Facebook public page lookup.
- Jobs company search now accepts `sponsors_visa`; company detail responses can
include recent public LCA filing evidence. Job response types also include the
latest skills, AI-tool, benefits, education, and security-clearance fields.

## v1.27.0-sdk.1

- Regenerated from the public API contract (837 to 848 operations). Adds public
Expand Down
2 changes: 1 addition & 1 deletion crawlora/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from .operations import GROUPS, OPERATIONS

DEFAULT_BASE_URL = "https://api.crawlora.net/api/v1"
VERSION = "1.27.0-sdk.1"
VERSION = "1.28.0-sdk.1"
DEFAULT_USER_AGENT = f"crawlora-python-sdk/{VERSION}"
DEFAULT_MAX_RETRY_DELAY = 30.0
DEFAULT_RETRY_STATUSES = (408, 409, 425, 429)
Expand Down
83 changes: 80 additions & 3 deletions crawlora/client.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -6000,10 +6000,15 @@ ModelEsInstagramUserRecord = TypedDict('ModelEsInstagramUserRecord', {
}, total=False)

ModelEsJobPostingFacets = TypedDict('ModelEsJobPostingFacets', {
'by_ai_tool': NotRequired[list[ModelEsFacetItem]],
'by_benefit': NotRequired[list[ModelEsFacetItem]],
'by_department': NotRequired[list[ModelEsFacetItem]],
'by_education_level': NotRequired[list[ModelEsFacetItem]],
'by_employment_type': NotRequired[list[ModelEsFacetItem]],
'by_location': NotRequired[list[ModelEsFacetItem]],
'by_provider': NotRequired[list[ModelEsFacetItem]],
'by_security_clearance': NotRequired[list[ModelEsFacetItem]],
'by_skill': NotRequired[list[ModelEsFacetItem]],
'remote_open': NotRequired[int],
'top_companies': NotRequired[list[ModelEsFacetItem]],
'total_open': NotRequired[int],
Expand Down Expand Up @@ -7163,6 +7168,35 @@ ModelExtractResponseDoc = TypedDict('ModelExtractResponseDoc', {
'msg': NotRequired[str],
}, total=False)

ModelFacebookPage = TypedDict('ModelFacebookPage', {
'address': NotRequired[str],
'category': NotRequired[str],
'company': NotRequired[str],
'email': NotRequired[str],
'emails': NotRequired[list[str]],
'hours': NotRequired[str],
'intro': NotRequired[str],
'latestPostAt': NotRequired[str],
'og': NotRequired[dict[str, Any]],
'pageId': NotRequired[str],
'phones': NotRequired[list[str]],
'priceRange': NotRequired[str],
'reviewCount': NotRequired[int],
'sourceUrl': NotRequired[str],
'stats': NotRequired[dict[str, Any]],
'talking': NotRequired[int],
'title': NotRequired[str],
'website': NotRequired[str],
'wereHere': NotRequired[int],
'whatsapp': NotRequired[str],
}, total=False)

ModelFacebookPageResponseDoc = TypedDict('ModelFacebookPageResponseDoc', {
'code': NotRequired[int],
'data': NotRequired[ModelFacebookPage],
'msg': NotRequired[str],
}, total=False)

ModelFinanceAbout = TypedDict('ModelFinanceAbout', {
'about': NotRequired[str],
'ceo': NotRequired[str],
Expand Down Expand Up @@ -8976,7 +9010,9 @@ ModelJobsHiringSignals = TypedDict('ModelJobsHiringSignals', {
}, total=False)

ModelJobsJob = TypedDict('ModelJobsJob', {
'ai_tools_mentioned': NotRequired[list[str]],
'apply_url': NotRequired[str],
'benefits_mentioned': NotRequired[list[str]],
'company': NotRequired[str],
'company_logo_url': NotRequired[str],
'compensation': NotRequired[str],
Expand All @@ -8987,6 +9023,7 @@ ModelJobsJob = TypedDict('ModelJobsJob', {
'department': NotRequired[str],
'description_html': NotRequired[str],
'description_text': NotRequired[str],
'education_level_required': NotRequired[list[str]],
'employment_type': NotRequired[str],
'id': NotRequired[str],
'location': NotRequired[str],
Expand All @@ -8999,6 +9036,8 @@ ModelJobsJob = TypedDict('ModelJobsJob', {
'provider': NotRequired[str],
'remote': NotRequired[bool],
'req_id': NotRequired[str],
'security_clearance_required': NotRequired[list[str]],
'skills_mentioned': NotRequired[list[str]],
'team': NotRequired[str],
'title': NotRequired[str],
'url': NotRequired[str],
Expand Down Expand Up @@ -21757,9 +21796,10 @@ DatasetsJobsCompaniesParams = TypedDict('DatasetsJobsCompaniesParams', {
'_timeout': NotRequired[float],
'_headers': NotRequired[Mapping[str, str]],
'q': NotRequired[str],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint']],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint', 'amazon-jobs', 'apple-jobs', 'google-jobs', 'meta-jobs', 'tesla-jobs']],
'status': NotRequired[Literal['active', 'empty', 'gone', 'blocked', 'pending', 'invalid']],
'min_open_roles': NotRequired[int],
'sponsors_visa': NotRequired[bool],
'sort': NotRequired[Literal['open_desc', 'company_asc', 'crawled_desc']],
'page': NotRequired[int],
'page_size': NotRequired[int],
Expand Down Expand Up @@ -21797,7 +21837,7 @@ DatasetsJobsNearbyParams = TypedDict('DatasetsJobsNearbyParams', {
'lat': Required[float],
'lon': Required[float],
'radius_km': NotRequired[float],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint']],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint', 'amazon-jobs', 'apple-jobs', 'google-jobs', 'meta-jobs', 'tesla-jobs']],
'include_closed': NotRequired[bool],
'page': NotRequired[int],
'page_size': NotRequired[int],
Expand All @@ -21810,7 +21850,7 @@ DatasetsJobsSearchParams = TypedDict('DatasetsJobsSearchParams', {
'_headers': NotRequired[Mapping[str, str]],
'q': NotRequired[str],
'company': NotRequired[str],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint']],
'provider': NotRequired[Literal['greenhouse', 'lever', 'ashby', 'workday', 'smartrecruiters', 'workable', 'recruitee', 'rippling', 'personio', 'teamtailor', 'oracle', 'ukg', 'icims', 'eightfold', 'gem', 'pinpoint', 'amazon-jobs', 'apple-jobs', 'google-jobs', 'meta-jobs', 'tesla-jobs']],
'department': NotRequired[str],
'location': NotRequired[str],
'city': NotRequired[str],
Expand Down Expand Up @@ -23007,6 +23047,14 @@ WebExtractParams = TypedDict('WebExtractParams', {
'extractOption': Required[WebExtractBody],
}, total=False)

FacebookPageResponse = ModelFacebookPageResponseDoc
FacebookPageParams = TypedDict('FacebookPageParams', {
'_response_type': NotRequired[ResponseType],
'_timeout': NotRequired[float],
'_headers': NotRequired[Mapping[str, str]],
'page': Required[str],
}, total=False)

GeocodingLookupResponse = ModelGeocodingLookupResponseDoc
GeocodingLookupParams = TypedDict('GeocodingLookupParams', {
'_response_type': NotRequired[ResponseType],
Expand Down Expand Up @@ -29044,6 +29092,9 @@ class EspnGroup:
def team_roster(self, **params: Unpack[EspnTeamRosterParams]) -> EspnTeamRosterResponse: ...
def teams(self, **params: Unpack[EspnTeamsParams]) -> EspnTeamsResponse: ...

class FacebookGroup:
def page(self, **params: Unpack[FacebookPageParams]) -> FacebookPageResponse: ...

class GeocodingGroup:
def lookup(self, **params: Unpack[GeocodingLookupParams]) -> GeocodingLookupResponse: ...
def reverse(self, **params: Unpack[GeocodingReverseParams]) -> GeocodingReverseResponse: ...
Expand Down Expand Up @@ -29991,6 +30042,7 @@ OperationId = Literal[
'espn-team-roster',
'espn-teams',
'extract',
'facebook-page',
'geocoding-lookup',
'geocoding-reverse',
'geocoding-search',
Expand Down Expand Up @@ -30598,6 +30650,7 @@ class CrawloraClient:
discogs: DiscogsGroup
e_bay: EBayGroup
espn: EspnGroup
facebook: FacebookGroup
geocoding: GeocodingGroup
git_hub: GitHubGroup
goodreads: GoodreadsGroup
Expand Down Expand Up @@ -33909,6 +33962,18 @@ class CrawloraClient:
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
) -> WebExtractResponse: ...
@overload
def operation(
self,
operation_id: Literal['facebook-page'],
params: FacebookPageParams,
*,
response_type: ResponseType = ...,
timeout: float | None = ...,
headers: Mapping[str, str] | None = ...,
retries: int | None = ...,
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
) -> FacebookPageResponse: ...
@overload
def operation(
self,
operation_id: Literal['geocoding-lookup'],
Expand Down Expand Up @@ -44097,6 +44162,18 @@ class CrawloraClient:
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
) -> WebExtractResponse: ...
@overload
def request(
self,
operation_id: Literal['facebook-page'],
params: FacebookPageParams,
*,
response_type: ResponseType = ...,
timeout: float | None = ...,
headers: Mapping[str, str] | None = ...,
retries: int | None = ...,
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
) -> FacebookPageResponse: ...
@overload
def request(
self,
operation_id: Literal['geocoding-lookup'],
Expand Down
37 changes: 33 additions & 4 deletions crawlora/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -4489,7 +4489,12 @@
'icims',
'eightfold',
'gem',
'pinpoint'],
'pinpoint',
'amazon-jobs',
'apple-jobs',
'google-jobs',
'meta-jobs',
'tesla-jobs'],
'in': 'query',
'name': 'provider',
'type': 'string'},
Expand All @@ -4498,6 +4503,7 @@
'name': 'status',
'type': 'string'},
{'in': 'query', 'name': 'min_open_roles', 'type': 'integer'},
{'in': 'query', 'name': 'sponsors_visa', 'type': 'boolean'},
{'enum': ['open_desc', 'company_asc', 'crawled_desc'],
'in': 'query',
'name': 'sort',
Expand Down Expand Up @@ -4566,7 +4572,12 @@
'icims',
'eightfold',
'gem',
'pinpoint'],
'pinpoint',
'amazon-jobs',
'apple-jobs',
'google-jobs',
'meta-jobs',
'tesla-jobs'],
'in': 'query',
'name': 'provider',
'type': 'string'},
Expand Down Expand Up @@ -4601,7 +4612,12 @@
'icims',
'eightfold',
'gem',
'pinpoint'],
'pinpoint',
'amazon-jobs',
'apple-jobs',
'google-jobs',
'meta-jobs',
'tesla-jobs'],
'in': 'query',
'name': 'provider',
'type': 'string'},
Expand Down Expand Up @@ -6820,6 +6836,17 @@
'produces': ['application/json'],
'queryParams': [],
'security': ['ApiKeyAuth']},
'facebook-page': {'bodyParam': None,
'bodyRequired': False,
'consumes': ['application/json'],
'formParams': [],
'id': 'facebook-page',
'method': 'GET',
'path': '/facebook/{page}',
'pathParams': ['page'],
'produces': ['application/json'],
'queryParams': [],
'security': ['ApiKeyAuth']},
'geocoding-lookup': {'bodyParam': None,
'bodyRequired': False,
'consumes': ['application/json'],
Expand Down Expand Up @@ -15646,6 +15673,7 @@
'team': 'espn-team',
'team_roster': 'espn-team-roster',
'teams': 'espn-teams'},
'facebook': {'page': 'facebook-page'},
'geocoding': {'lookup': 'geocoding-lookup', 'reverse': 'geocoding-reverse', 'search': 'geocoding-search'},
'git_hub': {'github_org': 'github-org',
'github_org_repos': 'github-org-repos',
Expand Down Expand Up @@ -16213,7 +16241,7 @@
'video': 'youtube-video'},
'zillow': {'autocomplete': 'zillow-autocomplete', 'property': 'zillow-property', 'search': 'zillow-search'}}

OPERATION_COUNT = 848
OPERATION_COUNT = 849

class OperationId:
AIRBNB_HOST = 'airbnb-host'
Expand Down Expand Up @@ -16478,6 +16506,7 @@ class OperationId:
ESPN_TEAM = 'espn-team'
ESPN_TEAM_ROSTER = 'espn-team-roster'
ESPN_TEAMS = 'espn-teams'
FACEBOOK_PAGE = 'facebook-page'
GEOCODING_LOOKUP = 'geocoding-lookup'
GEOCODING_REVERSE = 'geocoding-reverse'
GEOCODING_SEARCH = 'geocoding-search'
Expand Down
Loading
Loading