---
title: "Complete an assessment"
method: POST
path: "/v1/assessments/{assessmentId}/complete"
tags: ["Assessments"]
---

# Complete an assessment

`POST /v1/assessments/{assessmentId}/complete`

## Request

- Base URL: `https://api.ironfang.com/security`
- URL: `https://api.ironfang.com/security/v1/assessments/{assessmentId}/complete`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Finishes the assessment. `completed` and `partial` resolve the findings this assessment's coverage examined (outcome `completed`, and nothing `failed` or `skipped` for the same thing) that it did not see; `failed` and `cancelled` resolve nothing. Completing again with the same status answers the assessment; with another, 409.

## Request body

- CompleteAssessmentRequest
  - `checks` object
    - `attempted` integer, required
    - `completed` integer, required
    - `failed` integer, required
  - `coverage` Coverage[]
    - `check` string, required: A check id, a check group, or a namespace wildcard such as ironfang.wordpress.plugin.*.
    - `outcome` 'completed' | 'failed' | 'skipped', required
    - `resource` object: Omitted for the whole asset.
      - `identifier` string, required
      - `type` string, required
  - `protocol_version` 1, required
  - `reason` string
  - `status` 'completed' | 'partial' | 'failed' | 'cancelled', required

## Response `200`

The assessment.

- Assessment
  - `asset` AssetRef, required
    - `id` string, uuid, required
    - `name` string, required
    - `type` 'domain' | 'hostname' | 'ip_address' | 'service' | 'website' | 'host' | 'virtual_machine' | 'container' | 'container_image' | 'kubernetes_cluster' | 'kubernetes_namespace' | 'cloud_account' | 'wordpress_installation' | 'repository' | 'application' | 'api', required
  - `batches_received` integer, required
  - `checks` object
    - `attempted` integer, required
    - `completed` integer, required
    - `failed` integer, required
  - `client_reference` string
  - `completed_at` string, date-time
  - `created_at` string, date-time, required
  - `expires_at` string, date-time: While open, when it fails if not completed.
  - `findings` object, required
    - `new` integer, required
    - `observed` integer, required
    - `reopened` integer, required
    - `resolved` integer, required
  - `id` string, uuid, required
  - `protocol_version` integer, required
  - `results_received` integer, required
  - `scan_id` string, uuid: The External Security Check this assessment is.
  - `source` object, required
    - `instance` string
    - `name` string, required
    - `type` 'external_scan' | 'wordpress_agent' | 'linux_agent' | 'kubernetes_agent' | 'container_scanner' | 'cloud_integration' | 'dependency_scanner' | 'ai_assessment' | 'nuclei' | 'import' | 'manual', required: What kind of producer a result came from. external_scan is the External Security Check and cannot be submitted.
    - `version` string, required
  - `started_at` string, date-time
  - `status` 'queued' | 'running' | 'completed' | 'partial' | 'failed' | 'cancelled', required
  - `status_reason` string

## Other responses

- `404`: An error.
- `409`: An error.
- `422`: An error.
- `default`: An error.

---

[API](https://skmtc.dev/ironfang/apis/ironfang-security-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-security-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-security-api/revisions/73bd66283d59?raw)
