---
title: "View stats for a drop"
method: GET
path: "/drops/{slug}/stats"
---

# View stats for a drop

`GET /drops/{slug}/stats`

## Request

- Base URL: `https://ship.page`
- URL: `https://ship.page/drops/{slug}/stats`
- Auth: HTTP bearer

Pageview stats for a drop you own. Bots, crawlers and previews in the ship.page dashboard are excluded; views count page loads of HTML pages, not raw asset requests. Free accounts only get the view count (access: locked). Pro (access: pro) adds the last 24 hours and 7 days, a 90-day daily series and top referrers, top pages and top countries. Pass days to narrow the daily series and the breakdowns; total, last_24h and last_7d always cover everything retained. Pageviews are retained for 90 days.

## Path parameters

- `slug` string, required

## Query parameters

- `days` integer

## Response `200`

Drop stats.

- object
  - `slug` string, required
  - `access` 'locked' | 'pro', required: locked on free accounts, which only get slug and total. pro adds every other field.
  - `total` integer, required: All-time views within the 90-day retention window.
  - `last_24h` integer: Pro only.
  - `last_7d` integer: Pro only.
  - `window_days` integer: Pro only. History window of the daily series: 90.
  - `days` integer: Pro only. Days covered by daily and the breakdowns: the requested days, clamped to 1..window_days.
  - `daily` object[]
    - `day` string, required: YYYY-MM-DD (UTC)
    - `views` integer, required
  - `top_referrers` object[]: Paid plans only. Up to 5 entries; 'direct' means no referrer.
    - `label` string, required
    - `views` integer, required
  - `top_paths` object[]: Paid plans only. Up to 5 entries.
    - `label` string, required
    - `views` integer, required
  - `top_countries` object[]: Paid plans only. Up to 5 entries; label is an uppercase ISO 3166-1 alpha-2 code. Views without a known country are left out.
    - `label` string, required
    - `views` integer, required

## Other responses

- `401`: Missing or invalid credential.
- `404`: Not found (also returned for resources owned by someone else).

## Changes

- **2026-10-20** `99aad34506e8`: 4 breaking, 28 warning, 4 info
  - the response property `daily` became optional for the status `200`
  - the response property `last_24h` became optional for the status `200`
  - the response property `last_7d` became optional for the status `200`
  - the response property `window_days` became optional for the status `200`
  - …32 more

[Operation history](https://skmtc.dev/ship/apis/ship-page/changes/drops/:slug/stats/get.md)

---

[API](https://skmtc.dev/ship/apis/ship-page.md) · [All operations](https://skmtc.dev/ship/apis/ship-page/llms.txt) · [OpenAPI document](https://skmtc.dev/ship/apis/ship-page/revisions/99aad34506e8?raw)
