> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getsales.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Search website session owners

> Who visited: the team's website visits folded by owner, one row per person, company or unknown visitor by its latest visit, newest first, with how many visits it holds, how many are fresh and its newest three moments. filter takes every leaf of search_website_sessions; companies alone: company_sid is_null false with person_sid is_null true. Counts count owners; page_size 0 for them. One owner's visits: search_website_sessions by its sid. Private context: never tell the lead we know.

Contract:
- MCP tool `search_website_session_owners`, registry package `mcp.signals/website_session_owners`, mount `signals.visits`.
- Operation `search`, response envelope `search`.
- Flags: read only.



## OpenAPI

````yaml /api-reference/signals/openapi.yaml post /api/website-session-owners/search
openapi: 3.0.3
info:
  title: 'GetSales public contract: gs.service.signals'
  description: >-
    The signals service, its website lane: the team's registered sites with
    their key pages and tracked events, the team switch for the codes in links,
    and what the tracking plane saw: every visit as a session with its pages,
    forms and network, the browsers behind them and the people they were bound
    to; and, since P0 of its LinkedIn leg, who looked at a sender profile's
    LinkedIn profile (the sightings of the premium list, read once a day).


    GENERATED. This document is projected from the Zod MCP tool registry in
    `product/mcp/gs.mcp` (one tool per public endpoint, 1:1). Do not edit it by
    hand; edit the tool definition and regenerate with `pnpm openapi:public`.


    Surface: the public `/api` contract of `gs.service.signals`, 30 operations.
    This is the only OpenAPI document the platform publishes. Internal
    (`/internal`) and health endpoints are deliberately absent: they are not
    part of any contract, they can change without notice, and the service source
    is their only description.


    Conventions:

    - Auth is a bearer JWT, optionally narrowed by the `Team-SID` header.

    - Every success body is an MCP envelope: `success: true` plus one typed
    `operation` shape (`search`, `get`, `create`, `update`, `delete`, `metrics`,
    `group_by`, `action`), and a `meta` block with `trace_id` for support.

    - Every failure is the same `McpError` envelope with a code from a fixed
    16-code taxonomy, so a client maps errors once.

    - Lists page with `page_size` (0 to 500, default 50) plus an opaque forward
    `cursor`; `page_size: 0` returns counts only.

    - On `GET` and `DELETE`, object-valued query parameters (`filter`, `sort`)
    travel as JSON text and array-valued ones repeat as `name[]=value`.

    - The MCP-only `_meta` field (usage analytics) never reaches the backend and
    is not part of this contract.
  version: '1.0'
  contact:
    name: GetSales
    url: https://getsales.io
    email: support@getsales.io
  license:
    name: Proprietary
    url: https://getsales.io/terms
servers:
  - url: https://beta.getsales.io/signals/v1
    description: >-
      Production (the gateway path on the beta ring; the origin is provisioned
      per DEPLOY_MAP.md)
security:
  - BearerJwt: []
    TeamSid: []
tags:
  - name: profile_view_sightings
    description: >-
      Registry package `mcp.signals/profile_view_sightings`, served on MCP mount
      `signals.visits`.
  - name: signal_preferences
    description: >-
      Registry package `mcp.signals/signal_preferences`, served on MCP mount
      `signals.website`.
  - name: signal_settings
    description: >-
      Registry package `mcp.signals/signal_settings`, served on MCP mount
      `signals.website`.
  - name: website_key_pages
    description: >-
      Registry package `mcp.signals/website_key_pages`, served on MCP mount
      `signals.website`.
  - name: website_session_owners
    description: >-
      Registry package `mcp.signals/website_session_owners`, served on MCP mount
      `signals.visits`.
  - name: website_sessions
    description: >-
      Registry package `mcp.signals/website_sessions`, served on MCP mount
      `signals.visits`.
  - name: website_sites
    description: >-
      Registry package `mcp.signals/website_sites`, served on MCP mount
      `signals.website`.
  - name: website_tracked_events
    description: >-
      Registry package `mcp.signals/website_tracked_events`, served on MCP mount
      `signals.website`.
  - name: website_visitors
    description: >-
      Registry package `mcp.signals/website_visitors`, served on MCP mount
      `signals.visits`.
paths:
  /api/website-session-owners/search:
    post:
      tags:
        - website_session_owners
      summary: Search website session owners
      description: >-
        Who visited: the team's website visits folded by owner, one row per
        person, company or unknown visitor by its latest visit, newest first,
        with how many visits it holds, how many are fresh and its newest three
        moments. filter takes every leaf of search_website_sessions; companies
        alone: company_sid is_null false with person_sid is_null true. Counts
        count owners; page_size 0 for them. One owner's visits:
        search_website_sessions by its sid. Private context: never tell the lead
        we know.


        Contract:

        - MCP tool `search_website_session_owners`, registry package
        `mcp.signals/website_session_owners`, mount `signals.visits`.

        - Operation `search`, response envelope `search`.

        - Flags: read only.
      operationId: search_website_session_owners
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchWebsiteSessionOwnersRequest'
      responses:
        '200':
          description: '`search` success envelope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchWebsiteSessionOwnersResponse'
        4XX:
          $ref: '#/components/responses/McpClientError'
        5XX:
          $ref: '#/components/responses/McpServerError'
components:
  schemas:
    SearchWebsiteSessionOwnersRequest:
      type: object
      description: Request body of `search_website_session_owners`.
      properties:
        filter:
          type: object
          properties:
            sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_ws_
                  description: Website session sid (sg_ws_...).
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_ws_
                    description: Website session sid (sg_ws_...).
              additionalProperties: false
              description: Session sid(s), sg_ws_ prefix.
            site_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_si_
                  description: Website site sid (sg_si_...).
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_si_
                    description: Website site sid (sg_si_...).
              additionalProperties: false
              description: One site's visits (find the sid with search_website_sites).
            visitor_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_wv_
                  description: >-
                    Website visitor sid (sg_wv_...), the browser behind the
                    visit.
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_wv_
                    description: >-
                      Website visitor sid (sg_wv_...), the browser behind the
                      visit.
              additionalProperties: false
              description: One browser's visits.
            person_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^cr_pp_
                  description: 'Person sid (cr_pp_..., external: playtables).'
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^cr_pp_
                    description: 'Person sid (cr_pp_..., external: playtables).'
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                One person's visits; is_null false = known people, is_null true
                = nobody named.
            company_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^cr_co_
                  description: 'Company sid (cr_co_..., external: playtables).'
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^cr_co_
                    description: 'Company sid (cr_co_..., external: playtables).'
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The visits a company code or a network gave to one company;
                is_null false = known companies (a person's session carries no
                company_sid).
            fingerprint_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_fp_
                  description: >-
                    Website fingerprint sid (sg_fp_...), a device of the
                    fingerprint base.
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_fp_
                    description: >-
                      Website fingerprint sid (sg_fp_...), a device of the
                      fingerprint base.
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The sessions of one device of the fingerprint base; is_null true
                = no device known.
            attribution:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - code
                    - identified
                    - fingerprint
                    - manual
                    - company_code
                    - company_network
                    - none
                ne:
                  type: string
                  enum:
                    - code
                    - identified
                    - fingerprint
                    - manual
                    - company_code
                    - company_network
                    - none
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - code
                      - identified
                      - fingerprint
                      - manual
                      - company_code
                      - company_network
                      - none
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - code
                      - identified
                      - fingerprint
                      - manual
                      - company_code
                      - company_network
                      - none
              additionalProperties: false
              description: Which rung named the owner; ne none = every attributed visit.
            network_type:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                business | isp | mobile | hosting | education | government |
                unknown; eq business over company_sid is_null true = companies
                we do not hold.
            referrer_type:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - direct
                    - internal
                    - search
                    - social
                    - email
                    - ads
                    - referral
                    - ai_assistant
                    - unknown
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - direct
                      - internal
                      - search
                      - social
                      - email
                      - ads
                      - referral
                      - ai_assistant
                      - unknown
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - direct
                      - internal
                      - search
                      - social
                      - email
                      - ads
                      - referral
                      - ai_assistant
                      - unknown
              additionalProperties: false
              description: Where the visit came from.
            key_page:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A key page slug (pricing): the sessions that reached it; is_null
                false = reached any key page, is_null true = none. The slugs are
                search_website_key_pages' keys.
            form:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A form name: the sessions with a form of that name in events[];
                is_null false = submitted any form (anonymous and company-only
                sessions included), is_null true = none.
            event:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A custom event name: the sessions with an event of that name in
                events[] (registered or not), letter case ignored as the
                tracked-event registry matches it; is_null false = sent any
                custom event, is_null true = none.
            geo_country:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: ISO 3166-1 alpha-2.
            device:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - desktop
                    - mobile
                    - tablet
                    - unknown
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - desktop
                      - mobile
                      - tablet
                      - unknown
              additionalProperties: false
              description: desktop | mobile | tablet | unknown.
            browser:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: As the parser names it (Chrome, Safari...).
            os:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: As the parser names it (Windows, macOS, iOS...).
            is_internal:
              type: object
              properties:
                eq:
                  type: boolean
              additionalProperties: false
              description: >-
                The team's own traffic (the site's ignored_ips, an email of its
                own domains). No default scope: internal visits are shown unless
                this says otherwise.
            started_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 bounds: the period ("this week" is gte seven days ago).
                Combine bounds in one object.
            closed_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                is_null true = the sessions open now (someone may still be on
                the site).
            created_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 bounds on when the session was opened here: "new since
                I looked" is created_at gt the member's seen_at
                (get_signal_preferences). "When" stays started_at.
          description: >-
            Field filters, ANDed: {field: {eq | ne | in | nin | gte | lte | gt |
            lt | is_null}}; q inside it is free text. Omit for every row.
        include:
          type: array
          items:
            type: string
            enum:
              - visitor
              - person
              - company
            description: >-
              visitor: the browser's row; person and company: the owner's sid
              (the cards are owed).
          description: Relations to attach to every item; omit for the bare rows.
        page_size:
          type: integer
          minimum: 0
          maximum: 200
          description: 0..200, default 50; 0 = counts only, 1 = the first row.
        cursor:
          type: string
          nullable: true
          description: pagination.next_cursor of the previous page.
        fresh:
          type: object
          properties:
            sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_ws_
                  description: Website session sid (sg_ws_...).
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_ws_
                    description: Website session sid (sg_ws_...).
              additionalProperties: false
              description: Session sid(s), sg_ws_ prefix.
            site_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_si_
                  description: Website site sid (sg_si_...).
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_si_
                    description: Website site sid (sg_si_...).
              additionalProperties: false
              description: One site's visits (find the sid with search_website_sites).
            visitor_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_wv_
                  description: >-
                    Website visitor sid (sg_wv_...), the browser behind the
                    visit.
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_wv_
                    description: >-
                      Website visitor sid (sg_wv_...), the browser behind the
                      visit.
              additionalProperties: false
              description: One browser's visits.
            person_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^cr_pp_
                  description: 'Person sid (cr_pp_..., external: playtables).'
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^cr_pp_
                    description: 'Person sid (cr_pp_..., external: playtables).'
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                One person's visits; is_null false = known people, is_null true
                = nobody named.
            company_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^cr_co_
                  description: 'Company sid (cr_co_..., external: playtables).'
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^cr_co_
                    description: 'Company sid (cr_co_..., external: playtables).'
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The visits a company code or a network gave to one company;
                is_null false = known companies (a person's session carries no
                company_sid).
            fingerprint_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^sg_fp_
                  description: >-
                    Website fingerprint sid (sg_fp_...), a device of the
                    fingerprint base.
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^sg_fp_
                    description: >-
                      Website fingerprint sid (sg_fp_...), a device of the
                      fingerprint base.
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The sessions of one device of the fingerprint base; is_null true
                = no device known.
            attribution:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - code
                    - identified
                    - fingerprint
                    - manual
                    - company_code
                    - company_network
                    - none
                ne:
                  type: string
                  enum:
                    - code
                    - identified
                    - fingerprint
                    - manual
                    - company_code
                    - company_network
                    - none
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - code
                      - identified
                      - fingerprint
                      - manual
                      - company_code
                      - company_network
                      - none
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - code
                      - identified
                      - fingerprint
                      - manual
                      - company_code
                      - company_network
                      - none
              additionalProperties: false
              description: Which rung named the owner; ne none = every attributed visit.
            network_type:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                business | isp | mobile | hosting | education | government |
                unknown; eq business over company_sid is_null true = companies
                we do not hold.
            referrer_type:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - direct
                    - internal
                    - search
                    - social
                    - email
                    - ads
                    - referral
                    - ai_assistant
                    - unknown
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - direct
                      - internal
                      - search
                      - social
                      - email
                      - ads
                      - referral
                      - ai_assistant
                      - unknown
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - direct
                      - internal
                      - search
                      - social
                      - email
                      - ads
                      - referral
                      - ai_assistant
                      - unknown
              additionalProperties: false
              description: Where the visit came from.
            key_page:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A key page slug (pricing): the sessions that reached it; is_null
                false = reached any key page, is_null true = none. The slugs are
                search_website_key_pages' keys.
            form:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A form name: the sessions with a form of that name in events[];
                is_null false = submitted any form (anonymous and company-only
                sessions included), is_null true = none.
            event:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                A custom event name: the sessions with an event of that name in
                events[] (registered or not), letter case ignored as the
                tracked-event registry matches it; is_null false = sent any
                custom event, is_null true = none.
            geo_country:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: ISO 3166-1 alpha-2.
            device:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - desktop
                    - mobile
                    - tablet
                    - unknown
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - desktop
                      - mobile
                      - tablet
                      - unknown
              additionalProperties: false
              description: desktop | mobile | tablet | unknown.
            browser:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: As the parser names it (Chrome, Safari...).
            os:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: As the parser names it (Windows, macOS, iOS...).
            is_internal:
              type: object
              properties:
                eq:
                  type: boolean
              additionalProperties: false
              description: >-
                The team's own traffic (the site's ignored_ips, an email of its
                own domains). No default scope: internal visits are shown unless
                this says otherwise.
            started_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 bounds: the period ("this week" is gte seven days ago).
                Combine bounds in one object.
            closed_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                is_null true = the sessions open now (someone may still be on
                the site).
            created_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 bounds on when the session was opened here: "new since
                I looked" is created_at gt the member's seen_at
                (get_signal_preferences). "When" stays started_at.
          description: >-
            A second filter with the same leaves that marks visits inside
            `filter` (a visit is fresh when both keep it): "new since I looked"
            is created_at {gt: seen_at}. No leaf marks nothing.
        fresh_owners:
          type: string
          enum:
            - only
            - without
          description: >-
            only = list the owners holding a fresh visit; without = list the
            owners holding none. Absent lists every owner. With no `fresh`, only
            lists nothing.
    SearchWebsiteSessionOwnersResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        operation:
          type: string
          enum:
            - search
        items:
          type: array
          items:
            type: object
            properties:
              item:
                type: object
                properties:
                  owner_type:
                    type: string
                    enum:
                      - person
                      - company
                      - visitor
                    description: >-
                      person: a rung of the ladder named someone; company: only
                      a company code in our link or the visitor's network named
                      one; visitor: nobody is named for the browser yet.
                  owner_sid:
                    type: string
                    description: >-
                      cr_pp_... (person, playtables), cr_co_... (company,
                      playtables) or sg_wv_... (visitor): the row's key.
                  latest:
                    type: object
                    properties:
                      sid:
                        type: string
                        description: Website session sid (sg_ws_...).
                      team_sid:
                        type: string
                        description: 'Owning team (ts_tm_..., external: gs.service.id).'
                      site_sid:
                        type: string
                        description: The registered site (sg_si_...).
                      visitor_sid:
                        type: string
                        description: >-
                          The browser behind the visit (sg_wv_...); a person may
                          own several.
                      person_sid:
                        type: string
                        nullable: true
                        description: >-
                          The person a rung named (cr_pp_..., playtables); null
                          while nobody did. A person always takes a session over
                          from a company.
                      company_sid:
                        type: string
                        nullable: true
                        description: >-
                          The company a company code in our link or the network
                          named when no person did (cr_co_..., playtables);
                          cleared when a person takes the session over.
                      attribution:
                        type: string
                        enum:
                          - code
                          - identified
                          - fingerprint
                          - manual
                          - company_code
                          - company_network
                          - none
                        description: >-
                          Which rung named the owner: code (the person code in
                          our link), identified (an identify or a form),
                          fingerprint (the device), manual (a bind by hand),
                          company_code (the company code in our link: the
                          company, never a person; every code on a site set to
                          companies), company_network (the network, a company);
                          none while nothing did.
                      fingerprint_sid:
                        type: string
                        nullable: true
                        description: >-
                          The device the fingerprint base saw the session from
                          (sg_fp_...); null when none was stored.
                      started_at:
                        type: string
                        description: >-
                          ISO 8601 UTC, the receipt time of the first hit. The
                          feed's order, newest first.
                      last_seen_at:
                        type: string
                        description: >-
                          ISO 8601 UTC, the receipt time of the newest hit; the
                          row grows until the close.
                      closed_at:
                        type: string
                        nullable: true
                        description: >-
                          ISO 8601 UTC, set by the sweep 30 minutes after
                          last_seen_at; null = the visitor may still be on the
                          site.
                      pageviews_count:
                        type: integer
                        minimum: 0
                        description: Every page view, beyond the cap of pages too.
                      engaged_seconds:
                        type: integer
                        minimum: 0
                        description: >-
                          The sum over page views of the largest engaged time
                          each reported.
                      entry_path:
                        type: string
                        description: The path of the first page view, with its query.
                      exit_path:
                        type: string
                        description: The path of the last page view.
                      pages:
                        type: array
                        items:
                          type: object
                          properties:
                            page_id:
                              type: string
                              description: >-
                                The page view's id from the wire (12
                                characters).
                            path:
                              type: string
                              description: >-
                                The page's path with its query, the code in our
                                link removed by the script.
                            title:
                              type: string
                              nullable: true
                              description: The document title; null when none.
                            engaged_seconds:
                              type: integer
                              minimum: 0
                              description: >-
                                The largest engaged time a ping of this page
                                view reported, in whole seconds.
                            first_seen_at:
                              type: string
                              description: >-
                                ISO 8601 UTC, the receipt time of the pageview
                                hit.
                            scroll_pct:
                              type: integer
                              nullable: true
                              minimum: 0
                              maximum: 100
                              description: >-
                                The deepest scroll a ping of this page view
                                reported, 0 to 100; null until one did (and on
                                visits folded before 2026-10-07).
                          required:
                            - page_id
                            - path
                            - title
                            - engaged_seconds
                            - first_seen_at
                            - scroll_pct
                        description: >-
                          The first 50 page views, in order, each with its
                          engaged time.
                      events:
                        type: array
                        items:
                          type: object
                          properties:
                            kind:
                              type: string
                              enum:
                                - event
                                - form
                              description: >-
                                event: a custom event the site sent; form: a
                                form it reported (a marked form's submit, or a
                                form a server-side identify named).
                            name:
                              type: string
                              description: >-
                                The event's name or the form's name as the site
                                sent it. A form's email never rides here.
                            at:
                              type: string
                              description: ISO 8601 UTC, the receipt time of the hit.
                            page_id:
                              type: string
                              description: The page view the hit belonged to.
                          required:
                            - kind
                            - name
                            - at
                            - page_id
                        description: >-
                          The first 50 custom events and forms, in order; every
                          event the site sent, registered or not.
                      key_pages:
                        type: array
                        items:
                          type: string
                        description: >-
                          The keys (slugs) of the site's key pages reached, in
                          the order first reached: what the key_page filter
                          matches and the signal visited_key_page reads.
                      referrer_type:
                        type: string
                        enum:
                          - direct
                          - internal
                          - search
                          - social
                          - email
                          - ads
                          - referral
                          - ai_assistant
                          - unknown
                        description: >-
                          Where the visit came from, decided on the first page
                          view: direct, internal (another page of the site),
                          search, social, email, ads (a click id or a paid
                          utm_medium), referral, ai_assistant (ChatGPT,
                          Perplexity, Claude and the like), unknown.
                      referrer_host:
                        type: string
                        nullable: true
                        description: >-
                          The referrer's host, lowercased, no www.; null when
                          absent or unreadable.
                      utm_source:
                        type: string
                        nullable: true
                      utm_medium:
                        type: string
                        nullable: true
                      utm_campaign:
                        type: string
                        nullable: true
                      utm_content:
                        type: string
                        nullable: true
                      utm_term:
                        type: string
                        nullable: true
                      landing_code:
                        type: string
                        nullable: true
                        description: >-
                          The first code a hit of the session carried (the
                          person code or the company code in the link we sent);
                          null when none.
                      browser:
                        type: string
                        nullable: true
                        description: >-
                          The parser's name (Chrome, Safari, Firefox...); null
                          when unknown.
                      browser_version:
                        type: string
                        nullable: true
                      os:
                        type: string
                        nullable: true
                        description: >-
                          Windows, macOS, iOS, Android, Linux...; null when
                          unknown.
                      os_version:
                        type: string
                        nullable: true
                      device:
                        type: string
                        enum:
                          - desktop
                          - mobile
                          - tablet
                          - unknown
                        description: desktop | mobile | tablet | unknown.
                      screen:
                        type: string
                        nullable: true
                        description: >-
                          {width}x{height} of the screen; null when the first
                          page view did not report it.
                      language:
                        type: string
                        nullable: true
                        description: The browser's first language; null when not reported.
                      timezone:
                        type: string
                        nullable: true
                        description: The browser's IANA zone; null when not reported.
                      geo_country:
                        type: string
                        nullable: true
                        description: >-
                          ISO 3166-1 alpha-2 from the edge's location header;
                          null when the edge gave none.
                      geo_region:
                        type: string
                        nullable: true
                      geo_city:
                        type: string
                        nullable: true
                      ip:
                        type: string
                        description: >-
                          The client address of the first hit (IPv4 or IPv6);
                          its network part only once the network answer is
                          stored on a site with anonymize_ip.
                      network_status:
                        type: string
                        enum:
                          - pending
                          - resolved
                          - failed
                          - private
                        description: >-
                          pending until the data service answered for the
                          address; resolved with the network columns filled;
                          failed (no answer after the asks); private (an address
                          nobody is asked about).
                      network_type:
                        type: string
                        nullable: true
                        description: >-
                          The data service's classification of the block:
                          business, isp, mobile, hosting, education, government
                          or unknown; null until resolved.
                      network_name:
                        type: string
                        nullable: true
                        description: >-
                          The organization the block is registered to, else the
                          registry's name of the block ("Deutsche Telekom",
                          "Hetzner"); null until resolved.
                      network_domain:
                        type: string
                        nullable: true
                        description: >-
                          The company domain the data service derived for a
                          business network; null when none.
                      asn:
                        type: integer
                        nullable: true
                        description: The origin AS; null until resolved.
                      as_name:
                        type: string
                        nullable: true
                        description: The AS holder; null until resolved.
                      is_internal:
                        type: boolean
                        description: >-
                          A hit came from one of the site's ignored_ips, or an
                          identified email of the team's own domains: the team's
                          own traffic, never a fact, never a signal.
                      created_at:
                        type: string
                        description: ISO 8601 UTC.
                      updated_at:
                        type: string
                        description: ISO 8601 UTC.
                    required:
                      - sid
                      - team_sid
                      - site_sid
                      - visitor_sid
                      - person_sid
                      - company_sid
                      - attribution
                      - fingerprint_sid
                      - started_at
                      - last_seen_at
                      - closed_at
                      - pageviews_count
                      - engaged_seconds
                      - entry_path
                      - exit_path
                      - pages
                      - events
                      - key_pages
                      - referrer_type
                      - referrer_host
                      - utm_source
                      - utm_medium
                      - utm_campaign
                      - utm_content
                      - utm_term
                      - landing_code
                      - browser
                      - browser_version
                      - os
                      - os_version
                      - device
                      - screen
                      - language
                      - timezone
                      - geo_country
                      - geo_region
                      - geo_city
                      - ip
                      - network_status
                      - network_type
                      - network_name
                      - network_domain
                      - asn
                      - as_name
                      - is_internal
                      - created_at
                      - updated_at
                    description: >-
                      The owner's newest visit under the filter, the session's
                      own row, verbatim.
                  sessions_count:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                    description: How many visits the filter keeps of the owner.
                  fresh_count:
                    type: integer
                    minimum: 0
                    description: >-
                      Of them, the visits the `fresh` filter keeps too; 0 when
                      the request marked nothing.
                  recent_types:
                    type: array
                    items:
                      type: string
                      enum:
                        - website_form_submitted
                        - website_key_page_visited
                        - website_event
                        - website_visited
                    maxItems: 3
                    description: >-
                      The strongest moment of each of the owner's newest visits,
                      newest first, at most 3: a form submitted, else a key page
                      reached, else a custom event the site registered, else the
                      visit itself. The first is latest's.
                required:
                  - owner_type
                  - owner_sid
                  - latest
                  - sessions_count
                  - fresh_count
                  - recent_types
              included:
                type: object
                properties:
                  visitor:
                    type: object
                    properties:
                      sid:
                        type: string
                    required:
                      - sid
                    description: >-
                      The browser behind the visit, the WebsiteVisitorDomain
                      verbatim (bound person, identified email, sessions_count,
                      the latest attributes; // see ./website_visitors.md).
                  person:
                    type: object
                    properties:
                      sid:
                        type: string
                    required:
                      - sid
                    description: >-
                      The person a rung named: { sid } today (cr_pp_...), the
                      compact card is owed. Absent while person_sid is null.
                  company:
                    type: object
                    properties:
                      sid:
                        type: string
                    required:
                      - sid
                    description: >-
                      The company a company code or the network named when
                      nobody else did: { sid } today (cr_co_...). Absent while
                      company_sid is null.
            required:
              - item
              - included
        pagination:
          type: object
          properties:
            next_cursor:
              type: string
              nullable: true
            has_more:
              type: boolean
            total_count:
              type: integer
              nullable: true
          required:
            - next_cursor
            - has_more
            - total_count
        applied_filters:
          type: object
          additionalProperties: {}
        includes:
          type: array
          items:
            type: string
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
        counts:
          type: object
          properties:
            total_count:
              type: integer
              minimum: 0
              description: The owners the request lists.
            sessions_count:
              type: integer
              minimum: 0
              description: The visits the filter keeps of them.
            groups:
              type: object
              properties:
                owner_type:
                  anyOf:
                    - type: object
                      additionalProperties: {}
                    - type: array
                      items: {}
                  description: >-
                    The listed owners of each kind (person, company, visitor);
                    the kinds that occur only, [] when none.
                fresh:
                  type: object
                  properties:
                    'true':
                      type: integer
                      minimum: 0
                    'false':
                      type: integer
                      minimum: 0
                  required:
                    - 'true'
                    - 'false'
                  description: The listed owners split by whether they hold a fresh visit.
              required:
                - owner_type
                - fresh
          required:
            - total_count
            - sessions_count
            - groups
      required:
        - success
        - operation
        - items
        - pagination
        - applied_filters
        - includes
        - meta
    McpError:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
                - nothing_to_update
                - not_found
                - relation_not_found
                - invalid_transition
                - limit_exceeded
                - payment_required
                - duplicate_rejected
                - conflict
                - delete_blocked
                - unauthorized
                - forbidden
                - rate_limited
                - internal_error
                - service_unavailable
                - not_implemented
            message:
              type: string
            recoverable:
              type: boolean
            suggestion:
              type: string
            field_errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    rule:
                      type: string
                    message:
                      type: string
                  required:
                    - rule
                    - message
            blockers:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: >-
                      Machine-readable blocker type (active_flow, pending_tasks,
                      …).
                  severity:
                    type: string
                    enum:
                      - hard
                      - soft
                    description: >-
                      hard = external action required; soft = acknowledge is
                      enough.
                  description:
                    type: string
                  entity_sid:
                    type: string
                    nullable: true
                  count:
                    type: integer
                  resolution:
                    type: string
                    description: 'Hard: tool name to call. Soft: code for acknowledge[].'
                  resolution_hint:
                    type: string
                required:
                  - type
                  - severity
                  - description
                  - entity_sid
                  - resolution
                  - resolution_hint
            context:
              type: object
              additionalProperties: {}
          required:
            - code
            - message
            - recoverable
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
      required:
        - success
        - error
  responses:
    McpClientError:
      description: >-
        MCP error envelope. `error.code` is one of validation_failed,
        nothing_to_update, not_found, relation_not_found, invalid_transition,
        limit_exceeded, payment_required, duplicate_rejected, conflict,
        delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
    McpServerError:
      description: >-
        MCP error envelope with `error.code` internal_error or
        service_unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
  securitySchemes:
    BearerJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Access token issued by gs.service.id. Its `access_identity` claim
        carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is
        authoritative.
    TeamSid:
      type: apiKey
      in: header
      name: Team-SID
      description: >-
        Team scope for tokens that do not carry one. Ignored when the token
        already names a team.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.