---
title: "Get structured threat model board"
method: GET
path: "/api/threat-model/board"
tags: ["Threat Model"]
---

# Get structured threat model board

`GET /api/threat-model/board`

## Request

- Base URL: `https://app.cotool.ai`
- URL: `https://app.cotool.ai/api/threat-model/board`
- Auth: HTTP bearer

Get the structured per-surface board (lean generated layer + live detection-agent overlay).

## Response `200`

Successful response

- object
  - `coverageRefreshPending` boolean: Whether async inventory or surface classification updates are still refreshing coverage overlays.
  - `presentPlatforms` string[], required: ATT&CK platforms the org runs (passthrough from the board projection); used to hide techniques for absent platforms.
  - `surfaces` object[], required: All fixed surfaces, ordered, with live detection-agent overlay.
    - `id` 'identity' | 'cloud' | 'endpoint' | 'saas' | 'email' | 'network' | 'source-code' | 'application', required
    - `label` string, required
    - `environment` object, required
      - `summary` string, required
      - `components` object[], required
        - `name` string, required: A concrete thing on this surface, e.g. "Okta (acme.okta.com)".
        - `detail` string, required: One-line characterization of that component.
    - `gaps` string[], required
    - `agents` object[], required
      - `id` string, required
      - `name` string, required
      - `hits30d` integer, required
      - `runs30d` integer, required

## Other responses

- `400`: Bad request — input validation failed or the request was malformed
- `401`: Unauthorized — missing or invalid API key / session
- `403`: Forbidden — the authenticated user lacks the required permissions
- `500`: Internal server error

---

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