Lusha Filters API
Filter discovery for prospecting — enumerates the available filter types and the valid values for each, so callers never guess industry labels, seniority ids or technology names. Charges no credits.
Filter discovery for prospecting — enumerates the available filter types and the valid values for each, so callers never guess industry labels, seniority ids or technology names. Charges no credits.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lusha-filters-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lusha API Documentation Filters API
version: ''
x-logo:
url: https://www.lusha.com/logo.png
license:
name: Proprietary
url: https://lusha.com/legal/terms
description: '**This is the Lusha API V3 documentation.**
V3 introduces a new search-then-enrich pattern, bulk operations, AI-powered lookalikes, and richer filter capabilities.'
contact:
name: Lusha Support
url: https://api.lusha.com
email: support@lusha.com
termsOfService: https://lusha.com/legal/terms
x-privacy-policy:
name: Privacy Policy
url: https://lusha.com/legal/privacy-notice/
servers:
- url: https://api.lusha.com
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Filters
description: '**Filter APIs:** Retrieve available filter values for prospecting.
Use the discovery endpoints to list all available filter types, then fetch valid values for a specific filter type before building a prospecting request.
**Contact filter types:** `departments`, `seniority`, `existingDataPoints`, `countries`, `locations`
**Company filter types:** `names`, `sizes`, `revenues`, `locations`, `sics`, `naics`, `industriesLabels`, `intentTopics`, `technologies`'
x-tag-expanded: true
paths:
/v3/contacts/prospecting/filters:
get:
tags:
- Filters
summary: Get Contact Filter Types (Discovery)
operationId: getContactFilterTypes
description: Returns all available filter types for contact prospecting and whether each requires a search query.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/FilterTypesDiscoveryResponse'
example:
availableFilters:
- filterType: locations
requiresQuery: true
- filterType: departments
requiresQuery: false
- filterType: seniority
requiresQuery: false
- filterType: countries
requiresQuery: false
- filterType: existingDataPoints
requiresQuery: false
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/v3/contacts/prospecting/filters/{filterType}:
get:
tags:
- Filters
summary: Get Contact Filter Values
operationId: getContactFilterValues
description: 'Returns valid values for a single contact filter type.
| Filter type | Query required? |
|---|---|
| `departments` | No |
| `seniority` | No |
| `existingDataPoints` | No |
| `countries` | No |
| `locations` | Yes (2-256 chars) |'
parameters:
- name: filterType
in: path
required: true
schema:
type: string
enum:
- departments
- seniority
- existingDataPoints
- countries
- locations
- name: query
in: query
required: false
schema:
type: string
minLength: 2
maxLength: 256
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/FilterValuesResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
/v3/companies/prospecting/filters:
get:
tags:
- Filters
summary: Get Company Filter Types (Discovery)
operationId: getCompanyFilterTypes
description: Returns all available filter types for company prospecting and whether each requires a search query.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/FilterTypesDiscoveryResponse'
example:
availableFilters:
- filterType: names
requiresQuery: true
- filterType: technologies
requiresQuery: true
- filterType: industriesLabels
requiresQuery: false
- filterType: sizes
requiresQuery: false
- filterType: revenues
requiresQuery: false
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/v3/companies/prospecting/filters/{filterType}:
get:
tags:
- Filters
summary: Get Company Filter Values
operationId: getCompanyFilterValues
description: 'Returns valid values for a single company filter type.
| Filter type | Query required? |
|---|---|
| `sizes` | No |
| `revenues` | No |
| `sics` | No |
| `naics` | No |
| `intentTopics` | No |
| `industriesLabels` | No |
| `names` | Yes (2-256 chars) |
| `technologies` | Yes (2-256 chars) |
| `locations` | Yes (2-256 chars) |'
parameters:
- name: filterType
in: path
required: true
schema:
type: string
enum:
- names
- sizes
- revenues
- locations
- sics
- naics
- industriesLabels
- intentTopics
- technologies
- name: query
in: query
required: false
schema:
type: string
minLength: 2
maxLength: 256
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/FilterValuesResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
responses:
BadRequest:
description: Bad request - invalid input data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
statusCode: 400
message: Invalid request parameters
Forbidden:
description: Forbidden - account inactive, V3 access not enabled, or plan does not include this feature
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
accountInactive:
summary: Account inactive
value:
statusCode: 403
message: Your account is not active. Please reach out to support at support@lusha.com
v3NotEnabled:
summary: V3 access not enabled
value:
statusCode: 403
message: V3 API access is not enabled for your account
Unauthorized:
description: Unauthorized - invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
statusCode: 401
message: Invalid API key
TooManyRequests:
description: Too many requests - rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
statusCode: 429
message: Too many requests. Please wait before making another request.
headers:
x-rate-limit-daily:
description: Total requests allowed per day
schema:
type: integer
x-daily-requests-left:
description: Requests remaining in daily quota
schema:
type: integer
x-rate-limit-hourly:
description: Total requests allowed per hour
schema:
type: integer
x-hourly-requests-left:
description: Requests remaining in hourly quota
schema:
type: integer
x-rate-limit-minute:
description: Total requests allowed per minute
schema:
type: integer
x-minute-requests-left:
description: Requests remaining in current minute window
schema:
type: integer
schemas:
ErrorResponse:
type: object
required:
- statusCode
- message
properties:
statusCode:
type: integer
description: HTTP status code
example: 400
message:
type: string
description: Error message
example: Validation failed
errors:
type: array
items:
type: string
description: Detailed error messages (optional, only for validation errors)
example:
- 'entityType must be one of: contact, company'
FilterValuesResponse:
type: object
properties:
values:
description: Filter values (shape depends on filter type)
FilterTypesDiscoveryResponse:
type: object
properties:
availableFilters:
type: array
items:
type: object
properties:
filterType:
type: string
requiresQuery:
type: boolean
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: api_key
description: 'Your Lusha API key. You can find this in your Lusha dashboard under API settings.
Include this key in the `api_key` header for all requests.
'