---
title: "Get a Circle"
method: GET
path: "/api/v1/circles/{id}"
tags: ["Circles"]
---

# Get a Circle

`GET /api/v1/circles/{id}`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/circles/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `auth_token`

Get a single Circle by id.

## Path parameters

- `id` string, required: MongoDB ObjectId

## Response `200`

Circle

- Circle: A Circle — a named group of trusted contacts
  - `id` string, required: MongoDB ObjectId
  - `user_id` string, required: MongoDB ObjectId
  - `name` string, nullable, required
  - `owner_name` string, nullable, required: How this Circle's members know its owner; null when unset
  - `profile_id` string, required: MongoDB ObjectId
  - `environment` 'production' | 'test', required
  - `proof_me_enabled` boolean, required
  - `status` 'active' | 'archived', required: Lifecycle state of a Circle (archived = soft-retired)
  - `member_count` integer, required
  - `members` CircleMember[], required
    - `id` string, required: MongoDB ObjectId
    - `name` string, required
    - `status` 'pending' | 'active', required
    - `has_telegram` boolean, required: Whether the member has a Telegram channel (declared or verified)
    - `has_whatsapp` boolean, required: Whether the member has a WhatsApp channel (declared or verified)
    - `mesh_opted_in` boolean, required
    - `mesh_opt_out` boolean, required: The member sent /opt_out: they receive no drills, reminders or checks they did not start themselves
    - `enrolled_phone_hint` string, nullable, required: Masked form of the phone the contact proved when they enrolled (the Telegram shared contact or the WhatsApp sender) — country prefix and last four digits only, never the full number. Lets the owner see who actually joined. Null until the member enrolls, and for members enrolled before it was recorded.
    - `enrolled_at` string, date-time, nullable, required
    - `last_verified_at` string, date-time, nullable, required: When this member last CONFIRMED an identity check asked of them — i.e. last proved it was them. Null until they have.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Unauthorized
- `404`: Circle not found

---

[API](https://skmtc.dev/proof/apis/proof-holdings-api.md) · [All operations](https://skmtc.dev/proof/apis/proof-holdings-api/llms.txt) · [OpenAPI document](https://skmtc.dev/proof/apis/proof-holdings-api/revisions/b15f506de696?raw)
