Arkova Compliance API

Regulatory lookups, CLE verification, compliance checks

Operations 6

POST /compliance/check Compliance check #
GET /regulatory/lookup Regulatory record lookup #
GET /cle/verify CLE verification lookup #
GET /cle/credits CLE credit list #
POST /cle/submit Submit CLE completion #
GET /cle/requirements List CLE requirements by jurisdiction #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/arkova-ai:arkova-ai-compliance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

arkova-ai-compliance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arkova Verification Compliance API
  version: 1.0.1
  description: Programmatic credential verification API. Verify credentials anchored on the Bitcoin network. Worker-generated v1 JSON errors expose common top-level code and message fields. The legacy error field is retained unchanged (string or object), along with details and quota context, for existing integrations. Parse code and message for new integrations. Upstream gateway errors may not be JSON. Revision 1.0.1 restores legacy label and DIPLOMA inputs and clarifies receipts and webhook payloads; the endpoint version remains v1.
  contact:
    name: Arkova Support
    url: https://arkova.ai
servers:
- url: /api/v1
  description: Verification API v1
security:
- ApiKeyBearer: []
- ApiKeyHeader: []
tags:
- name: Compliance
  description: Regulatory lookups, CLE verification, compliance checks
paths:
  /compliance/check:
    post:
      summary: Compliance check
      description: Check an entity against SEC filings, Federal Register regulatory actions, and public attestations for a heuristic compliance risk score. x402 payment gate.
      operationId: complianceCheck
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - entity_name
              properties:
                entity_name:
                  type: string
                  minLength: 1
                  maxLength: 200
                entity_type:
                  type: string
                  enum:
                  - individual
                  - organization
                  default: organization
                check_types:
                  type: array
                  default:
                  - all
                  items:
                    type: string
                    enum:
                    - sec_filings
                    - sanctions
                    - regulatory_actions
                    - attestations
                    - all
                jurisdiction:
                  type: string
                  maxLength: 100
      responses:
        '200':
          description: Compliance check results with risk score
          content:
            application/json:
              schema:
                type: object
                properties:
                  entity:
                    type: object
                    properties:
                      name:
                        type: string
                      type:
                        type: string
                        enum:
                        - individual
                        - organization
                      jurisdiction:
                        type: string
                        description: Echoes the request jurisdiction; omitted when not supplied.
                  compliance_status:
                    type: string
                    enum:
                    - clear
                    - review_required
                  risk_level:
                    type: string
                    enum:
                    - low
                    - medium
                    - high
                  total_findings:
                    type: integer
                  findings_by_severity:
                    type: object
                    properties:
                      critical:
                        type: integer
                      warning:
                        type: integer
                      info:
                        type: integer
                  findings:
                    type: array
                    items:
                      type: object
                      properties:
                        category:
                          type: string
                          enum:
                          - sec_filing
                          - regulatory_action
                          - attestation
                        severity:
                          type: string
                          enum:
                          - info
                          - warning
                          - critical
                        source:
                          type: string
                        title:
                          type: string
                        date:
                          type:
                          - string
                          - 'null'
                          format: date-time
                        source_url:
                          type:
                          - string
                          - 'null'
                        anchor_status:
                          type:
                          - string
                          - 'null'
                  checked_at:
                    type: string
                    format: date-time
        '400':
          $ref: '#/components/responses/BadRequest'
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /regulatory/lookup:
    get:
      summary: Regulatory record lookup
      description: Search public regulatory records (EDGAR, Federal Register, DAPIP, OpenAlex). x402 payment gate.
      operationId: regulatoryLookup
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        description: Search query
      - name: source
        in: query
        schema:
          type: string
          enum:
          - edgar
          - federal_register
          - dapip
          - openAlex
          - all
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
          maximum: 100
      responses:
        '200':
          description: Regulatory record search results
        '400':
          $ref: '#/components/responses/BadRequest'
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /cle/verify:
    get:
      summary: CLE verification lookup
      description: Verify Continuing Legal Education credits. Responses use a public-safe allowlist and omit bar numbers, attorney names, raw metadata, internal IDs, filenames, claims, and chain transaction IDs. x402 payment gate.
      operationId: cleVerify
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      parameters:
      - name: bar_number
        in: query
        required: true
        schema:
          type: string
      - name: jurisdiction
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Public-safe CLE verification results
          content:
            application/json:
              schema:
                type: object
                properties:
                  jurisdiction:
                    type: string
                  compliance_status:
                    type: string
                    enum:
                    - compliant
                    - deficient
                    - unknown
                  summary:
                    type: object
                    properties:
                      total_cle_hours:
                        type: number
                      ethics_hours:
                        type: number
                      credits_by_category:
                        type: object
                        additionalProperties:
                          type: number
                      total_anchored_records:
                        type: integer
                      total_attestations:
                        type: integer
                  records:
                    type: array
                    items:
                      type: object
                      properties:
                        public_id:
                          type:
                          - string
                          - 'null'
                        course_title:
                          type:
                          - string
                          - 'null'
                        provider_name:
                          type:
                          - string
                          - 'null'
                        credit_hours:
                          type: number
                        credit_category:
                          type: string
                        delivery_method:
                          type:
                          - string
                          - 'null'
                        completion_date:
                          type:
                          - string
                          - 'null'
                        jurisdiction:
                          type: string
                        anchor_status:
                          type:
                          - string
                          - 'null'
                        anchored_at:
                          type:
                          - string
                          - 'null'
                  attestations:
                    type: array
                    items:
                      type: object
                      properties:
                        public_id:
                          type:
                          - string
                          - 'null'
                        attestation_type:
                          type:
                          - string
                          - 'null'
                        status:
                          type:
                          - string
                          - 'null'
                        created_at:
                          type:
                          - string
                          - 'null'
                  verified_at:
                    type: string
                    format: date-time
        '400':
          $ref: '#/components/responses/BadRequest'
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          $ref: '#/components/responses/RateLimited'
  /cle/credits:
    get:
      summary: CLE credit list
      description: List public-safe CLE credit records for a bar number lookup. x402 payment gate.
      operationId: cleCredits
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      parameters:
      - name: bar_number
        in: query
        required: true
        schema:
          type: string
      - name: jurisdiction
        in: query
        schema:
          type: string
      - name: period_start
        in: query
        schema:
          type: string
          format: date
      - name: period_end
        in: query
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Public-safe CLE credit rows
          content:
            application/json:
              schema:
                type: object
                properties:
                  jurisdiction:
                    type: string
                  total_credits:
                    type: integer
                  credits:
                    type: array
                    items:
                      type: object
                      properties:
                        public_id:
                          type:
                          - string
                          - 'null'
                        course_title:
                          type:
                          - string
                          - 'null'
                        provider_name:
                          type:
                          - string
                          - 'null'
                        credit_hours:
                          type: number
                        credit_category:
                          type: string
                        delivery_method:
                          type:
                          - string
                          - 'null'
                        completion_date:
                          type:
                          - string
                          - 'null'
                        jurisdiction:
                          type: string
                        anchor_status:
                          type:
                          - string
                          - 'null'
                        anchored_at:
                          type:
                          - string
                          - 'null'
        '400':
          $ref: '#/components/responses/BadRequest'
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          $ref: '#/components/responses/RateLimited'
  /cle/submit:
    post:
      summary: Submit CLE completion
      description: Submit a CLE course completion. x402 payment gate.
      operationId: cleSubmit
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - bar_number
              - course_title
              - provider_name
              - credit_hours
              - credit_category
              - jurisdiction
              - completion_date
              properties:
                bar_number:
                  type: string
                attorney_name:
                  type: string
                course_title:
                  type: string
                provider_name:
                  type: string
                provider_accreditation_number:
                  type: string
                credit_hours:
                  type: number
                credit_category:
                  type: string
                delivery_method:
                  type: string
                jurisdiction:
                  type: string
                completion_date:
                  type: string
                  format: date
                course_number:
                  type: string
      responses:
        '201':
          description: CLE completion submitted with public_id only; no internal anchor id or attorney identifier is returned
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - public_id
                - status
                - message
                - credit
                properties:
                  public_id:
                    type: string
                  status:
                    type: string
                    enum:
                    - PENDING
                  message:
                    type: string
                  credit:
                    type: object
                    additionalProperties: false
                    required:
                    - course_title
                    - credit_hours
                    - credit_category
                    - jurisdiction
                    - completion_date
                    properties:
                      course_title:
                        type: string
                      credit_hours:
                        type: number
                      credit_category:
                        type: string
                      jurisdiction:
                        type: string
                      completion_date:
                        type: string
                        format: date
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: Organization attribution unavailable — the submitter's organization could not be confirmed; no record was created; retryable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /cle/requirements:
    get:
      summary: List CLE requirements by jurisdiction
      description: Returns the built-in reference table of continuing legal education requirements per US jurisdiction (general-practitioner defaults; newly-admitted/specialist/pro-bono exemptions may apply).
      operationId: getCleRequirements
      tags:
      - Compliance
      security:
      - ApiKeyBearer: []
      - ApiKeyHeader: []
      - {}
      responses:
        '200':
          description: CLE requirements by jurisdiction
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_jurisdictions:
                    type: integer
                  jurisdictions:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
                      properties:
                        jurisdiction:
                          type: string
                  note:
                    type: string
        '402':
          description: Payment required (x402)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  responses:
    RateLimited:
      description: Rate limit exceeded
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until retry is allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  schemas:
    ApiError:
      type: object
      required:
      - error
      properties:
        error:
          oneOf:
          - type: string
          - type: object
            additionalProperties: true
            properties:
              code:
                type: string
              message:
                type: string
        code:
          type: string
          description: Common machine-readable error code; legacy error remains unchanged.
        message:
          type: string
  securitySchemes:
    ApiKeyBearer:
      type: http
      scheme: bearer
      description: 'API key as Bearer token: `Authorization: Bearer ak_live_...`'
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'API key via header: `X-API-Key: ak_live_...`'
    SupabaseJWT:
      type: http
      scheme: bearer
      description: Supabase JWT for key management endpoints