---
title: "Search Web Visits"
method: POST
path: "/v1/web-visits"
tags: ["Web Visits", "v1"]
---

# Search Web Visits

`POST /v1/web-visits`

Search for web visits within a date range. Returns a paginated list of visit records including engagement data, visitor information, and location.

:::info
Requires the `web_visits:read` OAuth2 scope.
:::

## Query parameters

- `account_id` string, required
- `page[num]` integer
- `page[size]` integer
- `include` 'company'

## Request body

- object
  - `start_date` string, date, required — The start of the date range to search (inclusive). Must be a valid ISO 8601 date.
  - `end_date` string, date, required — The end of the date range to search (inclusive). Must be a valid ISO 8601 date.
  - `filters` object
    - `company_id` string — Filter visits by company ID.
    - `location_cities` string[] — Filter visits by city names.
    - `location_country_codes` string[] — Filter visits by ISO 3166-1 alpha-2 country codes.

## Response `200`

Success

- object
  - `data` WebVisitV1[], required
    - `type` 'web_visit', required — The type of the object
    - `id` string, required — The unique identifier for the web visit.
    - `attributes` object, required
      - `started_at` string, date-time, required — Datetime when the visit happened, rounded to minutes.
      - `source` string, required — Referrer traffic source (e.g. facebook).
      - `medium` string, nullable, required — Referrer traffic medium (e.g. cpc).
      - `campaign` string, nullable, required — Value of the utm_campaign or name of AdWords campaign.
      - `referring_url` string, nullable, required — Referrer URL.
      - `keyword` string, nullable, required — Referrer keyword (search engine search phrase).
      - `landing_page_path` string, required — Path of the first page the visitor viewed.
      - `page_depth` integer, required — Number of page views the visit contains.
      - `visit_length` integer, required — Duration of the visit in seconds.
      - `device_type` string, nullable, required — Identified device type.
      - `identifiers` object, required
        - `lf_client_id` string, required — Visitor's ID as seen by Leadfeeder.
        - `ga_client_ids` string[], required — Visitor IDs as seen by Google Analytics.
        - `adobe_cookies` object[], required — Visitor's Adobe cookies (MCMID, MCAAMB, MCAAMLH).
      - `visitor` object, required
        - `email` string, nullable, required — Email address of the identified visitor.
        - `first_name` string, nullable, required — First name of the identified visitor.
        - `last_name` string, nullable, required — Last name of the identified visitor.
      - `engagements` union[], required — The list of engagement events recorded during the visit. Each item represents one of: page view, form submit, file download, or video view.
        - union
          - object
            - `id` string, required — Unique identifier of the engagement
            - `time` string, required — Date and time at which the engagement took place. Format: '%Y-%m-%dT%T%:z'
            - `hostname` string, required — Hostname of the visited page.
            - `page` object, required
              - …
            - `previous_page_path` string, required — Path of the previous visited page.
            - `has_met_goals` boolean, required — Whether any conversion goals were met on this page.
            - `event_type` string, required
            - `time_on_page` integer — Time spent on page in seconds.
          - object
            - `id` string, required — Unique identifier of the engagement
            - `time` string, required — Date and time at which the engagement took place. Format: '%Y-%m-%dT%T%:z'
            - `hostname` string, required — Hostname of the visited page.
            - `page` object, required
              - …
            - `previous_page_path` string, required — Path of the previous visited page.
            - `has_met_goals` boolean, required — Whether any conversion goals were met on this page.
            - `event_type` string, required
            - `form` object, required — Form details.
              - …
          - object
            - `id` string, required — Unique identifier of the engagement
            - `time` string, required — Date and time at which the engagement took place. Format: '%Y-%m-%dT%T%:z'
            - `hostname` string, required — Hostname of the visited page.
            - `page` object, required
              - …
            - `previous_page_path` string, required — Path of the previous visited page.
            - `has_met_goals` boolean, required — Whether any conversion goals were met on this page.
            - `event_type` string, required
            - `file` object, required — File details.
              - …
          - object
            - `id` string, required — Unique identifier of the engagement
            - `time` string, required — Date and time at which the engagement took place. Format: '%Y-%m-%dT%T%:z'
            - `hostname` string, required — Hostname of the visited page.
            - `page` object, required
              - …
            - `previous_page_path` string, required — Path of the previous visited page.
            - `has_met_goals` boolean, required — Whether any conversion goals were met on this page.
            - `event_type` string, required
            - `video` object, required — Video details.
              - …
    - `relationships` object, required
      - `location` VisitLocationV1, required
        - `type` 'visit_location', required — The type of the object
        - `id` string, required — The unique identifier for the location.
        - `attributes` object, required
          - `country` string, required — The country name.
          - `country_code` string, required — The ISO 3166-1 alpha-2 country code.
          - `region` string, required — The region or state name.
          - `city` string, required — The city name.
          - `geonames_id` string, nullable, required — The GeoNames ID.
          - `postal_code` string, required — The postal code.
      - `company` union, required — The company the contact is associated with. By default this field only contains the `id` and `type` fields, but you can load all company attributes by passing the `include=company` url parameter.
        - object
          - `id` string, required — The Leadfeeder company ID.
          - `type` 'company', required
        - CompanyV1
          - `type` 'company', required — The type of the object
          - `id` string, required — The Leadfeeder company ID.
          - `attributes` object, required
            - `address` object, required
              - …
            - `alternative_names` string[], required — An array of alternate / previous spellings of the company name.
            - `alternative_urls` string[], required — A set of alternative URLs related to the company.
            - `custom_fields` object, required — A dictionary of custom field values, indexed by their unique field IDs.
            - `description` string, nullable, required — A text containing information about the company (native language)
            - `earnings` object, nullable, required
              - …
            - `emails` object[], required — Email address(es) for the company (eg. info@, service@ or support@).
              - …
            - `employee_count` integer, nullable, required — The currently known headcount for this company.
            - `employee_range` '1-10' | '11-100' | '101-500' | '501-1.000' | '1.001-5.000' | '5.001-10.000' | '10.000+' | 'null', nullable, required — A range indicator of the approximate headcount for this company.
            - `founded_year` integer, nullable, required — A number representing the year when the company was founded.
            - `industries` object, required — A list of the company's industries.
              - …
            - `keywords` string[], required — An array of keywords about the company and its products that have been extracted from the website. They will be returned in your user's language.
            - `legal_form` string, nullable, required — The company's legal form (i.e. GmbH, SARL or Limited).
            - `logo_url` string, uri, nullable, required — The URL of the company's logo.
            - `meta` object, required
              - …
            - `name` string, required — The legal name of the company
            - `net_worth` object, nullable, required
              - …
            - `orientation` string[], required — The target audience(s) of the company. The value 'B2B' indicates that the company is primarily focused on business customers, while 'B2C' indicates a focus on individual consumers. The value 'OTHER' means it’s a public (likely non-commercial) service or institution.
            - `phones` object[], required — The central phone number(s) of the company.
              - …
            - `previous_ids` string[], required — A list of former ids that the company was known by in the past. The ID may have changed for example due to a merger with another company. The list is empty if there are no previous IDs.
            - `register` object, required
              - …
            - `revenue` object, nullable, required
              - …
            - `role` 'single_entity' | 'group' | 'group_member' | 'null', nullable, required — This field indicates the role of the company within its group structure.
            - `social_media_profiles` object, required — List of social media pages.
              - …
            - `url` string, nullable, required — The URL of the company website.
            - `vat_id` string, nullable, required — The company's VAT ID (tax ID).
            - `web_engagement` object, required — Web engagement data for a company.
              - …
            - `intent` object, required
              - …
          - `relationships` object, required
            - `group_company` union, required — The group company head. The field may be null if the company is a single entity. By default this field only contains the `id` and `type` fields, but you can load all company attributes by passing the `include=group_company` url parameter.
              - …
            - `tags` TagV1[] — Tags assigned to the company. By default this field is not displayed, but you can load it by passing the `include=tags` url parameter.
              - …
            - `lists` ListV1[] — Lists that include this company. By default this field is not displayed, but you can load it by passing the `include=lists` url parameter.
              - …
            - `web_visits` WebVisitV1[] — Web visits associated with the company. It returns first 20 visits from last 7 days. By default this field is not displayed, but you can load it by passing the `include=web_visits` url parameter.
            - `crm_connections` CRMConnectionV1[] — CRM connections associated with the company. By default this field is not displayed, but you can load it by passing the `include=crm_connections` url parameter.
              - …
            - `crm_suggestions` CRMSuggestionV1[] — CRM suggestions associated with the company. By default this field is not displayed, but you can load it by passing the `include=crm_suggestions` url parameter.
              - …
            - `crm_group_connections` CRMGroupConnectionV1[] — CRM group connections associated with the company. By default this field is not displayed, but you can load it by passing the `include=crm_group_connections` url parameter.
              - …
            - `icps` ICPV1[] — Ideal Customer Profiles (ICPs) defined in the account that this company matches. By default this field is not displayed, but you can load it by passing the `include=icps` url parameter.
              - …
  - `meta` object, required
    - `pagination` object, required
      - `page_num` integer, required
      - `page_count` integer, required
      - `total_count` integer, required
    - `request_id` string, required — A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403` — Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `429` — Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500` — Internal server error
- `504` — Server timeout

---

[API](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api.md) · [All operations](https://skmtc.net/leadfeeder/apis/leadfeeder-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/leadfeeder/leadfeeder-public-api/revisions/9e2e63ba2a4e/schema)
