# Short URL visit stats

View visit statistics for short URLs — one feature of the frozen shlink map, read out of the product's own
source at commit 4a8fee47d48b and named by a model. Nothing below was typed by a person: every
figure, path, line and quote on this page is from the exported bundle the map is drawn from.

- Page: https://featkpr.com/map/shlink/short-url-visit-stats
- The whole map: https://featkpr.com/map/shlink (markdown: https://featkpr.com/map/shlink.md)
- Module: Visit — 6 features in that band
- Status: code-only, awaiting a source
- HTTP operations: GET /rest/v{version:1|2|3}/short-urls/{shortCode}/visits
- Evidence: 1 citation across 1 file, all at commit 4a8fee47d48bcb949d6a5729ef32994f1f41464e

## What it is called, and who called it

The name is a model's answer, recorded as advice with the confidence it gave — not a fact
read out of the code. The citations below are the facts.

- Label (what the map draws): Short URL visit stats
- Name (what it does): View visit statistics for short URLs
- Model: anthropic/claude-sonnet-5
- Mode: decide
- Confidence: 0.5
- Named at: 2026-09-24T00:15:47Z
- Naming record: 63e649454a46b50bc8ab0609c48b7726decbe966412c63d90ef6086612b2496d
- Judge record: caa7579b7665d6750e7e67f356822c7e2df6e065200d51bbd6f8b8473ea111a3

## Which module it sits in, and how that was decided

- Drawn in: Visit
- The module the judge gave it: Settings
- How the module was decided: the founding candidate's component (candidate.extracted.component, invariant 26's module). The judge's module_overlay is 'Settings' for every feature in this store: the naming run was given the BookStack target config (its spend.recorded is titled 'auto-e2e init_naming bookstack'), so it answered in BookStack's module vocabulary. The API's own /spine still returns that one Settings band; this bundle does not.

## The evidence

1 citation in 1 file. Each is quoted exactly
as it was read, and every one is pinned at commit 4a8fee47d48bcb949d6a5729ef32994f1f41464e.

### 1. GET /rest/v{version:1|2|3}/short-urls/{shortCode}/visits

- Kind: api_operation
- Rung: route
- Found by: mezzio.action_routes
- Extractor key: `route|GET|Shlinkio\Shlink\Rest\Action\Visit\ShortUrlVisitsAction|version,shortCode`
- Commit: 4a8fee47d48bcb949d6a5729ef32994f1f41464e
- Anchored at: `module/Rest/src/Action/Visit/ShortUrlVisitsAction.php` line 15, bytes 403-448
- Blob: f9d9561f3f3ae7fe69b7942f8c46e80f68d6d09c705c1a113b3a93f678a95de2

Quoted from the source, exactly:

```
ROUTE_PATH = '/short-urls/{shortCode}/visits'
```

## What is empty here

These are zero. They are printed with their values rather than left out, because a
section quietly missing reads as a section that is full.

- Scenarios under it (`tree.total`): 0
- Scenarios covered (`coverage`): 0 of 0, by 0 tests
- Tests (`tests`): 0
- Screens (`screens`): 0
- Flows it belongs to (`flows`): 0
- Merge requests that touched it (`touched_by + recent_requests`): 0
- Open questions (`open_questions`): 0

This feature has been READ, not crawled and not run: its status is `code-only, awaiting a source`.

Across the whole map: 0 scenarios, 0 tests, 0 screens, 0 flows, 0 merge requests and 0 open questions, over 20 features.

## Where these came from

- Product: shlink
- Bundle: frozen, as of store sequence 78, 2026-09-24T00:15:47Z
- Commit every citation is pinned at: 4a8fee47d48bcb949d6a5729ef32994f1f41464e
- Events hash: 94dd0b7f8b14cfcc343621afa488b4c894c89e44920e5cd245e8617c2ea2e1c7
- View hash: 2100871e52c9ef1eb925163f933ccf397c663b2ef7af46b66cdf42579202d6b3
- `events_hash` hashes the event rows this bundle was built from; `view_hash` hashes the rendered view and is what `ae view hash` prints for the same store. Two digests of one store, never equal to each other.
- Repository: https://github.com/shlinkio/shlink — the --repo flag, a declared input. The store holds only a commit: no candidate or blob payload carries a repository or a URL. Never present this as a store fact.
- The event census behind the map, the 2 refused batches and what the naming cost: https://featkpr.com/map/shlink.md

## The rest of this module

- [Orphan visits](https://featkpr.com/map/shlink/orphan-visits) — DELETE /rest/v{version:1|2|3}/visits/orphan, GET /rest/v{version:1|2|3}/visits/orphan
- [Non-orphan visits](https://featkpr.com/map/shlink/non-orphan-visits) — GET /rest/v{version:1|2|3}/visits/non-orphan
- [Overall visit stats](https://featkpr.com/map/shlink/overall-visit-stats) — GET /rest/v{version:1|2|3}/visits
- [Domain visit stats](https://featkpr.com/map/shlink/domain-visit-stats) — GET /rest/v{version:1|2|3}/domains/{domain}/visits
- [Tag visit stats](https://featkpr.com/map/shlink/tag-visit-stats) — GET /rest/v{version:1|2|3}/tags/{tag}/visits

## Also here

- This page as HTML: https://featkpr.com/map/shlink/short-url-visit-stats
- The whole map: https://featkpr.com/map/shlink
- The whole map as markdown: https://featkpr.com/map/shlink.md
