---
title: "Read installation activity"
description: "Read recorded installation activity for an elapsed period of up to 31 days. Verified sign-ins require server authentication evidence. Offer metrics include only this installation’s linked captures; the optional offerId narrows only those metrics. Email acceptance is not inbox delivery. Confirmed redemption is not issuance and may have incomplete provider confirmation coverage. TEST and LIVE remain separate. This report is not software-module or variant attribution."
---

`GET /v1/developer/collections/{collection}/activity`

**Operation ID:** `getDeveloperActivitySummary`

Read recorded installation activity for an elapsed period of up to 31 days. Verified sign-ins require server authentication evidence. Offer metrics include only this installation’s linked captures; the optional offerId narrows only those metrics. Email acceptance is not inbox delivery. Confirmed redemption is not issuance and may have incomplete provider confirmation coverage. TEST and LIVE remain separate. This report is not software-module or variant attribution.

## Contract status

| Field | Value |
| --- | --- |
| Maturity | `beta` |
| Required capability | `telemetry.read` |
| Freshness class | `authenticated-state` |
| Quota cost | `1` |

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential's installation grants; identifiers in the URL never grant access.

## Request parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `from` | query | string | yes |  |
| `to` | query | string | yes |  |
| `offerId` | query | string | no |  |
| `collection` | path | string | yes |  |

## Request body

This operation has no JSON request body.

## cURL

Set `KISMET_API_ORIGIN=https://api.ksmt.app` and configure `KISMET_DEVELOPER_API_KEY` in your environment. Run server-credential requests from your backend, not browser code.

```sh
curl --request GET \
  "$KISMET_API_ORIGIN/v1/developer/collections/example-collection/activity?from=string&to=string" \
  --header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
  --header "Accept: application/json"
```

## Responses

| Status | Meaning |
| --- | --- |
| 200 | Success. |
| 400 | Invalid request parameters or body. |
| 401 | Missing, invalid, expired, or inappropriate credential/session. |
| 403 | Credential lacks the required grant/capability, or an origin/CSRF check failed. |
| 404 | The authorized resource was not found. |
| 409 | Request conflicts with the installation environment or current state. |
| 429 | Rate limit or quota exceeded; inspect response metadata before retrying. |
| 503 | A required Kismet dependency is temporarily unavailable. |

### 200 response example

```json
{
  "installationId": "10000000-0000-4000-8000-000000000003",
  "collectionId": "10000000-0000-4000-8000-000000000002",
  "environment": "TEST",
  "scope": "installation",
  "period": {
    "from": "2026-09-28T00:00:00.000Z",
    "to": "2026-09-29T00:00:00.000Z",
    "basis": "occurred_at"
  },
  "generatedAt": "2026-09-29T04:00:00.000Z",
  "offerId": null,
  "basis": "recorded_events",
  "metrics": {
    "verifiedSignIns": {
      "count": 2,
      "coverage": "complete",
      "reasons": [],
      "earliestAvailableAt": "2026-09-01T00:00:00.000Z",
      "lastObservedAt": "2026-09-28T18:00:00.000Z"
    },
    "offersIssued": {
      "count": 1,
      "coverage": "complete",
      "reasons": [],
      "earliestAvailableAt": "2026-09-01T00:00:00.000Z",
      "lastObservedAt": "2026-09-28T18:00:00.000Z"
    },
    "offerEmailsAccepted": {
      "count": 1,
      "coverage": "complete",
      "reasons": [],
      "earliestAvailableAt": "2026-09-01T00:00:00.000Z",
      "lastObservedAt": "2026-09-28T18:00:00.000Z"
    },
    "confirmedRedemptions": {
      "count": 0,
      "coverage": "partial",
      "reasons": [
        "CONFIRMATION_COVERAGE_UNKNOWN"
      ],
      "earliestAvailableAt": "2026-09-01T00:00:00.000Z",
      "lastObservedAt": null
    }
  }
}
```

### 200 response schema

Content type: `application/json`. Required fields, nullable values, and nested structures are defined below.

<details>
<summary>View complete response schema</summary>

```json
{
  "type": "object",
  "properties": {
    "installationId": {
      "type": "string",
      "format": "uuid"
    },
    "collectionId": {
      "type": "string",
      "format": "uuid"
    },
    "environment": {
      "type": "string",
      "enum": [
        "TEST",
        "LIVE"
      ]
    },
    "scope": {
      "type": "string",
      "enum": [
        "installation"
      ]
    },
    "period": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "format": "date-time"
        },
        "to": {
          "type": "string",
          "format": "date-time"
        },
        "basis": {
          "type": "string",
          "enum": [
            "occurred_at"
          ]
        }
      },
      "required": [
        "from",
        "to",
        "basis"
      ],
      "additionalProperties": false
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "offerId": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "basis": {
      "type": "string",
      "enum": [
        "recorded_events"
      ]
    },
    "metrics": {
      "type": "object",
      "properties": {
        "verifiedSignIns": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer",
              "minimum": 0,
              "nullable": true
            },
            "coverage": {
              "type": "string",
              "enum": [
                "complete",
                "partial",
                "unavailable"
              ]
            },
            "reasons": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "BEFORE_RETAINED_COVERAGE",
                  "SOURCE_NOT_AVAILABLE",
                  "CONFIRMATION_COVERAGE_UNKNOWN"
                ]
              }
            },
            "earliestAvailableAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "lastObservedAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          "required": [
            "count",
            "coverage",
            "reasons",
            "earliestAvailableAt",
            "lastObservedAt"
          ],
          "additionalProperties": false
        },
        "offersIssued": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer",
              "minimum": 0,
              "nullable": true
            },
            "coverage": {
              "type": "string",
              "enum": [
                "complete",
                "partial",
                "unavailable"
              ]
            },
            "reasons": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "BEFORE_RETAINED_COVERAGE",
                  "SOURCE_NOT_AVAILABLE",
                  "CONFIRMATION_COVERAGE_UNKNOWN"
                ]
              }
            },
            "earliestAvailableAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "lastObservedAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          "required": [
            "count",
            "coverage",
            "reasons",
            "earliestAvailableAt",
            "lastObservedAt"
          ],
          "additionalProperties": false
        },
        "offerEmailsAccepted": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer",
              "minimum": 0,
              "nullable": true
            },
            "coverage": {
              "type": "string",
              "enum": [
                "complete",
                "partial",
                "unavailable"
              ]
            },
            "reasons": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "BEFORE_RETAINED_COVERAGE",
                  "SOURCE_NOT_AVAILABLE",
                  "CONFIRMATION_COVERAGE_UNKNOWN"
                ]
              }
            },
            "earliestAvailableAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "lastObservedAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          "required": [
            "count",
            "coverage",
            "reasons",
            "earliestAvailableAt",
            "lastObservedAt"
          ],
          "additionalProperties": false
        },
        "confirmedRedemptions": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer",
              "minimum": 0,
              "nullable": true
            },
            "coverage": {
              "type": "string",
              "enum": [
                "complete",
                "partial",
                "unavailable"
              ]
            },
            "reasons": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "BEFORE_RETAINED_COVERAGE",
                  "SOURCE_NOT_AVAILABLE",
                  "CONFIRMATION_COVERAGE_UNKNOWN"
                ]
              }
            },
            "earliestAvailableAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "lastObservedAt": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          "required": [
            "count",
            "coverage",
            "reasons",
            "earliestAvailableAt",
            "lastObservedAt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "verifiedSignIns",
        "offersIssued",
        "offerEmailsAccepted",
        "confirmedRedemptions"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "installationId",
    "collectionId",
    "environment",
    "scope",
    "period",
    "generatedAt",
    "offerId",
    "basis",
    "metrics"
  ],
  "additionalProperties": false
}
```

</details>

## Machine-readable sources

- [This page as Markdown](/api/reference/get-developer-activity-summary.md)
- [Developer API OpenAPI v0.7.25](/openapi.json)
