---
title: "Get rug and graduation outcome labels for one pump.fun mint"
method: GET
path: "/v1/outcome/{mint}"
tags: ["paid"]
---

# Get rug and graduation outcome labels for one pump.fun mint

`GET /v1/outcome/{mint}`

## Request

- Base URL: `https://api.loopholetape.com`
- URL: `https://api.loopholetape.com/v1/outcome/{mint}`
- Auth: none required

Use when you grade your own rug or graduation calls or backtest a signal on pump.fun memecoins and need outcome labels you did not write yourself, by a fixed public rule; for a live pre-trade rug check use GET /v1/check/mint ($0.005). The outcome of one pump.fun launch from our own capture: launch time and age now, whether it rugged by the public rule (a drain from a peak of at least 5 SOL, or a creator dump) and when, whether that happened within 300 s of launch, whether it truly graduated and when it migrated, the creator's first sell, peak and last curve SOL, the mayhem flag, whether each label is settled (resolved) and the rule version. No probabilities and no opinions. A mint we never recorded is refused unpaid (404 not_on_tape) with the free check's link. Labels settle when our capture closes the curve path, about an hour after it goes quiet (94% of launches are settled 2 to 3 h after launch); until then they read null, never a provisional false. A malformed mint is refused unpaid.

## Path parameters

- `mint` string, required

## Response `200`

Paid response (header PAYMENT-RESPONSE carries the settlement)

- Envelope
  - `ok` boolean, required
  - `schema_version` '2.0', required
  - `generated_at` string, date-time, required
  - `t` number, required: unix seconds at generation
  - `coverage` 'full' | 'thin', required: the mint is inside our live window (created while our captur / thin = the mint is not in the live window (older than ~2 h of silen
  - `data` object, required
  - `meta` object, required
    - `source` string
    - `version` string
    - `feed_lag_s` number, nullable: seconds between the newest event in our tape and now (the age of the newest event we ingested; it does not say whether the capture runs behind the chain, see chain_lag_s)
    - `is_stale` boolean: the ingest age (feed_lag_s) exceeds the route's freshness limit (5 s for compact risk checks, 30 s otherwise); a paid or keyed pump.fun request is also refused above 5 s of estimated chain lag when the gate enforces (see chain_lag_s, tape_behind), which this flag does not show
    - `chain_lag_s` number, nullable: estimated seconds the newest slot in our pump.fun tape is behind the Solana RPC's processed tip (slots_behind x the measured slot time, to 0.1 s); null when the tip is unknown; absent on Robinhood Chain answers
    - `slots_behind` integer, nullable: estimated slots between the newest slot in our pump.fun tape and the Solana RPC's processed tip (a tip read every 30 s, carried forward by the wall time since at the slot rate our own reads measure); 0 when the tape is at or ahead of the estimate; null when the tip is unknown
    - `tape_behind` boolean, nullable: true when the estimated chain_lag_s is above 5 s, false within 5 s, null when there is no tip to compare; on pump.fun answers only
    - `last_slot` integer, nullable
    - `price_usd` number, nullable
    - `next` object: related resources worth calling next (paths relative to base_url)
    - `disclaimer` string

## Other responses

- `402`: Payment required (x402 v2): header PAYMENT-REQUIRED = base64 of the body
- `404`: not found or invalid: mint is not any pump.fun mint (base58, 32-44 characters); one we never recorded is refused unpaid. ({ok:false, error, hint})
- `422`: Validation Error

---

[API](https://skmtc.dev/loopholetape/apis/loophole-tape.md) · [All operations](https://skmtc.dev/loopholetape/apis/loophole-tape/llms.txt) · [OpenAPI document](https://skmtc.dev/loopholetape/apis/loophole-tape/revisions/5234c3adf39f?raw)
