Skip to main content
Search exhibitors using company context. Use this endpoint when you want exhibitor results derived from company inputs such as a public company URL or target audience description.

When to use this endpoint

Use POST /external/exhibitors/search when your integration starts from a company profile or buyer profile rather than a known event. Common use cases include:
  • Finding exhibitors similar to a target company.
  • Exploring companies that match a market or buyer description.
  • Creating a shortlist before checking which events those companies attend.
  • Powering a prospecting workflow where the user provides a website and asks “who should we look at?”
If you already know the exact company name and want a precision-first lookup, use Search exhibitors by company name. If you need events directly from a company name, use Search exhibitor events.

Endpoint

POST /external/exhibitors/search

Authentication

See Authentication

Success status code

201 Created

Request body

NameRequiredTypeNotes
company_urlConditionallystringCompany website URL used as an input hint. Provide at least one of company_url or target_audience.
target_audienceConditionallystringFree-form audience description. Provide at least one of company_url or target_audience.
pageNointegerDefaults to 1.
pageSizeNointegerDefaults to 20; maximum 100.

Request example

curl -X POST "https://platform.lensmor.com/external/exhibitors/search" \
  -H "Authorization: Bearer $LENSMOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company_url":"https://acme.example","page":1,"pageSize":20}'

Search by audience description

curl -X POST "https://platform.lensmor.com/external/exhibitors/search" \
  -H "Authorization: Bearer $LENSMOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_audience": "Retail operations leaders evaluating in-store analytics and workforce automation",
    "page": 1,
    "pageSize": 20
  }'

Response example

{
  "items": [
    {
      "id": "456",
      "companyName": "Acme Retail Systems",
      "domain": "acme.example",
      "description": "Retail analytics platform",
      "website": "https://acme.example",
      "industry": "Retail Technology",
      "employeeCount": 220,
      "country": "United States",
      "logo": null,
      "dataSource": "database",
      "linkedinUrl": null,
      "fundingRound": "Series B",
      "techStacks": ["Cloudflare", "Nginx"],
      "matched_event_ids": ["139574"],
      "buyingSignalTags": ["funding_round"],
      "buyingSignalStatus": null,
      "buyingSignals": [
        {
          "signalTag": "funding_round",
          "signalDate": "2026-03-01",
          "sourceType": "news",
          "sourceTitle": "Acme raises $50M Series B",
          "sourceUrl": "https://techcrunch.com/...",
          "evidenceSummary": "Acme completed a $50M Series B round.",
          "relevanceToIcp": "Strong signal — company expanding headcount post-funding.",
          "recommendedPlay": "Reach out with a congratulatory opening.",
          "signalScore": 85,
          "confidence": "high",
          "directOrInferred": "direct",
          "analyzedAt": "1704067200000"
        }
      ]
    }
  ],
  "total": 87,
  "page": 1,
  "pageSize": 20,
  "totalPages": 5,
  "hasMore": true
}

Response fields

FieldDescription
itemsMatching exhibitor records for the requested page.
idLensmor exhibitor identifier.
companyNameCompany or exhibitor display name.
domain, websiteCompany domain and website URL when available.
descriptionShort company description.
industry, employeeCount, countryEnrichment fields that may be missing for some records.
linkedinUrlCompany LinkedIn URL when available.
fundingRoundFunding stage or funding metadata when available.
techStacksTechnology stack signals. Always returned as an array.
matched_event_idsRelated event identifiers from the search context.
buyingSignalTagsDeduped buying-signal labels from the latest analysis batch. [] when none.
buyingSignalStatusAlways null on this endpoint (no event-scoped task state).
buyingSignalsFull latest-batch buying-signal objects (see Exhibitors list for the object shape). [] when none.
total, page, pageSize, totalPages, hasMorePagination metadata.

Matching behavior

This endpoint is profile-style search. It can return useful results even when the input is a company website or natural-language audience description rather than an exact exhibitor name. No matches are represented as a successful empty paginated response:
{
  "items": [],
  "total": 0,
  "page": 1,
  "pageSize": 20,
  "totalPages": 0,
  "hasMore": false
}

Error responses

  • 400 Bad Request
  • 401 Unauthorized
  • 429 Too Many Requests

Notes

  • This endpoint uses POST because the request body contains structured profile inputs (URLs, audience descriptions) that do not fit cleanly in query parameters. It does not create a persistent resource.
  • This endpoint accepts profile-style search inputs rather than a simple keyword-only query.
  • The live service returns matched_event_ids as an empty array for this heuristic search.
  • techStacks is always returned as an array; when no data is available, the API returns techStacks: [].
  • buyingSignalStatus is always null on this endpoint; buyingSignalTags and buyingSignals still reflect the latest analysis batch and are [] when none.
  • No matches return an empty paginated success response rather than 404 Not Found.
  • If you need deduplicated event results directly from a company name, use POST /external/exhibitors/search-events.