Adopt
Connections

Where the seat numbers come from

Adopt argues that a seat is idle. That argument is only worth making if the figure came from the vendor's own admin API rather than an estimate — so every number carries its source, and anything derived rather than measured says so.

Demo workspace — synthetic organisation. Not measured telemetry.
Measured from a vendor API
0%
0 of 48 monthly rows
Connectors built
4
Implemented to a documented endpoint
Deliberately not built
2
Endpoint exists, number would mislead

Every seat figure on the Stack page is currently seeded. Connect a vendor below and the same page will recompute from measured activity. Until then the euro figures demonstrate the method, not your organisation.

Available connectors

Two different things can be verified, and conflating them would be dishonest. Endpoints are verified live — `npm run test:contract` calls every one of these with a deliberately invalid credential and confirms it resolves, serves the path, accepts the request shape and rejects only on the credential. No endpoint here is guessed. Response bodies under real data are not verified — that needs a tenant, so every connector below still reports unproven.

Admin token

Required to store credentials or run a sync. Set as ADOPT_ADMIN_TOKEN in the environment. Held for this browser tab only, never written to disk.

Microsoft 365 CopilotMicrosoftUnproven against a live tenantunconfigured
Reports.Read.AllVendor docs
GitHub CopilotGitHubUnproven against a live tenantunconfigured
read:orgmanage_billing:copilotVendor docs
Claude EnterpriseAnthropicUnproven against a live tenantunconfigured
Admin API keyVendor docs
Gemini for WorkspaceGoogleUnproven against a live tenantunconfigured
https://www.googleapis.com/auth/admin.reports.audit.readonlyVendor docs
Researched and deliberately not built

An endpoint exists for each of these. Wiring it would have been quick and would have produced a number that looks authoritative and measures something other than what the Stack page claims.

Slack AIPOST https://slack.com/api/admin.analytics.getFile (type=member, date=YYYY-MM-DD)

Member analytics measures SLACK activity — messages posted, days active — not Slack AI usage. Wiring it would show a high utilisation figure for a tool nobody is using the AI features of, because everyone opens Slack. That is worse than no number. Revisit if Slack exposes AI-specific member metrics. Also returns gzipped JSONL rather than JSON, and 'file_not_yet_available' for recent dates.

ChatGPT EnterpriseOpenAI Compliance Logs Platform, workspace-scoped Admin key

The platform exports immutable time-windowed JSONL log files rather than a seat report, and OpenAI's own help centre notes counts differ between the Compliance API and Workspace Analytics because one is raw and one is cleaned. Deriving a seat-utilisation figure from raw conversation logs is an inference, not a measurement, and it would sit on the Stack page next to figures that are measurements. Needs a documented seat/analytics endpoint before it is worth building.

Recent syncs
failedgithub-copilot0 rowsSun, 20 Sep 2026 21:02:25 GMT

401 Unauthorized: { "message": "Bad credentials", "documentation_url": "https://docs.github.com/rest", "status": "401" }

failedgithub-copilot0 rowsSun, 20 Sep 2026 18:45:22 GMT

401 Unauthorized: { "message": "Bad credentials", "documentation_url": "https://docs.github.com/rest", "status": "401" }