Documentation Index
Fetch the complete documentation index at: https://api.lensmor.com/llms.txt
Use this file to discover all available pages before exploring further.
Exhibitors list
List exhibitors for a specific event with access-aware pagination.
Use this endpoint when you want a paginated exhibitor catalog scoped to one event, with exhibitor and personnel filters plus preview/full-access guidance.
Endpoint
GET /external/exhibitors/list
Authentication
See Authentication
Success status code
200 OK
Query parameters
| Name | Required | Type | Notes |
|---|
event_id | Yes | string | Event identifier returned by Lensmor event endpoints. |
page | No | integer | Defaults to 1. |
pageSize | No | integer | Defaults to 50 when omitted; maximum 100. |
keyword | No | string | Exhibitor keyword search. |
country | No | string | Country filter. |
category | No | string[] | Exhibitor category filters; repeated query params are supported. |
industry | No | string[] | Exhibitor industry filters; repeated query params are supported. |
jobTitle | No | string[] | Personnel job-title filters; repeated query params are supported. |
managementLevel | No | string[] | Personnel management-level filters; repeated query params are supported. |
department | No | string[] | Personnel department filters; repeated query params are supported. |
personnelLimit | No | integer | Maximum nested personnel rows to load per exhibitor. 0 or omitted means no nested personnel. |
Response body
Top-level fields
| Field | Type | Notes |
|---|
items | object[] | Exhibitors associated with the resolved event. |
total | integer | Total matched exhibitors. |
page | integer | Current page number. |
pageSize | integer | Page size used for this response. |
totalPages | integer | 0 when total is 0. |
hasMore | boolean | true when another page exists. |
recommendationProcessing | boolean | true when recommendation data for the current caller is still being prepared; otherwise false. |
semantics | object | Preview/full-access guidance for the current event query. |
items[] fields
| Field | Type | Notes |
|---|
id | string | Lensmor exhibitor identifier. |
companyName | string | Exhibitor company name. |
domain | string or null | Exhibitor domain. |
description | string or null | Exhibitor description. |
website | string or null | Website URL. |
industry | string or null | Industry label. |
employeeCount | integer or null | Employee count, when available. |
country | string or null | Country. |
logo | string or null | Logo URL. |
linkedinUrl | string or null | LinkedIn URL. |
fundingRound | string or null | Funding-round label. |
matched_event_ids | string[] | Related event identifiers for the current result. |
isRecommended | boolean | Whether this exhibitor is recommended for the authenticated caller. |
recommendationRank | integer or null | Recommendation rank when available. |
matchStatus | string or null | Recommendation state. Values can include pending_unlock, processing, ready, and failed. |
matchScore | number or null | Recommendation match score when available. |
matchTier | string or null | Recommendation tier when available. Values can include top_match, strong_match, and qualifying_match. |
matchReason | string or null | Recommendation explanation when available. |
techStacks | string[] | Normalized tech-stack names. |
categories | string[] | Optional exhibitor categories. Present only when non-empty. |
semantics fields
| Field | Type | Notes |
|---|
accessMode | string | preview when the event is still preview-locked, full when full event access is active. |
previewLimit | integer or null | Currently 50 in preview mode; null in full mode. |
counts | object | Actual-versus-visible match counts for the current query. |
pageState | object | Whether the requested page is currently accessible. |
unlock | object | Whether an event unlock is required to see more results. |
guidance | object | Structured guidance for the current access state. |
semantics.counts fields
| Field | Type | Notes |
|---|
actualTotal | integer | Total matching exhibitors for the current query before preview gating. |
visibleTotal | integer | Total currently accessible under the present access mode. |
remainingLockedCount | integer | Count of matching exhibitors that remain inaccessible until event unlock. |
semantics.pageState fields
| Field | Type | Notes |
|---|
requestedPage | integer | Requested page number. |
accessible | boolean | false when the requested page falls outside the preview-accessible window. |
maxAccessiblePage | integer | Highest page currently accessible under the present access mode. |
semantics.unlock fields
| Field | Type | Notes |
|---|
requiredForMoreResults | boolean | true when event unlock is required to continue beyond the current preview boundary. |
actionType | string or null | Suggested follow-up action type, currently unlock_event_exhibitors when unlock is needed. |
credits | integer or null | Credits required by the suggested unlock action when present. |
semantics.guidance fields
| Field | Type | Notes |
|---|
code | string | Current codes include preview_page_inaccessible, preview_results_truncated, preview_complete_for_query, full_access, and no_matching_results. |
message | string | Human-readable explanation of the current access state. |
Response example
{
"items": [
{
"id": "456",
"companyName": "Acme",
"domain": "acme.com",
"description": null,
"website": "https://acme.com",
"industry": "Retail Technology",
"employeeCount": 120,
"country": "United States",
"logo": null,
"dataSource": "Lensmor",
"linkedinUrl": null,
"fundingRound": null,
"isRecommended": true,
"recommendationRank": 1,
"matchStatus": "ready",
"matchScore": 91,
"matchTier": "top_match",
"matchReason": "Strong fit for the buyer profile.",
"matched_event_ids": [
"139574"
],
"techStacks": [
"React",
"PostgreSQL"
],
"categories": [
"Retail",
"Fintech"
]
}
],
"total": 50,
"page": 1,
"pageSize": 50,
"totalPages": 1,
"hasMore": false,
"recommendationProcessing": false,
"semantics": {
"accessMode": "preview",
"previewLimit": 50,
"counts": {
"actualTotal": 87,
"visibleTotal": 50,
"remainingLockedCount": 37
},
"pageState": {
"requestedPage": 1,
"accessible": true,
"maxAccessiblePage": 1
},
"unlock": {
"requiredForMoreResults": true,
"actionType": "unlock_event_exhibitors",
"credits": 2000
},
"guidance": {
"code": "preview_results_truncated",
"message": "This event is locked. Only the first 50 matching exhibitors are currently accessible. Unlock the event to access the remaining matching results."
}
}
}
Error responses
400 Bad Request when event_id is invalid.
401 Unauthorized when the API key is missing, malformed, or invalid.
404 Not Found when the target event cannot be resolved.
Notes
- Use the
event_id returned by Lensmor event endpoints when requesting exhibitors for an event.
- In preview mode, only the first
50 matching exhibitors are currently accessible.
- If
semantics.pageState.accessible is false, the current page can be empty even when semantics.counts.actualTotal shows additional locked results.
- Recommendation fields are personalized for the authenticated caller and may be
null when recommendation data is not available.