---
title: "Get Agent"
method: GET
path: "/api/mesh/agents/{agent_key}"
tags: ["mesh"]
---

# Get Agent

`GET /api/mesh/agents/{agent_key}`

## Request

- Base URL: `https://api.superit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.superit.ai/api/mesh/agents/{agent_key}`
- Auth: HTTP bearer

Get agent detail by key.

## Path parameters

- `agent_key` string, required

## Query parameters

- `team_key` string, required

## Response `200`

Successful Response

- AgentDetail: Agent with full details.
  - `key` string, required
  - `deviceKey` string, nullable
  - `hostname` string, required
  - `osPlatform` string, nullable
  - `osFamily` string, nullable
  - `osVersion` string, nullable
  - `kernelVersion` string, nullable
  - `version` string, nullable
  - `isOnline` boolean
  - `connection` DeviceConnection: A device's connection tier as the API reports it. ``since`` is the continuity anchor — when the current unbroken stretch began. ``last_contact`` is the last time either stream was heard from, which is what an offline device's tooltip counts from. Both are raw timestamps: the client renders the relative wording so it stays live in a long-open tab.
    - `tier` 'online' | 'unstable' | 'offline', required: How much the mesh trusts a device's reachability right now. Deliberately describes observed connection quality, not a tested prediction that a command will succeed — nothing here exercises the agent's command responder, so a claim of confidence would be unearned.
    - `reasonCode` 'steady' | 'recently_connected' | 'flapping' | 'stream_disagreement' | 'slowing' | 'unreachable' | 'never_seen', required: Why a device landed on its tier. Unstable collapses three different faults, so the badge shows the tier and the tooltip shows this.
    - `since` string, nullable
    - `lastContact` string, nullable
    - `recentGaps` integer
  - `lastSeen` string, nullable
  - `systemInfo` object, nullable
  - `sessions` SessionDetail[]
    - `key` string, required
    - `username` string, required
    - `hostname` string, required
    - `operatingSystem` string, required
    - `machineId` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `lastObserved` string, nullable
    - `isOnline` boolean
    - `isLoggedIn` boolean
    - `isVerified` boolean
    - `verifiedAt` string, nullable
    - `verifiedUser` SessionUser: User info for verified session.
      - `id` integer, required
      - `name` string, required
      - `email` string, required
    - `verificationMethod` 'aad_auto' | 'admin_manual' | 'aad_pending' | 'install_key' | 'legacy'
    - `lastUsedAt` string, nullable
  - `metrics` object, nullable

## Other responses

- `400`: Invalid input
- `401`: Not authenticated
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Conflict
- `422`: Validation Error

---

[API](https://skmtc.dev/superit/apis/super-it-api.md) - [All operations](https://skmtc.dev/superit/apis/super-it-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superit/apis/super-it-api/revisions/4944d556c2bb?raw)
