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

# Curve percentage

> Subscribe to curve percentage alerts (when tokens reach specific bonding curve percentages)



## AsyncAPI

````yaml datastream/pool-token-updates.json curvePercentage
id: curvePercentage
title: Curve percentage
description: >-
  Subscribe to curve percentage alerts (when tokens reach specific bonding curve
  percentages)
servers:
  - id: production
    protocol: wss
    host: datastream.solanatracker.io
    bindings: []
    variables:
      - id: apiKey
        description: Your unique API key from Data API subscription
        allowedValues: []
        examples: []
address: /
parameters: []
bindings: []
operations:
  - &ref_1
    id: subscribeToCurve
    title: Subscribe to curve
    description: Subscribe to curve percentage
    type: receive
    messages:
      - &ref_5
        id: joinCurve
        payload:
          - name: joinCurve
            description: Subscribe to curve percentage alerts
            type: object
            properties:
              - name: type
                type: string
                description: join
                required: true
              - name: room
                type: string
                description: Curve room ({market}:curve:{percentage})
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - room
          properties:
            type:
              type: string
              const: join
              default: join
              x-parser-schema-id: <anonymous-schema-108>
            room:
              type: string
              pattern: ^(pumpfun|launchpad|boop|meteora-curve):curve:[0-9]{1,3}$
              description: Curve room ({market}:curve:{percentage})
              default: pumpfun:curve:30
              x-parser-schema-id: <anonymous-schema-109>
          examples:
            - type: join
              room: pumpfun:curve:30
            - type: join
              room: meteora-curve:curve:75
            - type: join
              room: boop:curve:50
          x-parser-schema-id: <anonymous-schema-107>
        title: Join curve
        description: Subscribe to curve percentage alerts
        example: |-
          {
            "type": "join",
            "room": "pumpfun:curve:30"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: joinCurve
          - id: x-parser-message-name
            value: joinCurve
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: curvePercentage
  - &ref_3
    id: receiveCurveConfirmation
    title: Receive curve confirmation
    description: Receive curve confirmation
    type: send
    messages:
      - &ref_7
        id: curveJoined
        payload:
          - name: curveJoined
            description: Curve subscription confirmed
            type: object
            properties:
              - name: type
                type: string
                description: joined
                required: false
              - name: room
                type: string
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: joined
              x-parser-schema-id: <anonymous-schema-111>
            room:
              type: string
              x-parser-schema-id: <anonymous-schema-112>
          examples:
            - type: joined
              room: pumpfun:curve:30
          x-parser-schema-id: <anonymous-schema-110>
        title: Curve joined
        description: Curve subscription confirmed
        example: |-
          {
            "type": "joined",
            "room": "pumpfun:curve:30"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: curveJoined
          - id: x-parser-message-name
            value: curveJoined
    bindings: []
    extensions: *ref_0
  - &ref_4
    id: receiveCurveData
    title: Receive curve data
    description: Receive curve updates
    type: send
    messages:
      - &ref_8
        id: curveMessage
        payload:
          - name: curveMessage
            description: Curve percentage reached notification
            type: object
            properties:
              - name: type
                type: string
                description: message
                required: false
              - name: room
                type: string
                required: false
              - name: data
                type: object
                required: false
                properties:
                  - name: token
                    type: object
                    required: false
                    properties:
                      - name: name
                        type: string
                        required: false
                      - name: symbol
                        type: string
                        required: false
                      - name: mint
                        type: string
                        required: false
                      - name: uri
                        type: string
                        required: false
                      - name: decimals
                        type: integer
                        required: false
                      - name: hasFileMetaData
                        type: boolean
                        required: false
                      - name: createdOn
                        type: string
                        required: false
                      - name: description
                        type: string
                        required: false
                      - name: image
                        type: string
                        required: false
                      - name: twitter
                        type: string
                        required: false
                      - name: telegram
                        type: string
                        required: false
                      - name: website
                        type: string
                        required: false
                      - name: discord
                        type: string
                        required: false
                      - name: strictSocials
                        type: object
                        required: false
                        properties:
                          - name: twitter
                            type: string
                            required: false
                          - name: telegram
                            type: string
                            required: false
                          - name: website
                            type: string
                            required: false
                          - name: discord
                            type: string
                            required: false
                      - name: creation
                        type: object
                        required: false
                        properties:
                          - name: creator
                            type: string
                            required: false
                          - name: created_tx
                            type: string
                            required: false
                          - name: created_time
                            type: integer
                            required: false
                  - name: pools
                    type: array
                    required: false
                  - name: events
                    type: object
                    required: false
                    properties:
                      - name: 1m
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 5m
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 15m
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 30m
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 1h
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 4h
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                      - name: 24h
                        type: object
                        required: false
                        properties:
                          - name: priceChangePercentage
                            type: number
                            required: false
                  - name: risk
                    type: object
                    required: false
                    properties:
                      - name: snipers
                        type: object
                        required: false
                        properties:
                          - name: count
                            type: integer
                            required: false
                          - name: totalBalance
                            type: integer
                            required: false
                          - name: totalPercentage
                            type: number
                            required: false
                          - name: wallets
                            type: array
                            required: false
                      - name: insiders
                        type: object
                        required: false
                        properties:
                          - name: count
                            type: integer
                            required: false
                          - name: totalBalance
                            type: integer
                            required: false
                          - name: totalPercentage
                            type: number
                            required: false
                          - name: wallets
                            type: array
                            required: false
                      - name: top10
                        type: number
                        required: false
                      - name: dev
                        type: object
                        required: false
                        properties:
                          - name: percentage
                            type: number
                            required: false
                          - name: amount
                            type: integer
                            required: false
                      - name: rugged
                        type: boolean
                        required: false
                      - name: risks
                        type: array
                        required: false
                      - name: score
                        type: integer
                        required: false
                      - name: jupiterVerified
                        type: boolean
                        required: false
                  - name: threshold
                    type: integer
                    required: false
                  - name: crossedAt
                    type: integer
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: message
              x-parser-schema-id: <anonymous-schema-114>
            room:
              type: string
              x-parser-schema-id: <anonymous-schema-115>
            data:
              type: object
              properties:
                token:
                  type: object
                  properties:
                    name:
                      type: string
                      x-parser-schema-id: <anonymous-schema-116>
                    symbol:
                      type: string
                      x-parser-schema-id: <anonymous-schema-117>
                    mint:
                      type: string
                      x-parser-schema-id: <anonymous-schema-118>
                    uri:
                      type: string
                      x-parser-schema-id: <anonymous-schema-119>
                    decimals:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-120>
                    hasFileMetaData:
                      type: boolean
                      x-parser-schema-id: <anonymous-schema-121>
                    createdOn:
                      type: string
                      x-parser-schema-id: <anonymous-schema-122>
                    description:
                      type: string
                      x-parser-schema-id: <anonymous-schema-123>
                    image:
                      type: string
                      x-parser-schema-id: <anonymous-schema-124>
                    twitter:
                      type: string
                      x-parser-schema-id: <anonymous-schema-125>
                    telegram:
                      type: string
                      x-parser-schema-id: <anonymous-schema-126>
                    website:
                      type: string
                      x-parser-schema-id: <anonymous-schema-127>
                    discord:
                      type: string
                      x-parser-schema-id: <anonymous-schema-128>
                    strictSocials:
                      type: object
                      properties:
                        twitter:
                          type: string
                          x-parser-schema-id: <anonymous-schema-130>
                        telegram:
                          type: string
                          x-parser-schema-id: <anonymous-schema-131>
                        website:
                          type: string
                          x-parser-schema-id: <anonymous-schema-132>
                        discord:
                          type: string
                          x-parser-schema-id: <anonymous-schema-133>
                      x-parser-schema-id: <anonymous-schema-129>
                    creation:
                      type: object
                      properties:
                        creator:
                          type: string
                          x-parser-schema-id: <anonymous-schema-135>
                        created_tx:
                          type: string
                          x-parser-schema-id: <anonymous-schema-136>
                        created_time:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-137>
                      x-parser-schema-id: <anonymous-schema-134>
                  x-parser-schema-id: Token
                pools:
                  type: array
                  items:
                    type: object
                    properties:
                      poolId:
                        type: string
                        x-parser-schema-id: <anonymous-schema-10>
                      liquidity:
                        type: object
                        properties:
                          quote:
                            type: number
                            x-parser-schema-id: <anonymous-schema-12>
                          usd:
                            type: number
                            x-parser-schema-id: <anonymous-schema-13>
                        x-parser-schema-id: <anonymous-schema-11>
                      price:
                        type: object
                        properties:
                          quote:
                            type: number
                            x-parser-schema-id: <anonymous-schema-15>
                          usd:
                            type: number
                            x-parser-schema-id: <anonymous-schema-16>
                        x-parser-schema-id: <anonymous-schema-14>
                      tokenSupply:
                        type: integer
                        x-parser-schema-id: <anonymous-schema-17>
                      lpBurn:
                        type: number
                        x-parser-schema-id: <anonymous-schema-18>
                      tokenAddress:
                        type: string
                        x-parser-schema-id: <anonymous-schema-19>
                      marketCap:
                        type: object
                        properties:
                          quote:
                            type: number
                            x-parser-schema-id: <anonymous-schema-21>
                          usd:
                            type: number
                            x-parser-schema-id: <anonymous-schema-22>
                        x-parser-schema-id: <anonymous-schema-20>
                      decimals:
                        type: integer
                        x-parser-schema-id: <anonymous-schema-23>
                      security:
                        type: object
                        properties:
                          freezeAuthority:
                            type:
                              - string
                              - 'null'
                            x-parser-schema-id: <anonymous-schema-25>
                          mintAuthority:
                            type:
                              - string
                              - 'null'
                            x-parser-schema-id: <anonymous-schema-26>
                        x-parser-schema-id: <anonymous-schema-24>
                      quoteToken:
                        type: string
                        x-parser-schema-id: <anonymous-schema-27>
                      market:
                        type: string
                        x-parser-schema-id: <anonymous-schema-28>
                      deployer:
                        type: string
                        x-parser-schema-id: <anonymous-schema-29>
                      lastUpdated:
                        type: integer
                        x-parser-schema-id: <anonymous-schema-30>
                      createdAt:
                        type: integer
                        x-parser-schema-id: <anonymous-schema-31>
                      curvePercentage:
                        type: number
                        x-parser-schema-id: <anonymous-schema-32>
                      curve:
                        type: string
                        x-parser-schema-id: <anonymous-schema-33>
                      txns:
                        type: object
                        properties:
                          buys:
                            type: integer
                            x-parser-schema-id: <anonymous-schema-35>
                          sells:
                            type: integer
                            x-parser-schema-id: <anonymous-schema-36>
                          total:
                            type: integer
                            x-parser-schema-id: <anonymous-schema-37>
                          volume:
                            type: number
                            x-parser-schema-id: <anonymous-schema-38>
                          volume24h:
                            type: number
                            x-parser-schema-id: <anonymous-schema-39>
                        x-parser-schema-id: <anonymous-schema-34>
                      bundleId:
                        type: string
                        x-parser-schema-id: <anonymous-schema-40>
                      launchpad:
                        type: object
                        properties:
                          name:
                            type: string
                            x-parser-schema-id: <anonymous-schema-42>
                          url:
                            type: string
                            x-parser-schema-id: <anonymous-schema-43>
                          logo:
                            type: string
                            x-parser-schema-id: <anonymous-schema-44>
                          baseLiquidity:
                            type: object
                            properties:
                              amount:
                                type: number
                                x-parser-schema-id: <anonymous-schema-46>
                              usd:
                                type: number
                                x-parser-schema-id: <anonymous-schema-47>
                            x-parser-schema-id: <anonymous-schema-45>
                          quoteLiquidity:
                            type: object
                            properties:
                              amount:
                                type: number
                                x-parser-schema-id: <anonymous-schema-49>
                              usd:
                                type: number
                                x-parser-schema-id: <anonymous-schema-50>
                            x-parser-schema-id: <anonymous-schema-48>
                        x-parser-schema-id: <anonymous-schema-41>
                      meteoraCurve:
                        type: object
                        properties:
                          baseLiquidity:
                            type: object
                            properties:
                              base:
                                type: number
                                x-parser-schema-id: <anonymous-schema-53>
                              usd:
                                type: number
                                x-parser-schema-id: <anonymous-schema-54>
                            x-parser-schema-id: <anonymous-schema-52>
                          quoteLiquidity:
                            type: object
                            properties:
                              quote:
                                type: number
                                x-parser-schema-id: <anonymous-schema-56>
                              usd:
                                type: number
                                x-parser-schema-id: <anonymous-schema-57>
                            x-parser-schema-id: <anonymous-schema-55>
                          fee:
                            type: number
                            x-parser-schema-id: <anonymous-schema-58>
                        x-parser-schema-id: <anonymous-schema-51>
                      raydium:
                        type: object
                        properties:
                          baseLiquidity:
                            type: number
                            x-parser-schema-id: <anonymous-schema-60>
                          quoteLiquidity:
                            type: number
                            x-parser-schema-id: <anonymous-schema-61>
                        x-parser-schema-id: <anonymous-schema-59>
                      heaven:
                        type: object
                        properties:
                          baseLiquidity:
                            type: number
                            x-parser-schema-id: <anonymous-schema-63>
                          quoteLiquidity:
                            type: number
                            x-parser-schema-id: <anonymous-schema-64>
                          is_migrated:
                            type: boolean
                            x-parser-schema-id: <anonymous-schema-65>
                          migrationTime:
                            type: integer
                            x-parser-schema-id: <anonymous-schema-66>
                        x-parser-schema-id: <anonymous-schema-62>
                    x-parser-schema-id: Pool
                  x-parser-schema-id: <anonymous-schema-138>
                events:
                  type: object
                  properties:
                    1m:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-140>
                      x-parser-schema-id: <anonymous-schema-139>
                    5m:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-142>
                      x-parser-schema-id: <anonymous-schema-141>
                    15m:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-144>
                      x-parser-schema-id: <anonymous-schema-143>
                    30m:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-146>
                      x-parser-schema-id: <anonymous-schema-145>
                    1h:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-148>
                      x-parser-schema-id: <anonymous-schema-147>
                    4h:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-150>
                      x-parser-schema-id: <anonymous-schema-149>
                    24h:
                      type: object
                      properties:
                        priceChangePercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-152>
                      x-parser-schema-id: <anonymous-schema-151>
                  x-parser-schema-id: Events
                risk:
                  type: object
                  properties:
                    snipers:
                      type: object
                      properties:
                        count:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-154>
                        totalBalance:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-155>
                        totalPercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-156>
                        wallets:
                          type: array
                          items:
                            type: object
                            properties:
                              address:
                                type: string
                                x-parser-schema-id: <anonymous-schema-159>
                              balance:
                                type: number
                                x-parser-schema-id: <anonymous-schema-160>
                              percentage:
                                type: number
                                x-parser-schema-id: <anonymous-schema-161>
                            x-parser-schema-id: <anonymous-schema-158>
                          x-parser-schema-id: <anonymous-schema-157>
                      x-parser-schema-id: <anonymous-schema-153>
                    insiders:
                      type: object
                      properties:
                        count:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-163>
                        totalBalance:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-164>
                        totalPercentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-165>
                        wallets:
                          type: array
                          items:
                            type: object
                            properties:
                              address:
                                type: string
                                x-parser-schema-id: <anonymous-schema-168>
                              balance:
                                type: number
                                x-parser-schema-id: <anonymous-schema-169>
                              percentage:
                                type: number
                                x-parser-schema-id: <anonymous-schema-170>
                            x-parser-schema-id: <anonymous-schema-167>
                          x-parser-schema-id: <anonymous-schema-166>
                      x-parser-schema-id: <anonymous-schema-162>
                    top10:
                      type: number
                      x-parser-schema-id: <anonymous-schema-171>
                    dev:
                      type: object
                      properties:
                        percentage:
                          type: number
                          x-parser-schema-id: <anonymous-schema-173>
                        amount:
                          type: integer
                          x-parser-schema-id: <anonymous-schema-174>
                      x-parser-schema-id: <anonymous-schema-172>
                    rugged:
                      type: boolean
                      x-parser-schema-id: <anonymous-schema-175>
                    risks:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            x-parser-schema-id: <anonymous-schema-178>
                          description:
                            type: string
                            x-parser-schema-id: <anonymous-schema-179>
                          level:
                            type: string
                            x-parser-schema-id: <anonymous-schema-180>
                          score:
                            type: integer
                            x-parser-schema-id: <anonymous-schema-181>
                        x-parser-schema-id: <anonymous-schema-177>
                      x-parser-schema-id: <anonymous-schema-176>
                    score:
                      type: integer
                      x-parser-schema-id: <anonymous-schema-182>
                    jupiterVerified:
                      type: boolean
                      x-parser-schema-id: <anonymous-schema-183>
                  x-parser-schema-id: Risk
                threshold:
                  type: integer
                  x-parser-schema-id: <anonymous-schema-184>
                crossedAt:
                  type: integer
                  x-parser-schema-id: <anonymous-schema-185>
              x-parser-schema-id: CurveNotification
          examples:
            - type: message
              room: pumpfun:curve:30
              data:
                token:
                  name: Example Curve Token
                  symbol: CURVE
                  mint: TokenMintAddress
                  uri: https://ipfs.io/ipfs/...
                  decimals: 6
                  hasFileMetaData: true
                  createdOn: https://pump.fun
                  creation:
                    creator: DeployerAddress
                    created_tx: TxSignature
                    created_time: 1723727770
                pools:
                  - poolId: PoolAddress
                    liquidity:
                      quote: 45.5
                      usd: 6542.25
                    price:
                      quote: 0.0000234
                      usd: 0.00336156
                    tokenSupply: 1000000000
                    lpBurn: 100
                    tokenAddress: TokenMintAddress
                    marketCap:
                      quote: 23400
                      usd: 3361560
                    decimals: 6
                    security:
                      freezeAuthority: null
                      mintAuthority: null
                    quoteToken: So11111111111111111111111111111111111111112
                    market: pumpfun
                    curvePercentage: 30
                    curve: CurveAddress
                    deployer: DeployerAddress
                    lastUpdated: 1723727796824
                    createdAt: 1723727770351
                    txns:
                      buys: 67
                      sells: 23
                      total: 90
                      volume: 8500
                      volume24h: 8500
                events:
                  1m:
                    priceChangePercentage: 2.5
                  5m:
                    priceChangePercentage: 5.3
                  15m:
                    priceChangePercentage: 10.7
                  30m:
                    priceChangePercentage: 15.5
                  1h:
                    priceChangePercentage: 25.3
                  4h:
                    priceChangePercentage: 45.7
                  24h:
                    priceChangePercentage: 125.9
                risk:
                  snipers:
                    count: 0
                    totalBalance: 0
                    totalPercentage: 0
                    wallets: []
                  insiders:
                    count: 0
                    totalBalance: 0
                    totalPercentage: 0
                    wallets: []
                  top10: 0
                  dev:
                    percentage: 0
                    amount: 0
                  rugged: false
                  risks: []
                  score: 0
          x-parser-schema-id: <anonymous-schema-113>
        title: Curve message
        description: Curve percentage reached notification
        example: |-
          {
            "type": "message",
            "room": "pumpfun:curve:30",
            "data": {
              "token": {
                "name": "Example Curve Token",
                "symbol": "CURVE",
                "mint": "TokenMintAddress",
                "uri": "https://ipfs.io/ipfs/...",
                "decimals": 6,
                "hasFileMetaData": true,
                "createdOn": "https://pump.fun",
                "creation": {
                  "creator": "DeployerAddress",
                  "created_tx": "TxSignature",
                  "created_time": 1723727770
                }
              },
              "pools": [
                {
                  "poolId": "PoolAddress",
                  "liquidity": {
                    "quote": 45.5,
                    "usd": 6542.25
                  },
                  "price": {
                    "quote": 0.0000234,
                    "usd": 0.00336156
                  },
                  "tokenSupply": 1000000000,
                  "lpBurn": 100,
                  "tokenAddress": "TokenMintAddress",
                  "marketCap": {
                    "quote": 23400,
                    "usd": 3361560
                  },
                  "decimals": 6,
                  "security": {
                    "freezeAuthority": null,
                    "mintAuthority": null
                  },
                  "quoteToken": "So11111111111111111111111111111111111111112",
                  "market": "pumpfun",
                  "curvePercentage": 30,
                  "curve": "CurveAddress",
                  "deployer": "DeployerAddress",
                  "lastUpdated": 1723727796824,
                  "createdAt": 1723727770351,
                  "txns": {
                    "buys": 67,
                    "sells": 23,
                    "total": 90,
                    "volume": 8500,
                    "volume24h": 8500
                  }
                }
              ],
              "events": {
                "1m": {
                  "priceChangePercentage": 2.5
                },
                "5m": {
                  "priceChangePercentage": 5.3
                },
                "15m": {
                  "priceChangePercentage": 10.7
                },
                "30m": {
                  "priceChangePercentage": 15.5
                },
                "1h": {
                  "priceChangePercentage": 25.3
                },
                "4h": {
                  "priceChangePercentage": 45.7
                },
                "24h": {
                  "priceChangePercentage": 125.9
                }
              },
              "risk": {
                "snipers": {
                  "count": 0,
                  "totalBalance": 0,
                  "totalPercentage": 0,
                  "wallets": []
                },
                "insiders": {
                  "count": 0,
                  "totalBalance": 0,
                  "totalPercentage": 0,
                  "wallets": []
                },
                "top10": 0,
                "dev": {
                  "percentage": 0,
                  "amount": 0
                },
                "rugged": false,
                "risks": [],
                "score": 0
              }
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: curveMessage
          - id: x-parser-message-name
            value: curveMessage
    bindings: []
    extensions: *ref_0
  - &ref_2
    id: unsubscribeFromCurve
    title: Unsubscribe from curve
    description: Unsubscribe from curve
    type: receive
    messages:
      - &ref_6
        id: leaveCurve
        payload:
          - name: leaveCurve
            description: Unsubscribe from curve percentage
            type: object
            properties:
              - name: type
                type: string
                description: leave
                required: true
              - name: room
                type: string
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - room
          properties:
            type:
              type: string
              const: leave
              default: leave
              x-parser-schema-id: <anonymous-schema-187>
            room:
              type: string
              default: pumpfun:curve:30
              x-parser-schema-id: <anonymous-schema-188>
          examples:
            - type: leave
              room: pumpfun:curve:30
          x-parser-schema-id: <anonymous-schema-186>
        title: Leave curve
        description: Unsubscribe from curve percentage
        example: |-
          {
            "type": "leave",
            "room": "pumpfun:curve:30"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: leaveCurve
          - id: x-parser-message-name
            value: leaveCurve
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
  - *ref_2
receiveOperations:
  - *ref_3
  - *ref_4
sendMessages:
  - *ref_5
  - *ref_6
receiveMessages:
  - *ref_7
  - *ref_8
extensions:
  - id: x-parser-unique-object-id
    value: curvePercentage
securitySchemes:
  - id: apiKeyAuth
    name: apiKey
    type: httpApiKey
    description: >-
      API key for authentication. Include your Datastream key in the connection
      URL: wss://datastream.solanatracker.io/{DATASTREAM_KEY}
    in: header
    extensions: []

````