---
title: "Get Verdict"
method: GET
path: "/licenses/{license_id}/verdict"
tags: ["licenses"]
---

# Get Verdict

`GET /licenses/{license_id}/verdict`

## Request

- Base URL: `https://api.licenscheck.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.licenscheck.com/licenses/{license_id}/verdict`
- Auth: none declared

Verify a license: Clear, Review, or Risk found, with every check behind it, now or as of a past moment.

Weighs the license's own status, expiry and bond, every license linked
to the same contractor, and any adverse unconfirmed possible match --
the same verdict the website shows, so API customers never have to
re-derive it from `/graph`. With `as_of`, it's the verdict as the record
stood then ("was this license good on the day we funded?"), rebuilt from
the changes recorded since, with what that rests on in `as_of`.

Args:
    license_id: The license's internal UUID.
    as_of: A past moment to verify the license as of, or None for now.
    repo: Injected `LicenseRepository`.
    history: Injected `HistoryRepository`.

Returns:
    The verdict, its one-sentence summary, and each check.

Raises:
    LicenseNotFoundError: If no license with that id exists (a 404).
    HTTPException: 422 for an `as_of` that isn't a date or time, is in the future, or is before our record
        began; 404 if the license first appeared after `as_of`.

## Path parameters

- `license_id` string, uuid, required

## Query parameters

- `as_of` string, nullable: Verify the license as it stood at a past moment instead of now: a date (YYYY-MM-DD, meaning the end of that day, UTC) or an ISO 8601 timestamp. Our record of changes began on 2026-10-04.

## Response `200`

Successful Response

- VerdictOut: Response for GET /licenses/{id}/verdict: the yes-or-no answer, with its reasons.
  - `license_id` string, uuid, required: ID of the license that was verified.
  - `level` 'clear' | 'review' | 'risk', required: The overall verification verdict for a license.
  - `word` string, required: The level as shown to a reader: "Clear", "Review", or "Risk found".
  - `summary` string, required: One plain-English sentence explaining the level.
  - `checks` CheckOut[], required: Every check that applied, in reading order.
    - `label` string, required: The check's name, e.g. `Board status`.
    - `outcome` 'pass' | 'warn' | 'fail' | 'info', required: How one verification check came out.
    - `text` string, required: The result as one plain sentence.
    - `segments` SegmentOut[], required: The same result split into plain and emphasized runs, for rich rendering.
      - `text` string, required: The text.
      - `strong` boolean, required: Whether this run is the emphasized part (e.g. the status).
  - `as_of` VerdictAsOfOut: What a verdict as of a past moment rests on.
    - `at` string, date-time, required: The moment the verdict describes (UTC).
    - `record_changed_at` string, date-time, nullable, required: When we last recorded a change to this license on or before that moment, or null if it was unchanged since our history began (`history_since`).
    - `record_source_file` string, nullable, required: The board file that change came from, as archived the day we read it.
    - `history_since` string, date-time, required: When our record of changes began.

## Other responses

- `401`: No valid API key was sent; this endpoint needs one on the API plan.
- `403`: The key is a free key, which includes search only.
- `404`: No license with that id exists.
- `422`: Validation Error

---

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