> ## 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 /check-transfer-result/{check_id}

> Free, idempotent retry — fetch the deferred result of a paid /check-transfer submission.

<Note>
  **Tier:** free (rate-limited) · No payment required
</Note>

Companion to [`GET /check-transfer/{chain}/{tx_hash}`](/endpoints/check-transfer).
The paid submit waits up to 30 s for the underlying check to complete;
if it doesn't finish in time, the 202 response includes a `check_id`
that you bring here to fetch the deferred result.

**You pay \$0.50 once per tx\_hash** on the paid submit.  Subsequent
calls to this endpoint for the same `check_id` are free — fetch as
many times as you need until you get a terminal answer.

## Why hyphenated `/check-transfer-result/...`

The path is a deliberate **sibling** of `/check-transfer/...`, not a
child.  The x402 SDK matches `/check-transfer/:chain/:tx_hash` as a regex,
so `/check-transfer/result/<id>` would otherwise look like a paid submit
with `chain="result"` and double-charge.  The hyphenated path is the
non-ambiguous sibling.

## Path parameters

| Name       | Type          | Description                                                                          |
| ---------- | ------------- | ------------------------------------------------------------------------------------ |
| `check_id` | string (uuid) | The `check_id` returned in the 202 response from `/check-transfer/{chain}/{tx_hash}` |

## Request

```bash theme={null}
curl https://x402.aegis-kyt.com/check-transfer-result/11111111-2222-3333-4444-555555555555
```

No `X-PAYMENT` header — endpoint is free.  No `Authorization` either —
the `check_id` (a 122-bit-entropy UUID) is the only token needed.

## Response — 200 (completed)

Same body shape as the synchronous 200 from `/check-transfer/{chain}/{tx_hash}` —
see [its docs](/endpoints/check-transfer#response--200-completed-within-30-s)
for the full TxCheckResult schema.

## Response — 202 (still running)

```json theme={null}
{
  "status":   "running",
  "check_id": "11111111-2222-3333-4444-555555555555"
}
```

Wait a few seconds and retry.  Typical Tier 4 BFS completes in 5-30
seconds; slow chains or long sender lists can take up to \~3 minutes.

## Response — 502 (failed)

```json theme={null}
{
  "error": {
    "code":     "tx_check_failed",
    "message":  "tx_check failed_parse: tx not found",
    "check_id": "11111111-2222-3333-4444-555555555555"
  }
}
```

Same no-refund doctrine as the paid submit.

## Rate limit

Free endpoint, rate-limited at the slowapi layer (a stranger guessing
`check_id`s — UUID, 122 bits of entropy — can't realistically pull
other people's results, but the limit caps brute-force enumeration
cost).  Typical clients won't hit the limit; if you do, you'll see
HTTP 429 with a `Retry-After` header.


## OpenAPI

````yaml GET /check-transfer-result/{check_id}
openapi: 3.1.0
info:
  title: Aegis KYT x402 API
  description: >-
    Pay-per-call AML API for AI agents.  USDC on Base, no API keys, no account
    creation.  See https://docs.aegis-kyt.com for the full endpoint reference.
  version: 0.2.0
servers:
  - url: https://x402.aegis-kyt.com
    description: Production
security: []
paths:
  /check-transfer-result/{check_id}:
    get:
      summary: Free retry — fetch deferred tx_check result by check_id (no payment)
      operationId: tier_screen_tx_result_screen_tx_result__check_id__get
      parameters:
        - name: check_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Check Id
      responses:
        '200':
          description: Completed — full TxCheckResult body
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: TxCheckResult
              example:
                schema_version: 1
                check_id: 8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00
                status: completed
                chain: TRON
                tx_hash: >-
                  3dba6516a1f9a1b2c3d4e5f60718293a4b5c6d7e8f901234567890abcdef1234
                parse_result:
                  transfers:
                    - from: TXmVpin5vq5gdZsciyyjdZgKRUju4st1wM
                      to: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
                      asset: USDT
                      value: '2500.000000'
                      value_usd: 2500
                composite_result:
                  risk_level: medium
                  risk_score: 38
                  risk_categories:
                    - sanctions_exposure
                  origin_sources:
                    - category: exchange
                      share: 0.81
                    - category: sanctions_exposure
                      share: 0.19
                  cold_enrich:
                    candidates: 1
                    folded: 1
                policy_result:
                  risk_level: medium
                  alerts: []
                  policy: standard
                decode_warnings: []
        '202':
          description: Still running — retry in a few seconds
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - running
                  check_id:
                    type: string
                    format: uuid
              example:
                status: pending
                check_id: 8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00
        '400':
          description: Invalid check_id format
          content:
            application/json:
              example:
                error:
                  code: bad_request
                  message: malformed check_id
        '429':
          description: Rate limited
          content:
            application/json:
              example:
                error:
                  code: rate_limited
                  message: poll at most once per second
        '502':
          description: tx_check failed_* (terminal)
          content:
            application/json:
              example:
                error:
                  code: check_failed
                  message: tx check ended in failed_parse

````