---
title: "Submit CLE completion"
method: POST
path: "/cle/submit"
tags: ["Compliance"]
---

# Submit CLE completion

`POST /cle/submit`

## Request

- Base URL: `https://app.arkova.ai/api/v1`
- URL: `https://app.arkova.ai/api/v1/cle/submit`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
  - none

Submit a CLE course completion. x402 payment gate.

## Request body

- object
  - `bar_number` string, required
  - `attorney_name` string
  - `course_title` string, required
  - `provider_name` string, required
  - `provider_accreditation_number` string
  - `credit_hours` number, required
  - `credit_category` string, required
  - `delivery_method` string
  - `jurisdiction` string, required
  - `completion_date` string, date, required
  - `course_number` string

## Response `201`

CLE completion submitted with public_id only; no internal anchor id or attorney identifier is returned

- object
  - `public_id` string, required
  - `status` 'PENDING', required
  - `message` string, required
  - `credit` object, required
    - `course_title` string, required
    - `credit_hours` number, required
    - `credit_category` string, required
    - `jurisdiction` string, required
    - `completion_date` string, date, required

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `402`: Payment required (x402)
- `429`: Rate limit exceeded
- `503`: Organization attribution unavailable — the submitter's organization could not be confirmed; no record was created; retryable

---

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