---
title: "Attest Register"
method: POST
path: "/attest/register"
tags: ["auth"]
---

# Attest Register

`POST /attest/register`

Verify a fresh attestation and upsert the device's App Attest key.

Idempotent: a re-register with the same ``key_id`` overwrites the
existing row (the public key is deterministic for a given key id,
so a "different key" would have failed Apple's attestation check).

## Request body

- AttestRegisterRequest — Body for ``POST /attest/register``.
  - `key_id` string, required
  - `attestation_object` string, required
  - `nonce` string, required

## Response `200`

Successful Response

- AttestRegisterResponse — Response for ``POST /attest/register``.
  - `ok` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/55d56c4beab4/schema)
