---
title: "Admin Recent Activity"
method: GET
path: "/v1/me/admin/activity"
tags: ["identity"]
---

# Admin Recent Activity

`GET /v1/me/admin/activity`

Recent sessions and runs across EVERY customer workspace, in one call.

THE READ THE ADMIN CONSOLE ACTUALLY MAKES. `/v2/api/activity` wants "what
just happened anywhere", and every list route below it is scoped to one team
— so it fanned out `/sessions` + `/runs` per team and awaited all of them at
once. At 40 workspaces that is 80 concurrent requests against four api lanes
sharing ~40 database slots: a single team read costs 0.44s, but the fan-out
measured p95 5.76s and 24.9s end to end (2026-08-27), which is why the page
sat on its skeletons and why everything else queued behind it.

Authorisation is `list_customer_teams`' own — the local-operator gate — and
the team list it returns is the exact scope of the read, so this can never
reach a workspace the caller could not already list.

## Query parameters

- `sessions_per_team` integer
- `runs_per_team` integer

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stormy/stormy-control-plane/revisions/057ff10926a4/schema)
