> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aegis-kyt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v2/check-address/{check_id}/result

> Fetch the verdict for a submitted check. Charged once, on first successful delivery.

<Note>
  **Auth:** Required · **Billing:** the check's price, charged **once** here —
  not on submit · **Use case:** collect the verdict from
  [`POST /v2/check-address`](/api-reference/v2-check-address)
</Note>

Submission is asynchronous: the POST hands back a `check_id` and a
`result_url`, and this endpoint is where the verdict arrives.

## Request

```bash theme={null}
curl -H "Authorization: Bearer aeg_YOUR_KEY_HERE" \
  "https://api.aegis-kyt.com/v2/check-address/3f8c1e2a-.../result"
```

| Path param | Notes                                |
| ---------- | ------------------------------------ |
| `check_id` | From the 202 body of the submit call |

Poll every few seconds. Typical completion is 5-90 s; a cold BFS on a
high-degree address can take longer.

## Response 200 — the verdict

```json theme={null}
{
  "schema_version": 1,
  "address": "TScSLnUodZVsgoGchZspDoimDjDB9bwqVv",
  "network": "TRON",
  "provider": "Aegis",
  "decision": "review",
  "verdict": {
    "ok": true,
    "risk_level": "medium",
    "risk_score": 50,
    "risk_categories": ["mixer-adjacent"],
    "consensus_found": true,
    "source_count": 3,
    "confidence": 0.78,
    "primary_source_slug": "graphsense-tag-pack",
    "label": "TornadoCash 1-hop",
    "sdn_match": null,
    "tier3_applied": true,
    "tier4_applied": false
  },
  "billing": {
    "model": "ledger",
    "currency": "USD",
    "charged_usd": "1.000000"
  },
  "elapsed_ms": 320
}
```

`verdict.tier3_applied` / `tier4_applied` show which depth tiers ran —
`tier4_applied: false` usually means too few transactions for a meaningful
BFS, and Tier 0+1+2 still executed.

For what `decision` means and how to act on it, see
[POST /v2/check-address](/api-reference/v2-check-address).

## Other responses

| HTTP    | Meaning                                                           | Charged? |
| ------- | ----------------------------------------------------------------- | -------- |
| **202** | Still running. Body repeats `status` and `check_id`.              | No       |
| **404** | Unknown `check_id`, **or** it belongs to another key              | No       |
| **502** | The check itself failed — engine unreachable, address undecidable | No       |

<Warning>
  **404 does not mean "not finished".** It means this key cannot see that
  check — a wrong id, or someone else's. A still-running check answers 202.
</Warning>

## Billing — charged once, on delivery

The submit call never charges. This endpoint charges on the **first** 200 it
returns for a given `check_id`, and never again:

* Poll ten times before completion → ten `202`s, no charge.
* Poll again after the first `200` → same body, still one charge.
* Check fails (`502`) → no charge at all.

So a retry loop is safe by construction; you do not need an idempotency key
on the poll. (`Idempotency-Key` belongs on the **submit**, to avoid starting
a duplicate job.)

## See also

* [POST /v2/check-address](/api-reference/v2-check-address) — submit
* [GET /v2/balance](/api-reference/v2-balance) — what is left to spend
* [GET /v2/me/usage](/api-reference/v2-me-usage) — billing snapshot + history


## OpenAPI

````yaml GET /check-address/{check_id}/result
openapi: 3.1.0
info:
  description: >-
    Public, subscription-billed AML API. Send `Authorization: Bearer aeg_<key>`
    on every call.  See the user kabinet at
    https://app.aegis-kyt.com/account?tab=api to generate a key.
  title: Aegis Public API
  version: 2.0.0
servers:
  - description: Production
    url: https://api.aegis-kyt.com/v2
security: []
paths:
  /check-address/{check_id}/result:
    get:
      tags:
        - v2-public
      summary: Fetch the check-address result (charged once on success)
      description: >-
        Fetches a check-address result by check_id.  Returns 200 with the
        verdict (charged once, on first successful delivery — repeated polls
        before or after never re-charge), 202 if still running, 502 if the check
        failed (no charge), 404 if the check_id is unknown or not owned by the
        caller.
      operationId: check_address_result_check_address__check_id__result_get
      parameters:
        - in: path
          name: check_id
          required: true
          schema:
            title: Check Id
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: >-
                  Response Check Address Result Check Address  Check Id  Result
                  Get
                type: object
          description: Successful Response
        '202':
          description: Still running — poll again in a few seconds
        '404':
          description: Unknown check_id or not owned by the caller
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
        '502':
          description: Check failed (no charge)
      security:
        - ApiKeyBearer: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
  securitySchemes:
    ApiKeyBearer:
      description: Your `aeg_…` API key from the dashboard (Account → API tab).
      scheme: bearer
      type: http

````