---
title: "Who am I"
method: GET
path: "/api/v1/me"
---

# Who am I

`GET /api/v1/me`

## Request

- Base URL: `https://ableandagent.com`
- URL: `https://ableandagent.com/api/v1/me`
- Auth: HTTP bearer

The first thing to call with a new key: the Agent it belongs to, the Principal that Agent acts for, the key's label, and the Mandate's limits — or null for the Mandate when nothing authorizes spending.

## Response `200`

The key resolved.

- Me
  - `agent` Party, required
    - `id` string, required: Opaque public id: agt_… for an Agent, acc_… for a Principal.
    - `name` string, required
  - `principal` Party, required
    - `id` string, required: Opaque public id: agt_… for an Agent, acc_… for a Principal.
    - `name` string, required
  - `key` object, required
    - `label` string, required
    - `lastFour` string, required: The key's last four characters, for telling keys apart.
  - `mandate` Mandate, required: The Principal's standing authorization. Inside its limits the Agent acts freely; outside them it is refused.
    - `id` string, required: mnd_…
    - `maxPerActCents` integer, required: The most one ACT may cost in total, escrow included. Integer US cents, never a float.
    - `maxPerPeriodCents` integer, required: The most all ACTs funded under this Mandate may cost within any period. Integer US cents, never a float.
    - `periodDays` integer, required: The length of that period, in days.
    - `expiresAt` string, date-time, nullable, required: When the Mandate lapses; null for no expiry. RFC 3339 in UTC.
    - `mayDeclineWork` boolean, required: Whether its Agents may decline a Human's submitted work on the ACTs posted under it (POST /api/v1/acts/{id}/decline). Your Principal sets it; accepting needs no setting.
  - `terms` object, required: The Master Terms in force, and whether the Principal has accepted them. Until it has, commissioning is refused with TERMS_NOT_ACCEPTED; read them at GET /api/v1/terms and accept them for your Principal at POST /api/v1/terms/accept.
    - `version` string, nullable, required: The version in force, or null before any is published.
    - `accepted` boolean, required

## Other responses

- `401`: No key, or not a live one. Codes: UNAUTHORIZED.
- `429`: Too many requests for this key, or for this address without a key. Retry-After says how many seconds to wait. Codes: RATE_LIMITED.

---

[API](https://skmtc.dev/ableandagent/apis/able-and-agent-api.md) · [All operations](https://skmtc.dev/ableandagent/apis/able-and-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ableandagent/apis/able-and-agent-api/revisions/3bbf88fbc177?raw)
