### Get Catalog Keywords Source: https://api.theirstack.com/openapi.json Search for any keyword and filter by one or more categories. Calls to this endpoint don't cost credits. By default, this endpoint returns 25 keywords. To get all keywords, set `limit=100000`. ```APIDOC ## GET /catalog/keywords ### Description Search for keywords and filter by one or more categories. This endpoint does not consume credits. By default, it returns 25 keywords; set `limit=100000` to retrieve all keywords. ### Method GET ### Endpoint /catalog/keywords ### Parameters #### Query Parameters - **keyword_type** (string) - Optional - Keyword type to filter by. Use `technology` for technologies only. - **keyword_type_not** (array of strings) - Optional - Exclude keywords of these types. Use `technology` to exclude technologies. - **name_pattern** (string) - Optional - Case-insensitive text to search for in the keyword name. - **slug** (string) - Optional - Deprecated. Keyword slug of a single keyword. - **slugs** (array of strings) - Optional - Keyword slugs of one or many keywords. - **category_pattern** (string) - Optional - Case-insensitive text to search for in the keyword category. For example, `data` to find 'data tools'. - **category_slug** (string) - Optional - Keyword category slug. - **parent_category_slug** (string) - Optional - Keyword parent category slug. - **parent_category_pattern** (string) - Optional - Case-insensitive text to search for in the keyword parent category name. - **q** (string) - Optional - General search query. Searches across keyword name, keyword type, category, and parent category (case-insensitive). Results where the keyword name starts with the query are ranked first. - **starts_with** (string) - Optional - Filter keywords whose name starts with this string (e.g. 'A' for glossary). Special value '__other__' selects keywords whose name does not start with letters A-Z. - **include_metadata** (boolean) - Deprecated. Metadata is always included now. Defaults to false. - **page** (integer) - Optional - Page number. Defaults to 0. - **limit** (integer) - Optional - Number of results per page. Defaults to 25. ### Response #### Success Response (200) - **data** (array) - Array of keywords. - **metadata** (object) - Total results, page, and limit. #### Response Example { "data": [ { "keyword": "example keyword", "keyword_type": "technology", "slug": "example-keyword", "category_slug": "example-category", "parent_category_slug": "example-parent-category" } ], "metadata": { "total_results": 100, "page": 0, "limit": 25 } } #### Error Response (422) - **detail** (string) - Error message. ``` -------------------------------- ### API Authentication Header Example Source: https://api.theirstack.com/openapi.json Use this header format for authenticating API requests with your API key. ```sh Authorization: Bearer ``` -------------------------------- ### Get Technologies And Buying Intents Source: https://api.theirstack.com/openapi.json List all keywords tracked by TheirStack, including both technologies and buying intents. ```APIDOC ## GET /v0/catalog/keywords ### Description List all keywords tracked by TheirStack, including both technologies and buying intents. ### Method GET ### Endpoint /v0/catalog/keywords ### Response #### Success Response (200) - (array) - A list of keywords, each representing a technology or buying intent. #### Response Example ```json [ "React", "Salesforce", "Cloud Computing", "CRM Software" ] ``` ``` -------------------------------- ### Rate Limit Headers Example Source: https://api.theirstack.com/openapi.json These headers provide information about the current quota status, applied policies, and reset times for rate limits. ```http RateLimit: "per-second";r=3;t=1;pk="dXNlcjoxMjM0", "per-minute";r=9;t=60;pk="dXNlcjoxMjM0", "per-hour";r=49;t=3600;pk="dXNlcjoxMjM0", "per-day";r=399;t=86400;pk="dXNlcjoxMjM0" RateLimit-Policy: "per-second";q=4;w=1, "per-minute";q=10;w=60, "per-hour";q=50;w=3600, "per-day";q=400;w=86400 RateLimit-Limit: 4, 10, 50, 400 RateLimit-Remaining: 3, 9, 49, 399 RateLimit-Reset: 1, 60, 3600, 86400 ``` -------------------------------- ### Get Webhook By ID Source: https://api.theirstack.com/openapi.json Retrieves the full details of a specific webhook by its ID. This includes configuration, status, target URL, event type, and creation timestamp. Use this to inspect or debug a webhook setup. ```APIDOC ## GET /v0/webhooks/{webhook_id} ### Description Retrieve the full details of a specific webhook by its ID including configuration, status, target URL, event type, linked saved search, and creation timestamp. Use this to inspect or debug a webhook setup. ### Method GET ### Endpoint /v0/webhooks/{webhook_id} ### Parameters #### Path Parameters - **webhook_id** (integer) - Required - ID of the webhook ### Response #### Success Response (200) - **Webhook** (object) - The details of the specified webhook. #### Error Responses - **400** (object) - Bad Request - **402** (object) - Payment Required - **422** (object) - Unprocessable Entity - **500** (object) - Internal Server Error ``` -------------------------------- ### Get Buying Intents Source: https://api.theirstack.com/openapi.json Retrieve buying intent topics for a company based on domain, name, or LinkedIn URL. This endpoint consumes API credits per company lookup. ```APIDOC ## POST /buying_intents/v1 ### Description Retrieves buying intent topics for a company. You must specify `company_domain`, `company_name`, or `company_linkedin_url`. Consumes 3 API credits per company lookup if a response is returned. ### Method POST ### Endpoint /buying_intents/v1 ### Parameters #### Request Body - **company_domain** (string) - Required - The domain of the company. - **company_name** (string) - Required - The name of the company. - **company_linkedin_url** (string) - Required - The LinkedIn URL of the company. ### Request Example ```json { "company_domain": "google.com" } ``` ### Response #### Success Response (200) - **keywords** (array) - List of buying intent keywords. - **company** (object) - Company details. - **metadata** (object) - Metadata about the response, including total results. #### Response Example ```json { "keywords": [ { "keyword": "cloud computing", "confidence": 0.9, "jobs": 150, "technology_slug": "cloud-computing", "technology_category_slug": "cloud-platforms", "technology_parent_category_slug": "software", "keyword_type": "buying_intent" } ], "company": { "name": "Google", "domain": "google.com", "linkedin_url": "https://www.linkedin.com/company/google/" }, "metadata": { "total_results": 10 } } ``` ``` -------------------------------- ### Get Companies From List Source: https://api.theirstack.com/openapi.json Retrieves companies associated with a specific company list. Requires authentication. ```APIDOC ## GET /v0/company_lists/{list_id}/companies ### Description Retrieves companies associated with a specific company list. ### Method GET ### Endpoint /v0/company_lists/{list_id}/companies ### Parameters #### Path Parameters - **list_id** (integer) - Required - The ID of the company list. #### Query Parameters - **order_by** (string) - Optional - Field to order the results by. Allowed values: `revealed_at`, `name`. Defaults to `revealed_at`. - **order_direction** (string) - Optional - Direction of the ordering. Allowed values: `asc`, `desc`. ### Responses #### Success Response (200) - **schema** (array) - A list of companies within the specified company list. #### Error Responses - **422**: Unprocessable Entity - **500**: Internal Server Error - **400**: Bad Request - **402**: Payment Required ``` -------------------------------- ### Get Company Lists Source: https://api.theirstack.com/openapi.json Retrieves a list of companies with various filtering and pagination options. ```APIDOC ## GET /v0/company_lists ### Description Retrieves a list of companies with filtering and pagination options. ### Method GET ### Endpoint /v0/company_lists ### Parameters #### Query Parameters - **order_by** (string) - Optional - Order direction. Defaults to 'desc'. - **order_direction** (string) - Optional - Order direction. Defaults to 'desc'. - **company_name_partial** (string) - Optional - Pass a partial company name to filter the list of companies. - **limit** (integer) - Optional - Number of results per page. Defaults to 25. - **page** (integer) - Optional - Page number. Required when using page-based pagination. - **offset** (integer) - Optional - Number of results to skip. Required for offset-based pagination. ### Response #### Success Response (200) - **Companies** (array) - List of company items. #### Response Example { "example": "[CompanyListItem]" } ``` -------------------------------- ### Get Keyword Categories Source: https://api.theirstack.com/openapi.json Returns a list of main keyword categories (technologies and buying intents) with the number of keywords and companies in each. Optionally filters to return a specific category if category_slug is provided. ```APIDOC ## GET /v1/catalog/keywords/categories ### Description Returns a list of main keyword categories (technologies and buying intents) with the number of keywords and companies in each. Optionally filters to return a specific category if category_slug is provided. ### Method GET ### Endpoint /v1/catalog/keywords/categories ### Parameters #### Query Parameters - **category_slug** (string) - Optional - Optional category slug to filter and return only a specific category ### Response #### Success Response (200) - **KeywordParentCategoryResponse** (object) - Response containing keyword categories. #### Response Example { "example": "{\"categories\": [{\"slug\": \"finance-and-accounting\", \"name\": \"Finance and Accounting\", \"keyword_count\": 500, \"company_count\": 100}] }" } ``` -------------------------------- ### Get Company List by ID Source: https://api.theirstack.com/openapi.json Retrieves a specific company list by its ID. Requires authentication. ```APIDOC ## GET /v0/company_lists/{list_id} ### Description Retrieves a specific company list by its ID. ### Method GET ### Endpoint /v0/company_lists/{list_id} ### Parameters #### Path Parameters - **list_id** (integer) - Required - The ID of the company list to retrieve. ### Responses #### Success Response (200) - **schema** (object) - The company list details, referencing `#/components/schemas/CompanyList`. #### Error Responses - **422**: Unprocessable Entity - **500**: Internal Server Error - **400**: Bad Request - **402**: Payment Required ``` -------------------------------- ### Get Industries Source: https://api.theirstack.com/openapi.json Lists all industries and their codes, including job and company counts, with search capabilities. ```APIDOC ## GET /v0/catalog/industries ### Description This endpoint lets you list all the industries and their codes, see how many jobs and companies we have per industry and search for an industry. Calls to this endpoint don't cost you credits. Our industries catalogue comes from [LinkedIn Industry Codes V2](https://learn.microsoft.com/en-us/linkedin/shared/references/reference-tables/industry-codes-v2) ### Method GET ### Endpoint /v0/catalog/industries ### Parameters #### Query Parameters - **industry** (string) - Optional - Name of an industry, case-insensitive. Will return industries that contain the given string either in their name, hierarchy or description. Default: "" - **page** (integer) - Optional - Page number. Default: 0 - **limit** (integer) - Optional - Number of results per page. Default: 25 ### Response #### Success Response (200) - **IndustryStatsResponseV0** (object) - Contains industry statistics. #### Response Example { "example": "{\"industries\": [{\"id\": 1, \"name\": \"Accounting\", \"parent_id\": null, \"level\": 1, \"jobs_count\": 1000, \"companies_count\": 500}], \"total\": 100}" } #### Error Response (422) - **HTTPValidationError** (object) - Validation Error details. ``` -------------------------------- ### List Datasets Source: https://api.theirstack.com/openapi.json Retrieve all datasets available for your team including jobs, companies, and technographics. Datasets are updated daily in Parquet format. Use this endpoint to get the latest download URLs for bulk data access. ```APIDOC ## GET /v1/datasets ### Description Retrieve all datasets available for your team including jobs, companies, and technographics. Datasets are updated daily in Parquet format. Use this endpoint to get the latest download URLs for bulk data access. ### Method GET ### Endpoint /v1/datasets ### Response #### Success Response (200) - (array) - A list of dataset groups, each containing information about available datasets. #### Response Example ```json [ { "name": "Companies", "description": "Company data including firmographics and technographics.", "download_url": "s3://theirstack-datasets/companies/latest.parquet" } ] ``` ``` -------------------------------- ### Get Credit Balance Source: https://api.theirstack.com/openapi.json Retrieve your team's current credit balance, including remaining credits for API calls, searches, and data exports. ```APIDOC ## GET /v0/billing/credit-balance ### Description Retrieve your team's current credit balance, including remaining credits available for API calls, searches, and data exports across all endpoints. ### Method GET ### Endpoint /v0/billing/credit-balance ### Response #### Success Response (200) - **credits_available** (integer) - The number of credits currently available. #### Response Example ```json { "credits_available": 1500 } ``` ``` -------------------------------- ### Get Credits Consumption Source: https://api.theirstack.com/openapi.json Retrieve daily credit consumption data for your team, showing the number of API records returned per day. Use this endpoint to monitor usage trends, track spending, and optimize your API integration. ```APIDOC ## GET /v0/teams/credits_consumption ### Description Retrieve daily credit consumption data for your team showing the number of API records returned per day. Use this endpoint to monitor usage trends, track spending, and optimize your API integration. ### Method GET ### Endpoint /v0/teams/credits_consumption ### Parameters #### Query Parameters - **start_datetime** (string) - Optional - Start datetime in ISO format (e.g., 2023-01-01T00:00:00) - **end_datetime** (string) - Optional - End datetime in ISO format (e.g., 2023-01-01T23:59:59) - **timezone** (string) - Optional - IANA timezone string (e.g., 'Europe/Madrid', 'America/New_York') - Defaults to 'UTC' ### Request Example None ### Response #### Success Response (200) - **(array)** - Array of credit consumption objects #### Response Example None ``` -------------------------------- ### Get Keyword Subcategories Source: https://api.theirstack.com/openapi.json Returns a list of keyword subcategories with their keywords. Behavior: returns all subcategories if no parameters are provided; returns all subcategories for a specific parent category if only category_slug is provided; returns a specific subcategory if both category_slug and subcategory_slug are provided. ```APIDOC ## GET /v1/catalog/keywords/subcategories ### Description Returns a list of keyword subcategories with their associated keywords. This endpoint can be used to retrieve all subcategories, subcategories for a specific parent category, or a single specific subcategory when both category and subcategory slugs are provided. ### Method GET ### Endpoint /v1/catalog/keywords/subcategories ### Parameters #### Query Parameters - **subcategory_slug** (string) - Optional - Subcategory slug to filter by a specific subcategory. Must be used together with category_slug. - **category_slug** (string) - Optional - Parent category slug to filter subcategories. If provided with subcategory_slug, returns only that specific subcategory. If provided alone, returns all subcategories for that parent category. - **num_technologies_per_category** (integer) - Optional - Number of keywords per category to include in the response. Defaults to 5. ### Response #### Success Response (200) - **KeywordCategoryResponse** (object) - Schema describing the response structure for keyword categories. ``` -------------------------------- ### Get Email Preferences Source: https://api.theirstack.com/openapi.json Retrieves the current email preferences for the authenticated user. ```APIDOC ## GET /v0/email-preferences ### Description Get Email Preferences ### Method GET ### Endpoint /v0/email-preferences ### Parameters None ### Request Example None ### Response #### Success Response (200) - **(object)** - Successful Response #### Response Example None ``` -------------------------------- ### Get Saved Search by ID Source: https://api.theirstack.com/openapi.json Retrieves a specific saved search by its unique identifier. ```APIDOC ## GET /v0/saved_searches/{search_id} ### Description Retrieves a specific saved search by its ID. ### Method GET ### Endpoint /v0/saved_searches/{search_id} ### Parameters #### Path Parameters - **search_id** (integer) - Required - The ID of the saved search. ``` -------------------------------- ### Create Company List Source: https://api.theirstack.com/openapi.json Creates a new company list. Requires authentication. ```APIDOC ## POST /v0/company_lists ### Description Creates a new company list. ### Method POST ### Endpoint /v0/company_lists ### Request Body - **schema** (object) - Required - The schema for creating a company list, referencing `#/components/schemas/CompanyListCreate`. ### Responses #### Success Response (200) - **schema** (object) - Description of the created company list, referencing `#/components/schemas/CompanyList`. #### Error Responses - **422**: Unprocessable Entity - **500**: Internal Server Error - **400**: Bad Request - **402**: Payment Required ``` -------------------------------- ### Create New Webhook Source: https://api.theirstack.com/openapi.json Creates a new webhook that listens for events from a saved search. ```APIDOC ## POST /v0/webhooks ### Description Create a new webhook that listens for events from a saved search. ### Method POST ### Endpoint /v0/webhooks ### Request Body - **url** (string) - Required - The URL to send webhook events to. - **event_type** (string) - Required - The type of event to listen for (e.g., `company.created`, `contact.updated`). - **saved_search_id** (string) - Optional - The ID of the saved search to associate with the webhook. ### Response #### Success Response (200) - **Webhook** (object) - The newly created webhook object. #### Response Example { "example": "{\"id\": \"wh_456\", \"team_id\": \"team_abc\", \"status\": \"active\", \"url\": \"https://example.com/new_webhook\", \"event_type\": \"company.created\", \"saved_search_id\": \"ss_xyz\", \"created_at\": \"2023-01-02T11:00:00Z\", \"updated_at\": \"2023-01-02T11:00:00Z\"}" } #### Error Response (400, 402, 422, 500) - **ErrorResponse** (object) - Details about the error. ### Security - **Bearer**: Requires a Bearer token for authentication. ``` -------------------------------- ### Buying Intents Source: https://api.theirstack.com/openapi.json This endpoint lists the buying intent topics detected for a company. ```APIDOC ## POST /v1/companies/buying_intents ### Description This endpoint lists the buying intent topics detected for a company. For each topic, it returns the confidence level (`low`, `medium`, `high`), the number of jobs that mention the topic, and the first and last dates it was mentioned. ### Method POST ### Endpoint /v1/companies/buying_intents ### Parameters #### Request Body - **company_domain** (string) - Optional - The domain of the company. - **company_name** (string) - Optional - The name of the company. - **company_linkedin_url** (string) - Optional - The LinkedIn URL of the company. ### Response #### Success Response (200) - **items** (array) - A list of buying intent topics found for the company. - **keyword** (object) - Information about the buying intent topic. - **slug** (string) - The unique identifier for the topic. - **name** (string) - The name of the topic. - **confidence** (string) - The confidence level of the buying intent. - **jobs_count** (integer) - The number of jobs mentioning this topic. - **first_mentioned** (string) - The date of the first mention. - **last_mentioned** (string) - The date of the last mention. #### Response Example ```json { "items": [ { "keyword": { "slug": "cloud-migration", "name": "Cloud Migration" }, "confidence": "high", "jobs_count": 50, "first_mentioned": "2022-05-01T00:00:00Z", "last_mentioned": "2023-11-15T09:00:00Z" } ] } ``` ``` -------------------------------- ### WebhookTest Source: https://api.theirstack.com/openapi.json Defines the structure for testing webhook configurations. ```APIDOC ## Test Webhook ### Description Sends a test event to a specified URL to verify webhook configuration. ### Method POST ### Endpoint `/webhooks/test` ### Request Body - **webhook_id** (integer) - Optional - ID of an existing webhook to test. When provided, url and event_type are loaded from the stored webhook. Body fields (url, secret) can override stored values. - **url** (string) - Required if webhook_id is not provided - URL to send the test event to. - **event_type** (string) - Required if webhook_id is not provided - Type of event to simulate. - **secret** (string) - Optional - Secret used to sign webhook payloads with HMAC-SHA256. If set, deliveries include an X-TheirStack-Signature-256 header. ### Request Example ```json { "url": "https://example.com/webhook", "event_type": "job.new", "secret": "your-super-secret-key" } ``` ### Response Example ```json { "status": 200, "message": "Test event sent successfully.", "signature": "sha256=..." } ``` ``` -------------------------------- ### Create Webhook Source: https://api.theirstack.com/openapi.json Creates a new webhook to send real-time HTTP POST notifications to your specified URL. You can configure event types, filters, and delivery settings for automated data pipelines. ```APIDOC ## POST /v0/webhooks ### Description Creates a new webhook to send real-time HTTP POST notifications to your specified URL. Configure event types, filters, and delivery settings for automated data pipelines. ### Method POST ### Endpoint /v0/webhooks ### Request Body - **WebhookCreate** (object) - Required - The configuration for the new webhook. ### Response #### Success Response (200) - **Webhook** (object) - Details of the created webhook. #### Error Responses - **400** (object) - Bad Request - **402** (object) - Payment Required - **422** (object) - Unprocessable Entity - **500** (object) - Internal Server Error ``` -------------------------------- ### Get Catalog Locations Source: https://api.theirstack.com/openapi.json Retrieves a list of locations with optional filtering by country code, feature code, offset, and limit. ```APIDOC ## GET /v0/catalog/locations ### Description Retrieves a list of locations with optional filtering by country code, feature code, offset, and limit. ### Method GET ### Endpoint /v0/catalog/locations ### Parameters #### Query Parameters - **country_code** (string) - Optional - The country code of the location, all the returned locations will be filtered by this country code - **feature_code** (string or array of strings) - Optional - GeoNames feature code(s) to filter by location type (e.g. PPL=populated place, ADM1=first-order admin division). See https://www.geonames.org/export/codes.html - **offset** (integer) - Optional - The offset of the results. Default: 0 - **limit** (integer) - Optional - The limit of the results. Default: 5 ### Response #### Success Response (200) - **Response Get Catalog Locations V0** (array) - An array of location objects. #### Response Example { "example": "[{\"name\": \"Paris\", \"country\": \"France\", \"country_code\": \"FR\", \"admin1_code\": \"IDF\", \"admin2_code\": \"75\", \"admin3_code\": \"\", \"latitude\": 48.85341, \"longitude\": 2.3488, \"population\": 2140526, \"timezone\": \"Europe/Paris\", \"feature_code\": \"PPL\"}]" } #### Error Response (400, 402, 422, 500) - **ErrorResponse** (object) - Details about the error. ``` -------------------------------- ### Company Data Filtering Parameters Source: https://api.theirstack.com/openapi.json This section details parameters used for filtering company data, such as enabling preview mode, filtering by property existence, and matching description patterns. ```APIDOC ## Company Data Filtering ### Description Parameters to control the data returned related to companies, including preview modes and specific filtering criteria. ### Parameters #### Boolean Parameters - **ur_company_data** (boolean) - Optional - Enable preview mode to return blurred data without consuming API credits. When enabled, sensitive company fields are blurred. Not available when filtering by company identifiers. - **company_description_pattern_accent_insensitive** (boolean) - Optional - Set to True to make company description searches accent insensitive. For example, "รก" will match "a" as well. #### Array Parameters - **property_exists_or** (array of strings) - Optional - Return jobs that have any of these fields not null. Supports chaining of fields. - **property_exists_and** (array of strings) - Optional - Return jobs that have all of these fields not null. Supports chaining of fields. - **company_description_pattern_or** (array of strings) - Optional - Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns. - **company_description_pattern_not** (array of strings) - Optional - Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns. - **funding_stage_or** (array of strings) - Optional - Funding stages of companies returned. Possible values include 'angel', 'seed', 'series_a', etc. - **industry_or** (array of strings) - Optional - Names of industries, case-insensitive. Results will only include companies that belong to any of the specified industries. Available values can be found at GET /v0/catalog/industries. #### Integer Parameters - **min_revenue_usd** (integer) - Optional - Minimum company revenue, in USD. - **max_revenue_usd** (integer) - Optional - Maximum company revenue, in USD. - **min_employee_count** (integer) - Optional - Minimum number of employees in a company. - **max_employee_count** (integer) - Optional - Maximum number of employees in a company. - **min_employee_count_or_null** (integer) - Optional - Minimum number of employees in a company. Includes companies with no size information if the value is null. - **max_employee_count_or_null** (integer) - Optional - Maximum number of employees in a company. Includes companies with no size information if the value is null. - **min_funding_usd** (integer) - Optional - Minimum company funding, in USD. - **max_funding_usd** (integer) - Optional - Maximum company funding, in USD. ### Default Values - **ur_company_data**: false - **property_exists_or**: [] - **property_exists_and**: [] - **company_description_pattern_or**: [] - **company_description_pattern_not**: [] - **company_description_pattern_accent_insensitive**: false - **min_revenue_usd**: null - **max_revenue_usd**: null - **min_employee_count**: null - **max_employee_count**: null - **min_employee_count_or_null**: null - **max_employee_count_or_null**: null - **min_funding_usd**: null - **max_funding_usd**: null - **funding_stage_or**: [] - **industry_or**: [] ``` -------------------------------- ### Get Webhook Event Count Source: https://api.theirstack.com/openapi.json Retrieves the total count of events triggered for a specific webhook. Useful for monitoring activity volume. ```APIDOC ## GET /v0/webhooks/{webhook_id}/events/count ### Description Get the total count of events triggered for a specific webhook. Use this endpoint to quickly check webhook activity volume without fetching the full event list, useful for monitoring dashboards and usage tracking. ### Method GET ### Endpoint /v0/webhooks/{webhook_id}/events/count ### Parameters #### Path Parameters - **webhook_id** (integer) - Required - ID of the webhook ### Response #### Success Response (200) - **Integer** - The total count of events for the webhook. #### Response Example ```json 50 ``` ``` -------------------------------- ### Get Saved Searches Source: https://api.theirstack.com/openapi.json Retrieves a list of saved searches, with options to filter by user IDs and search types, and to sort the results. ```APIDOC ## GET /v0/saved_searches ### Description Retrieves a list of saved searches. Supports filtering by user IDs and search types, and sorting by various fields. ### Method GET ### Endpoint /v0/saved_searches ### Parameters #### Query Parameters - **user_ids** (array[integer]) - Optional - Get saved searches from users with these IDs. The IDs must be from people in the current users' team. - **types** (array[SavedSearchType]) - Optional - Filter by type of search - **order_by** (string) - Optional - Order by field. Allowed values: "name", "created_at", "updated_at". Defaults to "updated_at". - **order_direction** (string) - Optional - Order direction. Allowed values: "asc", "desc". Defaults to "desc". ``` -------------------------------- ### List All Webhooks Source: https://api.theirstack.com/openapi.json Retrieves all active webhooks configured for your team, including their status, target URL, event type, and linked saved search. ```APIDOC ## GET /v0/webhooks ### Description Retrieve all active webhooks configured for your team including their status, target URL, event type, and linked saved search. Archived webhooks are excluded from the response. Use this to monitor your webhook integrations. ### Method GET ### Endpoint /v0/webhooks ### Response #### Success Response (200) - **Response Get Webhooks V0** (array) - An array of webhook objects. #### Response Example { "example": "[{\"id\": \"wh_123\", \"team_id\": \"team_abc\", \"status\": \"active\", \"url\": \"https://example.com/webhook\", \"event_type\": \"company.created\", \"saved_search_id\": \"ss_xyz\", \"created_at\": \"2023-01-01T10:00:00Z\", \"updated_at\": \"2023-01-01T10:00:00Z\"}]" } #### Error Response (400, 402, 422, 500) - **ErrorResponse** (object) - Details about the error. ### Security - **Bearer**: Requires a Bearer token for authentication. ``` -------------------------------- ### Blur Company Data Source: https://api.theirstack.com/openapi.json Enable preview mode to return blurred company data, useful for previews without consuming API credits. ```APIDOC ## Blur Company Data ### Description Enable preview mode to return blurred data without consuming API credits. Sensitive company fields are blurred. Not available when filtering by company identifiers. See [here](https://theirstack.com/en/docs/api/preview-data-mode) for more details. ### Parameters #### Query Parameters - **blur_company_data** (boolean) - Optional - Enable preview mode to return blurred data. Defaults to false. ``` -------------------------------- ### Job Search Source: https://api.theirstack.com/openapi.json This endpoint lets you search for jobs posted on thousands of websites and filter by multiple filters, such as job titles, companies, locations, company attributes, dates and many more. It consumes 1 API credit for each job returned in the response. You must specify at least one of the following filters: `posted_at_max_age_days`, `posted_at_gte`, `posted_at_lte`, `company_domain_or`, `company_linkedin_url_or`, `company_name_or`. ```APIDOC ## POST /v1/jobs/search ### Description Searches for jobs across numerous websites using a variety of filters including job titles, companies, locations, company attributes, and date ranges. Each job returned consumes one API credit. A minimum of one filter related to posting date or company identification is required for performance reasons. ### Method POST ### Endpoint /v1/jobs/search ### Parameters #### Request Body - **JobSearchFilters-Input** (object) - Schema defining the filters for job search. Requires at least one of the following: - `posted_at_max_age_days` (integer) - Maximum age of the job posting in days. - `posted_at_gte` (string) - Date greater than or equal to (ISO 8601 format). - `posted_at_lte` (string) - Date less than or equal to (ISO 8601 format). - `company_domain_or` (array of strings) - Filter by company domain(s). - `company_linkedin_url_or` (array of strings) - Filter by company LinkedIn URL(s). - `company_name_or` (array of strings) - Filter by company name(s). - `company_name_case_insensitive_or` (array of strings) - Filter by company name(s), case-insensitive. ### Request Example ```json { "page": 0, "limit": 25, "job_country_code_or": ["US"], "posted_at_max_age_days": 7 } ``` ### Response #### Success Response (200) - **JobSearchResponse** (object) - Schema describing the response structure for job search results. ``` -------------------------------- ### Easy Apply Filter Source: https://api.theirstack.com/openapi.json Filter jobs based on whether they offer an 'Easy Apply' option. ```APIDOC ## Easy Apply Filter ### Description Filter jobs based on the availability of an 'Easy Apply' option, allowing users to apply directly through the job board. ### Parameters #### Query Parameters - **easy_apply** (boolean) - Optional - If true, only return jobs with an 'Easy Apply' option. If false, only return jobs requiring redirection to the company's website. ### Example ```json { "easy_apply": true } ``` ``` -------------------------------- ### Get Companies Per Company Country Code Source: https://api.theirstack.com/openapi.json Retrieves a list of ISO country codes and the number of companies headquartered in each. This is useful for analyzing the geographic distribution of companies and is free to use. ```APIDOC ## GET /v0/catalog/companies_per_company_country_code ### Description Retrieve all ISO country codes with the number of companies headquartered in each country. Use this endpoint for geographic distribution analysis. Calls to this endpoint are free and do not consume any API credits. ### Method GET ### Endpoint /v0/catalog/companies_per_company_country_code ### Parameters #### Query Parameters - **country** (string) - Optional - Name of a country. Will return the country matching their name in English - **page** (integer) - Optional - Page number. Default: 0 - **limit** (integer) - Optional - Number of results per page. Default: 25 ### Response #### Success Response (200) - **CompaniesPerCountryCodeResponse** (object) - Successful Response ``` -------------------------------- ### Filter jobs by salary Source: https://api.theirstack.com/openapi.json Specify a minimum or maximum salary in USD to filter job listings. ```APIDOC ## Filter Jobs by Salary ### Description Filter job listings based on a minimum or maximum annual salary in USD. ### Parameters #### Query Parameters - **min_salary_usd** (number) - Optional - Minimum annual salary in USD. For example, 100000 means $100,000. - **max_salary_usd** (number) - Optional - Maximum annual salary in USD. For example, 150000 means $150,000. ### Request Example ```json { "min_salary_usd": 100000, "max_salary_usd": 150000 } ``` ``` -------------------------------- ### Get Geographic Locations Source: https://api.theirstack.com/openapi.json Search for geographic locations by name or ID to retrieve standardized location data including city, region, and country. Location IDs can be used with job filters for precise targeting. ```APIDOC ## GET /v0/catalog/locations ### Description Search for geographic locations by name or ID to retrieve standardized location data including city, region, and country. Use location IDs with job_location_or and job_location_not filters for precise geographic targeting in job searches. ### Method GET ### Endpoint /v0/catalog/locations ### Parameters #### Query Parameters - **id** (integer | array[integer]) - Optional - The ids of the locations. Examples: 1, [2,3] - **name** (string) - Optional - Search value for the location, this will be used to filter the locations by name. Examples: "Paris" ``` -------------------------------- ### Generate Dataset Credentials Source: https://api.theirstack.com/openapi.json Generate temporary S3 credentials to directly access and download dataset files from cloud storage. Credentials are valid for 7 days by default and provide read-only access to your team's available datasets. ```APIDOC ## POST /v1/datasets/credentials ### Description Generate temporary S3 credentials to directly access and download dataset files from cloud storage. Credentials are valid for 7 days by default and provide read-only access to your team's available datasets. ### Method POST ### Endpoint /v1/datasets/credentials ### Response #### Success Response (200) - **access_key_id** (string) - The AWS access key ID. - **secret_access_key** (string) - The AWS secret access key. - **session_token** (string) - The AWS session token. - **expiration** (string) - The expiration date and time of the credentials. #### Response Example ```json { "access_key_id": "AKIAIOSFODNN7EXAMPLE", "secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "session_token": "AQoDYXdzEJr...", "expiration": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### Get Jobs And Companies Per Job Country Code Source: https://api.theirstack.com/openapi.json Retrieves a list of country codes along with the count of jobs and companies associated with each country code. This endpoint is free to use and does not consume credits. ```APIDOC ## GET /v0/catalog/jobs_companies_per_job_country_code ### Description This endpoint will return all the country codes and the number of jobs whose location's country code is the given one, and the number of companies with jobs in that country. Calls to this endpoint don't cost you credits. ### Method GET ### Endpoint /v0/catalog/jobs_companies_per_job_country_code ### Parameters #### Query Parameters - **country** (string) - Optional - Name of a country. Will return the country matching their name in English - **page** (integer) - Optional - Page number. Default: 0 - **limit** (integer) - Optional - Number of results per page. Default: 25 ### Response #### Success Response (200) - **JobsCompaniesPerJobCountryCodeResponse** (object) - Successful Response ``` -------------------------------- ### Technographics Source: https://api.theirstack.com/openapi.json This endpoint lists the technologies used by a company. You must specify `company_domain`, `company_name`, or `company_linkedin_url`. It consumes 3 API credits per company lookup. ```APIDOC ## POST /v1/companies/technologies ### Description This endpoint lists the technologies used by a company. For each technology, it returns the confidence level (`low`, `medium`, `high`), the number of jobs that mention the technology, and the first and last dates it was mentioned. You must specify `company_domain`, `company_name`, `company_linkedin_url`. It consumes **3 API credits** per company lookup, regardless of the number of technologies returned. It doesn't consume credits if there is no response. ### Method POST ### Endpoint /v1/companies/technologies ### Parameters #### Request Body - **company_domain** (string) - Optional - The domain of the company. - **company_name** (string) - Optional - The name of the company. - **company_linkedin_url** (string) - Optional - The LinkedIn URL of the company. - **company_name_or** (array) - Optional - A list of company names to search for. - **order_by** (array) - Optional - Specifies the order of results. Each object can have `desc` (boolean) and `field` (string) properties. - **include_total_results** (boolean) - Optional - Whether to include the total number of results. - **keyword_slug_or** (array) - Optional - A list of keyword slugs to filter by. - **keyword_category_slug_or** (array) - Optional - A list of keyword category slugs to filter by. - **keyword_parent_category_slug_or** (array) - Optional - A list of keyword parent category slugs to filter by. - **technology_slug_or** (array) - Optional - A list of technology slugs to filter by. - **technology_category_slug_or** (array) - Optional - A list of technology category slugs to filter by. - **technology_parent_category_slug_or** (array) - Optional - A list of technology parent category slugs to filter by. - **confidence_or** (array) - Optional - A list of confidence levels to filter by. - **keyword_type_or** (array) - Optional - A list of keyword types to filter by. - **keyword_type_not** (array) - Optional - A list of keyword types to exclude. ### Request Example ```json { "company_domain": "google.com" } ``` ### Response #### Success Response (200) - **items** (array) - A list of technographics found for the company. - **keyword** (object) - Information about the technology. - **slug** (string) - The unique identifier for the technology. - **name** (string) - The name of the technology. - **keyword_type** (string) - The type of the keyword (e.g., "technology", "language"). - **keyword_category** (object) - Information about the technology category. - **slug** (string) - The unique identifier for the category. - **name** (string) - The name of the category. - **keyword_parent_category** (object) - Information about the parent category. - **slug** (string) - The unique identifier for the parent category. - **name** (string) - The name of the parent category. - **confidence** (string) - The confidence level of the technology (e.g., "high", "medium", "low"). - **jobs_count** (integer) - The number of jobs mentioning this technology. - **first_mentioned** (string) - The date of the first mention. - **last_mentioned** (string) - The date of the last mention. #### Response Example ```json { "items": [ { "keyword": { "slug": "python", "name": "Python", "keyword_type": "programming-language", "keyword_category": { "slug": "programming-languages", "name": "Programming Languages", "keyword_parent_category": { "slug": "software-development", "name": "Software Development" } } }, "confidence": "high", "jobs_count": 1500, "first_mentioned": "2020-01-15T00:00:00Z", "last_mentioned": "2023-10-26T10:30:00Z" } ] } ``` ``` -------------------------------- ### Get Request Count Source: https://api.theirstack.com/openapi.json Retrieve the daily count of API requests made by your team within a specified date range. Use this endpoint to monitor API usage patterns, identify peak activity periods, and plan capacity. ```APIDOC ## GET /v0/requests/count ### Description Retrieve the daily count of API requests made by your team within a specified date range. Use this endpoint to monitor API usage patterns, identify peak activity periods, and plan capacity. ### Method GET ### Endpoint /v0/requests/count ### Parameters #### Query Parameters - **start_datetime** (string) - Optional - Start datetime in ISO format (e.g., 2023-01-01T00:00:00) - **end_datetime** (string) - Optional - End datetime in ISO format (e.g., 2023-01-01T23:59:59) - **timezone** (string) - Optional - IANA timezone string (e.g., 'Europe/Madrid', 'America/New_York') (default: UTC) - **is_origin_app** (boolean) - Optional - Filter by origin app or api - **api_key_id** (string) - Optional - Filter by API key id ### Response #### Success Response (200) - (array) - List of request counts, each containing details about the count for a specific period. #### Response Example ```json [ { "date": "2023-10-26", "count": 1500 } ] ``` ```