---
title: "Read knowledge base activity for a date range"
method: GET
path: "/products/help-desk/knowledge-base/analytics"
tags: ["help-desk"]
---

# Read knowledge base activity for a date range

`GET /products/help-desk/knowledge-base/analytics`

## Request

- Base URL: `https://api.sparkvault.com/v1`
- URL: `https://api.sparkvault.com/v1/products/help-desk/knowledge-base/analytics`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sparkvault/apis/sparkvault-api/docs/products/help-desk/knowledge-base/analytics/get.ts> (a function with typed inputs; its response is checked against the schema)

Any help desk operator may read this report with their own console session. Dates are account-local, inclusive, at most 366 days, and cannot end in the future. The previous period has equal length. Views and searches are browser-recorded events, not verified people; search result counts are client-observed. Query text is never accepted or stored. Helpful votes count one current sample per article/browser pseudonym, with changes retained on the original date/category. Partial reports are explicitly marked. Imported lifetime counts are separate from every dated metric.

## Query parameters

- `from` string, date, required
- `to` string, date, required

## Response `200`

The saved result.

- object
  - `data` KnowledgeBaseAnalytics, required
    - `from` string, date, required
    - `to` string, date, required
    - `time_zone` string, required
    - `partial` boolean, required
    - `kpis` KnowledgeBaseAnalyticsFigures, required
      - `views` integer, required
      - `searches` integer, required
      - `no_results` integer, required
      - `helpful_yes` integer, required
      - `helpful_no` integer, required
      - `helpful_total` integer, required
      - `helpful_pct` number, nullable, required
      - `no_results_pct` number, nullable, required
    - `previous` KnowledgeBaseAnalyticsFigures, required
      - `views` integer, required
      - `searches` integer, required
      - `no_results` integer, required
      - `helpful_yes` integer, required
      - `helpful_no` integer, required
      - `helpful_total` integer, required
      - `helpful_pct` number, nullable, required
      - `no_results_pct` number, nullable, required
    - `series` object[], required
      - `day` string, date, required
      - `views` integer, required
      - `searches` integer, required
      - `no_results` integer, required
      - `helpful_yes` integer, required
      - `helpful_no` integer, required
    - `articles` object[], required
      - `article_id` string
      - `title` string
      - `slug` string
      - `views` integer
      - `searches` integer
      - `no_results` integer
      - `helpful_yes` integer
      - `helpful_no` integer
      - `helpful_total` integer
      - `helpful_pct` number, nullable
      - `no_results_pct` number, nullable
    - `categories` object[], required
      - `category_id` string
      - `name` string
      - `views` integer
      - `searches` integer
      - `no_results` integer
      - `helpful_yes` integer
      - `helpful_no` integer
      - `helpful_total` integer
      - `helpful_pct` number, nullable
      - `no_results_pct` number, nullable
    - `imported_totals` object, nullable, required: Source lifetime counts have no date history and never enter the selected range or previous period.
      - `views` integer, required
      - `helpful_yes` integer, required
      - `helpful_no` integer, required
  - `meta` ResponseMeta: Envelope metadata present on every successful response.
    - `api_version` string
    - `request_id` string
    - `response_ms` integer
    - `timestamp` integer: Unix seconds.
    - `pools` object: Storage and bandwidth capacity snapshot for the account.
    - `billing` object
      - `past_due` boolean
    - `quota` object: This minute of the account request budget. Present on authenticated success responses that passed the throttle; absent otherwise.
      - `limit` integer
      - `used` integer
      - `remaining` integer
      - `resets_at` integer: Unix seconds.

## Other responses

- `400`: VALIDATION_ERROR — the request contains an invalid or unsupported value.
- `401`: AUTHENTICATION_ERROR — a current organization session is required.
- `403`: FORBIDDEN — a help desk operator session is required; API keys and impersonated sessions are refused.
- `404`: NOT_FOUND — this account has no matching article, category, image, revision or operation.
- `409`: CONFLICT — a stale version, publication in progress, changed public release, or lifecycle fence. Reload before retrying.
- `429`: RATE_LIMIT_EXCEEDED — wait for the Retry-After interval.

## Changes

- **2026-10-28** `a9a10e328ba5`: 24 info
  - the response property `error/details` became required for the status `400`
  - the response property `error/details` became required for the status `401`
  - the response property `error/details` became required for the status `403`
  - the response property `error/details` became required for the status `404`
  - …20 more
- **2026-10-28** `56d7c265a77a`: 6 breaking
  - the response property `error/details` became nullable for the status `400`
  - the response property `error/details` became nullable for the status `401`
  - the response property `error/details` became nullable for the status `403`
  - the response property `error/details` became nullable for the status `404`
  - …2 more
- **2026-10-27** `ac44ec1f8cfa`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sparkvault/apis/sparkvault-api/changes/products/help-desk/knowledge-base/analytics/get.md)

---

[API](https://skmtc.dev/sparkvault/apis/sparkvault-api.md) - [All operations](https://skmtc.dev/sparkvault/apis/sparkvault-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sparkvault/apis/sparkvault-api/revisions/97cfadccd0c0?raw)
