Less boo. More booked. Halloween offer: 30 days free on any paid plan. Claim 30 days freeEvery new account gets one free mailbox for warmup and replies. No domain to buy. See how it works

Skip to content

Search companies

API referenceLeads

From the Leads API reference. Requests use the base URL https://app.warmerly.com/api/v1 and an API key, see Authentication.

text
GET /leads/search
Query paramTypeRequiredDescription
qstring (max 200)NoFull-text search across company name, description, and other indexed fields.
countrystring (exactly 2 letters)NoISO country code, e.g. GB.
categorystring (max 400)NoOne or more categories, comma-separated (e.g. Restaurant,CafeOrCoffeeShop). Matches a company's declared business type or industry exactly.
providerstring (max 100)NoEmail provider segment, e.g. google, microsoft.
techstring (max 300)NoOne or more technologies, comma-separated (e.g. shopify,klaviyo), matches companies using any of them.
channel"email" \| "form" \| "linkedin"NoWhich contact channel a company must have. Defaults to email: a company with no published contact address is never returned unless you ask for a different channel. form returns companies publishing a contact form, linkedin those with a company page. There is no value that removes the requirement.
hasPhone"true"NoOnly companies publishing a telephone number. The flag filters (this one and the next four) accept "true" or "false"; "false" narrows nothing, and any other value returns 400 invalid_filters.
hasCompanyNumber"true"NoOnly companies publishing a Companies House registration number, in practice, UK-registered.
hasVatNumber"true"NoOnly companies publishing a VAT number.
hiring"true"NoOnly companies linking a careers page or stating they are hiring.
hasContactForm"true"NoOnly companies publishing a contact form URL.
citystring (max 120)NoTown or city, matched through the same text index as q.
employeeBandstring (max 20)NoOne coarse size band, e.g. 11-50. Exact match, not a range.
foundedFrom / foundedTointeger (1200-2100)NoInclusive founded-year range.
cursorstring (UUID)NoPass the previous response's nextCursor to fetch the next page.
limitinteger (1-100)NoPage size. Default 50.

Parameters that fail validation return 400 bad_request with the message invalid_filters.

bash
curl "https://app.warmerly.com/api/v1/leads/search?country=GB&category=Restaurant&tech=shopify&limit=25" \
  -H "X-Api-Key: wmv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
json
{
  "rows": [
    { "id": "b1e6a2c4-9f3d-4a7e-8c1b-2d5f9a3e7c6b", "domain": "northwindtraders.com", "...": "every other field of the company object" }
  ],
  "nextCursor": "b1e6a2c4-9f3d-4a7e-8c1b-2d5f9a3e7c6b"
}

Each row is the full company object. The response holds rows only: the number of matches and how complete the records are come from GET /leads/count. nextCursor is null on the last page; keep paging with it until it is null. With channel=form or channel=linkedin a row's contactEmail can be null.

This endpoint has its own per-user throttle, separate from your API key's per-minute rate limit, see Rate limits below.

Was this page helpful?