---
title: "Trigger a member drill"
method: POST
path: "/api/v1/circles/{id}/members/{memberId}/drill"
tags: ["Circles"]
---

# Trigger a member drill

`POST /api/v1/circles/{id}/members/{memberId}/drill`

## Request

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

Fire a cross-channel Proof of Me identity challenge against an enrolled member (on-demand test).

## Path parameters

- `id` string, required: MongoDB ObjectId
- `memberId` string, required: MongoDB ObjectId

## Response `201`

Drill started

- CircleMemberDrillResponse: Result of manually triggering a member drill (Proof of Me)
  - `id` string, required: The identity-challenge (Authorization) id created for the drill
  - `status` 'pending', required
  - `confirm_channel` string: Channel the CONFIRM was dispatched on
  - `single_channel_warning` boolean: True when the owner has only one channel, so the CONFIRM ran on the same channel (degraded)

## Other responses

- `400`: No channel / config disabled
- `401`: Unauthorized
- `402`: card_required. Only once billing is live: a free account with no card on file that has used its included proofs and the 50-proof grace this month is refused new proof requests until a card is added (add_card_url). Proofs already issued keep working. The error carries add_card_url, used, included and hard_limit.
- `404`: Circle or member not found
- `409`: A drill is already in progress (`in_progress`), or the member opted out of circle checks (`member_opted_out`)
- `429`: The check's own anti-harassment limit was reached (a member may start a few checks per hour, and a person may be asked a few times per hour). `Retry-After`, `X-RateLimit-*` and the body's `retryAfter` describe that limit.

---

[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)
