SDKs // Python // Resources
client.search
Last verified
Search and count people or companies with the Python SDK, inspect filter fields, and use budgeted iterators with documented parameters and costs.
Search people and companies, count matches, inspect filters, and iterate within a result budget.
Calling conventions
Examples assume RC_API_KEY is set. Replace example ids with ids returned by your own requests. Signatures show the published 0.3.0 synchronous methods. Use the same arguments with the Python async client.
models refers to reversecontact.types. NOT_GIVEN and NotGiven are the SDK's internal markers for omitted arguments. Leave these arguments out of your calls. For API body parameters, passing None sends an explicit null. Transport options use None to inherit their defaults. Timeout means a number of seconds or httpx.Timeout. Supply parameters marked Required to Python or to the API, even when the generated signature permits omission.
JSON response objects expose data, quotas, metadata and http_response. Check optional fields for None. See First call for the response envelope. CSV methods return text and iterators yield items.
HTTP failures raise an APIError subclass based on the response: BadRequestError, AuthenticationError, InsufficientCreditsError, PermissionDeniedError, NotFoundError, ConflictError, GoneError, UnprocessableEntityError, RateLimitError, DailyLimitError, KeyCreditLimitError, UnavailableForLegalReasonsError or InternalServerError. See the error mapping and retry rules.
Set max_results when you use a search iterator. The iterator reduces the final page to the remaining budget and makes no request for 0. A Page has data, next_cursor, count, quotas, has_next_page() and get_next_page(). Prompt searches also expose interpretation. See Search within a budget.
people
Call People search with client.search.people().
Python SDK
def people(
*,
first_name: str | NotGiven | None = NOT_GIVEN,
last_name: str | NotGiven | None = NOT_GIVEN,
headline: str | NotGiven | None = NOT_GIVEN,
is_open_to_work: bool | NotGiven | None = NOT_GIVEN,
is_currently_employed: bool | NotGiven | None = NOT_GIVEN,
is_premium: bool | NotGiven | None = NOT_GIVEN,
is_verified: bool | NotGiven | None = NOT_GIVEN,
followers_count: models.SearchPeopleParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
connections_count: models.SearchPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_name: str | NotGiven | None = NOT_GIVEN,
exclude_current_company_name: str | NotGiven | None = NOT_GIVEN,
current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_employee_count_range: models.SearchPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
school_name: str | list[str] | NotGiven | None = NOT_GIVEN,
school_id: str | list[str] | NotGiven | None = NOT_GIVEN,
school_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
total_experience_months: models.SearchPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None = NOT_GIVEN,
experience: list[models.SearchPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None = NOT_GIVEN,
skills: str | list[str] | NotGiven | None = NOT_GIVEN,
languages: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_languages: str | list[str] | NotGiven | None = NOT_GIVEN,
keywords: str | NotGiven | None = NOT_GIVEN,
changed_jobs_within_days: int | NotGiven | None = NOT_GIVEN,
location: models.SearchPeopleParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Page[models.PersonFull]: ...Parameters
| Name | Type | Description |
|---|---|---|
first_name | str | NotGiven | None | Optional. Filter by first name |
last_name | str | NotGiven | None | Optional. Filter by last name |
headline | str | NotGiven | None | Optional. Match keywords found in the profile headline |
is_open_to_work | bool | NotGiven | None | Optional. Restrict to profiles flagged open-to-work |
is_currently_employed | bool | NotGiven | None | Optional. Restrict to profiles that have a current employer |
is_premium | bool | NotGiven | None | Optional. Restrict to Social Premium members |
is_verified | bool | NotGiven | None | Optional. Restrict to profiles with a verification badge |
followers_count | models.SearchPeopleParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
connections_count | models.SearchPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None | Optional. Connection count range, bounds inclusive. One bound is enough: { "min": 501 } keeps profiles with more than 500 connections |
position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles (OR-matched) |
exclude_position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles, to exclude |
company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names (OR-matched) |
exclude_company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names, to exclude |
company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, from the same industry list |
exclude_company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, or array, to exclude |
company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids |
exclude_company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids, to exclude |
company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array of identifiers |
exclude_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array, to exclude |
company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array |
exclude_company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array, to exclude |
current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles: a person matches if their current title matches any of them |
exclude_current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles, to exclude from results |
current_company_name | str | NotGiven | None | Optional. Match the current employer name |
exclude_current_company_name | str | NotGiven | None | Optional. Exclude the current employer name |
current_company_id | str | list[str] | NotGiven | None | Optional. Reverse Contact internal id (com_...) of the current employer |
exclude_current_company_id | str | list[str] | NotGiven | None | Optional. Current employer com_... id, or array of ids, to exclude |
current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array of identifiers |
exclude_current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array, to exclude |
current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array |
exclude_current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array, to exclude |
current_company_industry | str | list[str] | NotGiven | None | Optional. Current employer industry. See Industry values for the full list |
current_company_employee_count_range | models.SearchPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Current employer size range, with inclusive min and max bounds. |
current_function | str | list[str] | NotGiven | None | Optional. Current function from the position taxonomy |
exclude_current_function | str | list[str] | NotGiven | None | Optional. Current function, or array of functions, to exclude |
current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function from the position taxonomy |
exclude_current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function, or array of sub-functions, to exclude |
current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority from the position taxonomy |
exclude_current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority, or array of seniorities, to exclude |
current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array (OR-matched). See Contract types |
exclude_current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array, to exclude. Requires a positive filter alongside it |
contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array (OR-matched) |
exclude_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array, to exclude. Requires a positive filter alongside it |
school_name | str | list[str] | NotGiven | None | Optional. School name, or array of names: a person matches if they attended any of them. See Schools |
school_id | str | list[str] | NotGiven | None | Optional. Reverse Contact school id (sch_...), or array. See Schools |
school_linkedin_id | str | list[str] | NotGiven | None | Optional. School Social identifier, or array. See Schools |
total_experience_months | models.SearchPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None | Optional. Total work experience in months, with inclusive min and max bounds. |
experience | list[models.SearchPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None | Optional. Past-experience requirements. All entries are AND-combined |
skills | str | list[str] | NotGiven | None | Optional. Skill name, or array of skill names: a person matches if they list any of them. See Skills |
languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array: a person matches if they speak any of them. See Languages |
exclude_languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array, to exclude. Requires a positive filter alongside it |
keywords | str | NotGiven | None | Optional. Words searched across the whole profile: every word must appear, in any field. See Keywords |
changed_jobs_within_days | int | NotGiven | None | Optional. 30, 60, 90 or 120: the current position started within that many days. See Recent job change |
location | models.SearchPeopleParamsLocation | dict[str, object] | NotGiven | None | Optional. Location filters such as countryCode, area, region and city. |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns profiles refreshed after this date |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Page[models.PersonFull]. A page with records in data, a next_cursor, has_next_page() and get_next_page(). The next-page method reuses the filters and returns None after the last page.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
page = client.search.people(current_function="Marketing", per_page=10)
for item in page.data:
if item is not None:
print(item.to_dict())iter_people
Call People search with client.search.iter_people().
Python SDK
def iter_people(
*,
first_name: str | NotGiven | None = NOT_GIVEN,
last_name: str | NotGiven | None = NOT_GIVEN,
headline: str | NotGiven | None = NOT_GIVEN,
is_open_to_work: bool | NotGiven | None = NOT_GIVEN,
is_currently_employed: bool | NotGiven | None = NOT_GIVEN,
is_premium: bool | NotGiven | None = NOT_GIVEN,
is_verified: bool | NotGiven | None = NOT_GIVEN,
followers_count: models.SearchPeopleParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
connections_count: models.SearchPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_name: str | NotGiven | None = NOT_GIVEN,
exclude_current_company_name: str | NotGiven | None = NOT_GIVEN,
current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_employee_count_range: models.SearchPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
school_name: str | list[str] | NotGiven | None = NOT_GIVEN,
school_id: str | list[str] | NotGiven | None = NOT_GIVEN,
school_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
total_experience_months: models.SearchPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None = NOT_GIVEN,
experience: list[models.SearchPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None = NOT_GIVEN,
skills: str | list[str] | NotGiven | None = NOT_GIVEN,
languages: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_languages: str | list[str] | NotGiven | None = NOT_GIVEN,
keywords: str | NotGiven | None = NOT_GIVEN,
changed_jobs_within_days: int | NotGiven | None = NOT_GIVEN,
location: models.SearchPeopleParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
max_results: int,
**extra: object,
) -> Iterator[models.PersonFull | None]: ...Parameters
| Name | Type | Description |
|---|---|---|
first_name | str | NotGiven | None | Optional. Filter by first name |
last_name | str | NotGiven | None | Optional. Filter by last name |
headline | str | NotGiven | None | Optional. Match keywords found in the profile headline |
is_open_to_work | bool | NotGiven | None | Optional. Restrict to profiles flagged open-to-work |
is_currently_employed | bool | NotGiven | None | Optional. Restrict to profiles that have a current employer |
is_premium | bool | NotGiven | None | Optional. Restrict to Social Premium members |
is_verified | bool | NotGiven | None | Optional. Restrict to profiles with a verification badge |
followers_count | models.SearchPeopleParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
connections_count | models.SearchPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None | Optional. Connection count range, bounds inclusive. One bound is enough: { "min": 501 } keeps profiles with more than 500 connections |
position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles (OR-matched) |
exclude_position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles, to exclude |
company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names (OR-matched) |
exclude_company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names, to exclude |
company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, from the same industry list |
exclude_company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, or array, to exclude |
company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids |
exclude_company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids, to exclude |
company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array of identifiers |
exclude_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array, to exclude |
company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array |
exclude_company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array, to exclude |
current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles: a person matches if their current title matches any of them |
exclude_current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles, to exclude from results |
current_company_name | str | NotGiven | None | Optional. Match the current employer name |
exclude_current_company_name | str | NotGiven | None | Optional. Exclude the current employer name |
current_company_id | str | list[str] | NotGiven | None | Optional. Reverse Contact internal id (com_...) of the current employer |
exclude_current_company_id | str | list[str] | NotGiven | None | Optional. Current employer com_... id, or array of ids, to exclude |
current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array of identifiers |
exclude_current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array, to exclude |
current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array |
exclude_current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array, to exclude |
current_company_industry | str | list[str] | NotGiven | None | Optional. Current employer industry. See Industry values for the full list |
current_company_employee_count_range | models.SearchPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Current employer size range, with inclusive min and max bounds. |
current_function | str | list[str] | NotGiven | None | Optional. Current function from the position taxonomy |
exclude_current_function | str | list[str] | NotGiven | None | Optional. Current function, or array of functions, to exclude |
current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function from the position taxonomy |
exclude_current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function, or array of sub-functions, to exclude |
current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority from the position taxonomy |
exclude_current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority, or array of seniorities, to exclude |
current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array (OR-matched). See Contract types |
exclude_current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array, to exclude. Requires a positive filter alongside it |
contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array (OR-matched) |
exclude_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array, to exclude. Requires a positive filter alongside it |
school_name | str | list[str] | NotGiven | None | Optional. School name, or array of names: a person matches if they attended any of them. See Schools |
school_id | str | list[str] | NotGiven | None | Optional. Reverse Contact school id (sch_...), or array. See Schools |
school_linkedin_id | str | list[str] | NotGiven | None | Optional. School Social identifier, or array. See Schools |
total_experience_months | models.SearchPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None | Optional. Total work experience in months, with inclusive min and max bounds. |
experience | list[models.SearchPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None | Optional. Past-experience requirements. All entries are AND-combined |
skills | str | list[str] | NotGiven | None | Optional. Skill name, or array of skill names: a person matches if they list any of them. See Skills |
languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array: a person matches if they speak any of them. See Languages |
exclude_languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array, to exclude. Requires a positive filter alongside it |
keywords | str | NotGiven | None | Optional. Words searched across the whole profile: every word must appear, in any field. See Keywords |
changed_jobs_within_days | int | NotGiven | None | Optional. 30, 60, 90 or 120: the current position started within that many days. See Recent job change |
location | models.SearchPeopleParamsLocation | dict[str, object] | NotGiven | None | Optional. Location filters such as countryCode, area, region and city. |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns profiles refreshed after this date |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
max_results | int | Required. Maximum number of paid results to request. Must be a non-negative integer. 0 makes no request. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Iterator[models.PersonFull | None]. An iterator of typed records. Entries can be None. The iterator fetches pages only as you advance. max_results caps paid results, not prompt page fees.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options, invalid max_results or per_page, or a repeated pagination cursor. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
for item in client.search.iter_people(current_function="Marketing", max_results=10):
if item is not None:
print(item.to_dict())people_by_prompt
Call Agentic Search with client.search.people_by_prompt().
Python SDK
def people_by_prompt(
*,
prompt: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Page[models.PersonFull]: ...Parameters
| Name | Type | Description |
|---|---|---|
prompt | str | NotGiven | None | Required. Plain-language description of the people to find, in any language. At least 3 characters and at most 1000 tokens |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page with the same prompt |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Page[models.PersonFull]. A page with records in data, a next_cursor, has_next_page() and get_next_page(). The next-page method reuses the filters and returns None after the last page. interpretation contains the filters inferred from the prompt.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
page = client.search.people_by_prompt(prompt="Marketing leaders in France", per_page=10)
for item in page.data:
if item is not None:
print(item.to_dict())iter_people_by_prompt
Call Agentic Search with client.search.iter_people_by_prompt().
Python SDK
def iter_people_by_prompt(
*,
prompt: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
max_results: int,
**extra: object,
) -> Iterator[models.PersonFull | None]: ...Parameters
| Name | Type | Description |
|---|---|---|
prompt | str | NotGiven | None | Required. Plain-language description of the people to find, in any language. At least 3 characters and at most 1000 tokens |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page with the same prompt |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
max_results | int | Required. Maximum number of paid results to request. Must be a non-negative integer. 0 makes no request. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Iterator[models.PersonFull | None]. An iterator of typed records. Entries can be None. The iterator fetches pages only as you advance. max_results caps paid results, not prompt page fees.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options, invalid max_results or per_page, or a repeated pagination cursor. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
for item in client.search.iter_people_by_prompt(prompt="Marketing leaders in France", max_results=10):
if item is not None:
print(item.to_dict())people_lookalike
Provide exactly one seed, url or id, to client.search.people_lookalike(). Sending both returns an HTTP 422 response. See People lookalike.
Python SDK
def people_lookalike(
*,
url: str | NotGiven | None = NOT_GIVEN,
id: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Page[models.PersonFull]: ...Parameters
| Name | Type | Description |
|---|---|---|
url | str | NotGiven | None | Required for the selected strategy. Public Social profile URL of the seed (e.g. https://social.com/in/janedoe). Required unless id is given. |
id | str | NotGiven | None | Required for the selected strategy. Reverse Contact person id of the seed (e.g. prs_01jbd5vewyenebxgaz869ffe5t), as returned in the id field of any person response. Required unless url is given. |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Page[models.PersonFull]. A page with records in data, a next_cursor, has_next_page() and get_next_page(). The next-page method reuses the filters and returns None after the last page.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
page = client.search.people_lookalike(url="https://social.com/in/janedoe", per_page=10)
for item in page.data:
if item is not None:
print(item.to_dict())iter_people_lookalike
Provide exactly one seed, url or id, to client.search.iter_people_lookalike(). Sending both returns an HTTP 422 response. See People lookalike.
Python SDK
def iter_people_lookalike(
*,
url: str | NotGiven | None = NOT_GIVEN,
id: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
max_results: int,
**extra: object,
) -> Iterator[models.PersonFull | None]: ...Parameters
| Name | Type | Description |
|---|---|---|
url | str | NotGiven | None | Required for the selected strategy. Public Social profile URL of the seed (e.g. https://social.com/in/janedoe). Required unless id is given. |
id | str | NotGiven | None | Required for the selected strategy. Reverse Contact person id of the seed (e.g. prs_01jbd5vewyenebxgaz869ffe5t), as returned in the id field of any person response. Required unless url is given. |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Profiles per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
max_results | int | Required. Maximum number of paid results to request. Must be a non-negative integer. 0 makes no request. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Iterator[models.PersonFull | None]. An iterator of typed records. Entries can be None. The iterator fetches pages only as you advance. max_results caps paid results, not prompt page fees.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options, invalid max_results or per_page, or a repeated pagination cursor. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
for item in client.search.iter_people_lookalike(url="https://social.com/in/janedoe", max_results=10):
if item is not None:
print(item.to_dict())count_people
Call People search count with client.search.count_people().
Python SDK
def count_people(
*,
first_name: str | NotGiven | None = NOT_GIVEN,
last_name: str | NotGiven | None = NOT_GIVEN,
headline: str | NotGiven | None = NOT_GIVEN,
is_open_to_work: bool | NotGiven | None = NOT_GIVEN,
is_currently_employed: bool | NotGiven | None = NOT_GIVEN,
is_premium: bool | NotGiven | None = NOT_GIVEN,
is_verified: bool | NotGiven | None = NOT_GIVEN,
followers_count: models.CountPeopleParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
connections_count: models.CountPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_name: str | list[str] | NotGiven | None = NOT_GIVEN,
company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_position_title: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_name: str | NotGiven | None = NOT_GIVEN,
exclude_current_company_name: str | NotGiven | None = NOT_GIVEN,
current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_company_public_id: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_industry: str | list[str] | NotGiven | None = NOT_GIVEN,
current_company_employee_count_range: models.CountPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_sub_function: str | list[str] | NotGiven | None = NOT_GIVEN,
current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_seniority: str | list[str] | NotGiven | None = NOT_GIVEN,
current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_current_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_contract_type: str | list[str] | NotGiven | None = NOT_GIVEN,
school_name: str | list[str] | NotGiven | None = NOT_GIVEN,
school_id: str | list[str] | NotGiven | None = NOT_GIVEN,
school_linkedin_id: str | list[str] | NotGiven | None = NOT_GIVEN,
total_experience_months: models.CountPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None = NOT_GIVEN,
experience: list[models.CountPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None = NOT_GIVEN,
skills: str | list[str] | NotGiven | None = NOT_GIVEN,
languages: str | list[str] | NotGiven | None = NOT_GIVEN,
exclude_languages: str | list[str] | NotGiven | None = NOT_GIVEN,
keywords: str | NotGiven | None = NOT_GIVEN,
changed_jobs_within_days: int | NotGiven | None = NOT_GIVEN,
location: models.CountPeopleParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Result[models.SearchPeopleCountData]: ...Parameters
| Name | Type | Description |
|---|---|---|
first_name | str | NotGiven | None | Optional. Filter by first name |
last_name | str | NotGiven | None | Optional. Filter by last name |
headline | str | NotGiven | None | Optional. Match keywords found in the profile headline |
is_open_to_work | bool | NotGiven | None | Optional. Restrict to profiles flagged open-to-work |
is_currently_employed | bool | NotGiven | None | Optional. Restrict to profiles that have a current employer |
is_premium | bool | NotGiven | None | Optional. Restrict to Social Premium members |
is_verified | bool | NotGiven | None | Optional. Restrict to profiles with a verification badge |
followers_count | models.CountPeopleParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
connections_count | models.CountPeopleParamsConnectionsCount | dict[str, object] | NotGiven | None | Optional. Connection count range, bounds inclusive. One bound is enough: { "min": 501 } keeps profiles with more than 500 connections |
position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles (OR-matched) |
exclude_position_title | str | list[str] | NotGiven | None | Optional. Current or past position title, or array of titles, to exclude |
company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names (OR-matched) |
exclude_company_name | str | list[str] | NotGiven | None | Optional. Current or past company name, or array of names, to exclude |
company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, from the same industry list |
exclude_company_industry | str | list[str] | NotGiven | None | Optional. Current or past company industry, or array, to exclude |
company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids |
exclude_company_id | str | list[str] | NotGiven | None | Optional. Current or past company com_... id, or array of ids, to exclude |
company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array of identifiers |
exclude_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current or past company Social identifier, or array, to exclude |
company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array |
exclude_company_public_id | str | list[str] | NotGiven | None | Optional. Current or past company public ID or slug, or array, to exclude |
current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles: a person matches if their current title matches any of them |
exclude_current_position_title | str | list[str] | NotGiven | None | Optional. Current position title, or array of titles, to exclude from results |
current_company_name | str | NotGiven | None | Optional. Match the current employer name |
exclude_current_company_name | str | NotGiven | None | Optional. Exclude the current employer name |
current_company_id | str | list[str] | NotGiven | None | Optional. Reverse Contact internal id (com_...) of the current employer |
exclude_current_company_id | str | list[str] | NotGiven | None | Optional. Current employer com_... id, or array of ids, to exclude |
current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array of identifiers |
exclude_current_company_linkedin_id | str | list[str] | NotGiven | None | Optional. Current employer Social identifier, or array, to exclude |
current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array |
exclude_current_company_public_id | str | list[str] | NotGiven | None | Optional. Current employer public ID or slug, or array, to exclude |
current_company_industry | str | list[str] | NotGiven | None | Optional. Current employer industry. See Industry values for the full list |
current_company_employee_count_range | models.CountPeopleParamsCurrentCompanyEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Current employer size range, with inclusive min and max bounds. |
current_function | str | list[str] | NotGiven | None | Optional. Current function from the position taxonomy |
exclude_current_function | str | list[str] | NotGiven | None | Optional. Current function, or array of functions, to exclude |
current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function from the position taxonomy |
exclude_current_sub_function | str | list[str] | NotGiven | None | Optional. Current sub-function, or array of sub-functions, to exclude |
current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority from the position taxonomy |
exclude_current_seniority | str | list[str] | NotGiven | None | Optional. Current seniority, or array of seniorities, to exclude |
current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array (OR-matched). See Contract types |
exclude_current_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of the current position, or array, to exclude. Requires a positive filter alongside it |
contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array (OR-matched) |
exclude_contract_type | str | list[str] | NotGiven | None | Optional. Contract type of any position, current or past, or array, to exclude. Requires a positive filter alongside it |
school_name | str | list[str] | NotGiven | None | Optional. School name, or array of names: a person matches if they attended any of them. See Schools |
school_id | str | list[str] | NotGiven | None | Optional. Reverse Contact school id (sch_...), or array. See Schools |
school_linkedin_id | str | list[str] | NotGiven | None | Optional. School Social identifier, or array. See Schools |
total_experience_months | models.CountPeopleParamsTotalExperienceMonths | dict[str, object] | NotGiven | None | Optional. Total work experience in months, with inclusive min and max bounds. |
experience | list[models.CountPeopleParamsExperienceItem | dict[str, object]] | NotGiven | None | Optional. Past-experience requirements. All entries are AND-combined |
skills | str | list[str] | NotGiven | None | Optional. Skill name, or array of skill names: a person matches if they list any of them. See Skills |
languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array: a person matches if they speak any of them. See Languages |
exclude_languages | str | list[str] | NotGiven | None | Optional. Language name in English, or array, to exclude. Requires a positive filter alongside it |
keywords | str | NotGiven | None | Optional. Words searched across the whole profile: every word must appear, in any field. See Keywords |
changed_jobs_within_days | int | NotGiven | None | Optional. 30, 60, 90 or 120: the current position started within that many days. See Recent job change |
location | models.CountPeopleParamsLocation | dict[str, object] | NotGiven | None | Optional. Location filters such as countryCode, area, region and city. |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns profiles refreshed after this date |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Result[models.SearchPeopleCountData]. data.count is the number of matching people. The call does not extract profiles.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
result = client.search.count_people(current_function="Marketing")
print(result.data if result is not None else None)people_auto_suggestion
Call People auto-suggestion with client.search.people_auto_suggestion().
Python SDK
def people_auto_suggestion(
*,
field: str | NotGiven | None = NOT_GIVEN,
query: str | NotGiven | None = NOT_GIVEN,
limit: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Result[models.SearchPeopleAutoSuggestionData]: ...Parameters
| Name | Type | Description |
|---|---|---|
field | str | NotGiven | None | Required. The filter to complete. skills is the only value today |
query | str | NotGiven | None | Required. What has been typed so far, 1 to 100 characters. Case and accents are ignored |
limit | int | NotGiven | None | Optional. Maximum values returned, from 1 to 25. Defaults to 10 |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Result[models.SearchPeopleAutoSuggestionData]. data contains the selected field and its suggestions.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
result = client.search.people_auto_suggestion(field="currentPositionTitle", query="market", limit=5)
print(result.data if result is not None else None)organizations
Provide at least one company filter. Use max_data_age_date with another filter. When followers_count is the only filter, supply both min and max.
Call Company search with client.search.organizations().
Python SDK
def organizations(
*,
company_name: str | NotGiven | None = NOT_GIVEN,
company_domain: str | NotGiven | None = NOT_GIVEN,
industry: str | list[str] | NotGiven | None = NOT_GIVEN,
specialities: str | list[str] | NotGiven | None = NOT_GIVEN,
employee_count_range: models.SearchOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
founded_year: models.SearchOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None = NOT_GIVEN,
followers_count: models.SearchOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
location: models.SearchOrganizationsParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Page[models.CompanyFull]: ...Parameters
| Name | Type | Description |
|---|---|---|
company_name | str | NotGiven | None | Optional. Filter by company name |
company_domain | str | NotGiven | None | Optional. Filter by website domain (e.g. acme.com). Disposable domains are rejected with 422 |
industry | str | list[str] | NotGiven | None | Optional. Industry, or array of industries: a company matches if its industry is any of them. See Industry values for the full list |
specialities | str | list[str] | NotGiven | None | Optional. Speciality, or array of specialities: a company matches if it lists any of them. See Specialities |
employee_count_range | models.SearchOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Company size range, with inclusive min and max bounds. |
founded_year | models.SearchOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None | Optional. Founding year range, with inclusive min and max bounds. |
followers_count | models.SearchOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
location | models.SearchOrganizationsParamsLocation | dict[str, object] | NotGiven | None | Optional. Headquarters location. Each property accepts one value or an OR-matched list |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns companies refreshed after this date. Needs at least one other filter |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Companies per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Page[models.CompanyFull]. A page with records in data, a next_cursor, has_next_page() and get_next_page(). The next-page method reuses the filters and returns None after the last page.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
page = client.search.organizations(industry="Software Development", per_page=10)
for item in page.data:
if item is not None:
print(item.to_dict())iter_organizations
Provide at least one company filter. Use max_data_age_date with another filter. When followers_count is the only filter, supply both min and max.
Call Company search with client.search.iter_organizations().
Python SDK
def iter_organizations(
*,
company_name: str | NotGiven | None = NOT_GIVEN,
company_domain: str | NotGiven | None = NOT_GIVEN,
industry: str | list[str] | NotGiven | None = NOT_GIVEN,
specialities: str | list[str] | NotGiven | None = NOT_GIVEN,
employee_count_range: models.SearchOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
founded_year: models.SearchOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None = NOT_GIVEN,
followers_count: models.SearchOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
location: models.SearchOrganizationsParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
max_results: int,
**extra: object,
) -> Iterator[models.CompanyFull | None]: ...Parameters
| Name | Type | Description |
|---|---|---|
company_name | str | NotGiven | None | Optional. Filter by company name |
company_domain | str | NotGiven | None | Optional. Filter by website domain (e.g. acme.com). Disposable domains are rejected with 422 |
industry | str | list[str] | NotGiven | None | Optional. Industry, or array of industries: a company matches if its industry is any of them. See Industry values for the full list |
specialities | str | list[str] | NotGiven | None | Optional. Speciality, or array of specialities: a company matches if it lists any of them. See Specialities |
employee_count_range | models.SearchOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Company size range, with inclusive min and max bounds. |
founded_year | models.SearchOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None | Optional. Founding year range, with inclusive min and max bounds. |
followers_count | models.SearchOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
location | models.SearchOrganizationsParamsLocation | dict[str, object] | NotGiven | None | Optional. Headquarters location. Each property accepts one value or an OR-matched list |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns companies refreshed after this date. Needs at least one other filter |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page |
per_page | int | NotGiven | None | Optional. Companies per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
max_results | int | Required. Maximum number of paid results to request. Must be a non-negative integer. 0 makes no request. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Iterator[models.CompanyFull | None]. An iterator of typed records. Entries can be None. The iterator fetches pages only as you advance. max_results caps paid results, not prompt page fees.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options, invalid max_results or per_page, or a repeated pagination cursor. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
for item in client.search.iter_organizations(industry="Software Development", max_results=10):
if item is not None:
print(item.to_dict())organizations_by_prompt
Call Agentic Company Search with client.search.organizations_by_prompt().
Python SDK
def organizations_by_prompt(
*,
prompt: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Page[models.CompanyFull]: ...Parameters
| Name | Type | Description |
|---|---|---|
prompt | str | NotGiven | None | Required. Plain-language description of the companies to find, in any language. At least 3 characters and at most 1000 tokens |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page with the same prompt |
per_page | int | NotGiven | None | Optional. Companies per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Page[models.CompanyFull]. A page with records in data, a next_cursor, has_next_page() and get_next_page(). The next-page method reuses the filters and returns None after the last page. interpretation contains the filters inferred from the prompt.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
page = client.search.organizations_by_prompt(prompt="Software companies in France", per_page=10)
for item in page.data:
if item is not None:
print(item.to_dict())iter_organizations_by_prompt
Call Agentic Company Search with client.search.iter_organizations_by_prompt().
Python SDK
def iter_organizations_by_prompt(
*,
prompt: str | NotGiven | None = NOT_GIVEN,
cursor: str | NotGiven | None = NOT_GIVEN,
per_page: int | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
max_results: int,
**extra: object,
) -> Iterator[models.CompanyFull | None]: ...Parameters
| Name | Type | Description |
|---|---|---|
prompt | str | NotGiven | None | Required. Plain-language description of the companies to find, in any language. At least 3 characters and at most 1000 tokens |
cursor | str | NotGiven | None | Optional. Opaque cursor returned as metadata.nextCursor. Use this cursor to request the next page with the same prompt |
per_page | int | NotGiven | None | Optional. Companies per page (1 to 100, default 25) |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
max_results | int | Required. Maximum number of paid results to request. Must be a non-negative integer. 0 makes no request. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Iterator[models.CompanyFull | None]. An iterator of typed records. Entries can be None. The iterator fetches pages only as you advance. max_results caps paid results, not prompt page fees.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options, invalid max_results or per_page, or a repeated pagination cursor. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
for item in client.search.iter_organizations_by_prompt(prompt="Software companies in France", max_results=10):
if item is not None:
print(item.to_dict())count_organizations
Provide at least one company filter. Use max_data_age_date with another filter. When followers_count is the only filter, supply both min and max.
Call Company search count with client.search.count_organizations().
Python SDK
def count_organizations(
*,
company_name: str | NotGiven | None = NOT_GIVEN,
company_domain: str | NotGiven | None = NOT_GIVEN,
industry: str | list[str] | NotGiven | None = NOT_GIVEN,
specialities: str | list[str] | NotGiven | None = NOT_GIVEN,
employee_count_range: models.CountOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None = NOT_GIVEN,
founded_year: models.CountOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None = NOT_GIVEN,
followers_count: models.CountOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None = NOT_GIVEN,
location: models.CountOrganizationsParamsLocation | dict[str, object] | NotGiven | None = NOT_GIVEN,
max_data_age_date: str | NotGiven | None = NOT_GIVEN,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Result[models.SearchOrganizationsCountData]: ...Parameters
| Name | Type | Description |
|---|---|---|
company_name | str | NotGiven | None | Optional. Filter by company name |
company_domain | str | NotGiven | None | Optional. Filter by website domain (e.g. acme.com). Disposable domains are rejected with 422 |
industry | str | list[str] | NotGiven | None | Optional. Industry, or array of industries: a company matches if its industry is any of them. See Industry values for the full list |
specialities | str | list[str] | NotGiven | None | Optional. Speciality, or array of specialities: a company matches if it lists any of them. See Specialities |
employee_count_range | models.CountOrganizationsParamsEmployeeCountRange | dict[str, object] | NotGiven | None | Optional. Company size range, with inclusive min and max bounds. |
founded_year | models.CountOrganizationsParamsFoundedYear | dict[str, object] | NotGiven | None | Optional. Founding year range, with inclusive min and max bounds. |
followers_count | models.CountOrganizationsParamsFollowersCount | dict[str, object] | NotGiven | None | Optional. Follower count range, with inclusive min and max bounds. |
location | models.CountOrganizationsParamsLocation | dict[str, object] | NotGiven | None | Optional. Headquarters location. Each property accepts one value or an OR-matched list |
max_data_age_date | str | NotGiven | None | Optional. ISO 8601 datetime. Only returns companies refreshed after this date. Needs at least one other filter |
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Result[models.SearchOrganizationsCountData]. data.count is the number of matching companies. The call does not extract companies.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
result = client.search.count_organizations(industry="Software Development")
print(result.data if result is not None else None)people_fields
Call People search available fields with client.search.people_fields().
Python SDK
def people_fields(
*,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Result[models.SearchFieldsData]: ...Parameters
| Name | Type | Description |
|---|---|---|
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Result[models.SearchFieldsData]. data.fields describes supported people filters and allowed values.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
result = client.search.people_fields()
print(result.data if result is not None else None)organizations_fields
Call Company search available fields with client.search.organizations_fields().
Python SDK
def organizations_fields(
*,
timeout: Timeout | None = None,
max_retries: int | None = None,
headers: Mapping[str, str] | None = None,
**extra: object,
) -> Result[models.SearchFieldsData]: ...Parameters
| Name | Type | Description |
|---|---|---|
timeout | Timeout | None | Optional. Seconds per HTTP attempt, or httpx.Timeout. Uses the client setting when None. |
max_retries | int | None | Optional. Retries after the first HTTP attempt. Uses the client setting when None. |
headers | Mapping[str, str] | None | Optional. Additional HTTP headers for this call. |
**extra | object | Optional. Additional API keyword arguments, including camelCase aliases, passed through to the API. |
Returns
Result[models.SearchFieldsData]. data.fields describes supported company filters and allowed values.
Errors
APIError subclasses follow the HTTP mapping above. APIConnectionError reports transport failures. APITimeoutError reports timed-out attempts. ReverseContactError covers invalid SDK options. Malformed typed response data can raise Pydantic ValidationError.
Example
Python SDK
from reversecontact import ReverseContact
with ReverseContact() as client:
result = client.search.organizations_fields()
print(result.data if result is not None else None)Related guides
See the Python SDK overview, Search budget and Filter constants.
FAQ
Which Python search methods require max_results?
iter_people, iter_people_by_prompt, iter_people_lookalike, iter_organizations and iter_organizations_by_prompt require a non-negative max_results.
How do I count people without paying for results?
Call client.search.count_people() with the search filters. The count is in result.data.count, and the call is free.
What does a Python search page return?
A search Page exposes data, next_cursor, count, quotas, has_next_page() and get_next_page(). Prompt pages also expose interpretation.
How do I list Python SDK search filters?
Call the free client.search.people_fields() or client.search.organizations_fields() methods and inspect result.data.fields.