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

# Pump.fun token lifecycle events

> Stream of mint-create / bonding-progress / graduation events for pump.fun tokens. Filter by lifecycle `status`. The **only valid values** are `new` (recent mints), `completing` / `graduating` (bonding curve near 100%), and `migrated` (already on pumpswap). Any other value — including `graduated` or `rugged` — returns **HTTP 400** `{"error":"invalid_filter:status:<value>"}`.

For a real-time push of these events, join the `latest` / `graduating` / `graduated` discovery rooms on the main [WebSocket: swaps](/streaming/websocket) feed.



## OpenAPI

````yaml /api-reference/openapi.json get /pump-lifecycle
openapi: 3.1.0
info:
  title: Dexploit API
  version: 1.0.0
  description: Real-time and historical Solana DEX swap and OHLCV data.
servers:
  - url: https://api.dexploit.dev
    description: Production
security:
  - ApiKeyHeader: []
  - BearerAuth: []
  - ApiKeyQuery: []
paths:
  /pump-lifecycle:
    get:
      tags:
        - Pump lifecycle
      summary: Pump.fun token lifecycle events
      description: >-
        Stream of mint-create / bonding-progress / graduation events for
        pump.fun tokens. Filter by lifecycle `status`. The **only valid values**
        are `new` (recent mints), `completing` / `graduating` (bonding curve
        near 100%), and `migrated` (already on pumpswap). Any other value —
        including `graduated` or `rugged` — returns **HTTP 400**
        `{"error":"invalid_filter:status:<value>"}`.


        For a real-time push of these events, join the `latest` / `graduating` /
        `graduated` discovery rooms on the main [WebSocket:
        swaps](/streaming/websocket) feed.
      operationId: listPumpLifecycle
      parameters:
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - new
              - completing
              - graduating
              - migrated
            default: new
          description: >-
            Lifecycle phase. `new` = recent mints; `completing` / `graduating` =
            bonding curve near 100%; `migrated` = already on pumpswap. Any other
            value → 400 `invalid_filter:status:<value>`.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 30
            minimum: 1
            maximum: 100
        - name: before
          in: query
          required: false
          schema:
            type: integer
          description: Cursor — epoch seconds; returns events strictly older than this.
      responses:
        '200':
          description: Lifecycle events
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  events:
                    type: array
                    items:
                      $ref: '#/components/schemas/PumpLifecycleEvent'
                  next_before_ts:
                    type:
                      - integer
                      - 'null'
                    description: >-
                      Pass this back as `before` for the next page. Stays
                      non-null on the final page of data — it only becomes
                      `null` after a follow-up request that returns an empty
                      `events[]`.
        '400':
          description: Unrecognized `status` value.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                    example: invalid_filter:status:foo
              example:
                error: invalid_filter:status:foo
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Quota or rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    PumpLifecycleEvent:
      type: object
      description: >-
        A point in a pump.fun token's lifecycle: mint, bonding-curve progress,
        or migration to pumpswap.
      properties:
        mint:
          type: string
        event_type:
          type: string
          enum:
            - mint_created
            - completing
            - graduated
          description: >-
            `completing` fires while the bonding curve is filling (progress
            updates); `graduated` fires once the curve completes and the token
            migrates to a tradeable AMM pool.
        ts:
          type: integer
          description: Unix epoch seconds.
        creator:
          type:
            - string
            - 'null'
        bonding_pct:
          type:
            - number
            - 'null'
          description: 0.0 at mint → 1.0 at graduation. May be `null` if unknown.
        dex:
          type:
            - string
            - 'null'
          description: Destination DEX (set on `graduated`).
        new_pool:
          type:
            - string
            - 'null'
          description: Migration target pool (set on `graduated`).
        raw_tx_sig:
          type:
            - string
            - 'null'
          description: >-
            Transaction signature for `mint_created` and `graduated` events;
            `null` on `completing` events.
    ErrorEnvelope:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: INVALID_PARAM
            message:
              type: string
              example: >-
                use pair_address; see /api/v1/pairs?token_address=X to discover
                pools
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Preferred for swaps-api endpoints (`/swaps/*`, `/stats/*`, `/trending`,
        `/pool-events`).
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Required by the OHLCV endpoints (`/api/v1/*`) and accepted by every
        other endpoint. Send `Authorization: Bearer ohlcv_live_sk_<your_key>`.
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: >-
        Browser-friendly alternative to the Bearer header — accepted by every
        endpoint and required for WebSocket from the browser.

````