This endpoint is available for all plans.

POST Method Overview

The POST method allows you to retrieve pulse data by passing complex configurations in the JSON body. This method is recommended for advanced filtering, custom views, and complex configurations.

Endpoint

POST /api/1/pulse

Basic Configuration

Simple Configuration

For basic usage, use the chainId and poolTypes parameters:

{
  "chainId": ["solana:solana"],
  "poolTypes": ["pumpfun"]
}

Default Model

Use the default model to automatically get three views: new, bonding, and bonded:

{
  "model": "default",
  "chainId": ["evm:999", "solana:solana"]
}

This model automatically generates:

  • new: Newly created tokens (sorted by created_at desc)
  • bonding: Tokens in bonding phase with activity (sorted by market_cap desc)
  • bonded: Bonded tokens on traditional DEXs (sorted by created_at desc)

Custom Views

For granular control, use the views parameter:

View Structure

{
  "views": [
    {
      "name": "my-custom-view",
      "model": "new",
      "chainId": ["evm:8453"],
      "poolTypes": ["moonshot-evm", "fourmeme"],
      "sortBy": "volume_1h",
      "sortOrder": "desc",
      "limit": 25,
      "offset": 0,
      "addressToExclude": ["0xAddress1", "0xAddress2"],
      "filters": {
        "market_cap": { "gte": 1000, "lte": 100000 },
        "pools": {
          "bonded": { "equals": false },
          "factory": { "in": ["uniswap-v2", "0x123..."] }
        }
      }
    }
  ]
}

Available View Models

Model “new”

Retrieves newly created tokens:

{
  "name": "new-tokens",
  "model": "new",
  "chainId": ["evm:8453"],
  "poolTypes": ["moonshot-evm"]
}

Model “bonding”

Retrieves tokens in bonding phase with activity:

{
  "name": "bonding-tokens",
  "model": "bonding",
  "chainId": ["solana:solana"],
  "poolTypes": ["pumpfun"]
}

Model “bonded”

Retrieves bonded tokens available on DEXs:

{
  "name": "bonded-tokens",
  "model": "bonded",
  "chainId": ["evm:56"],
  "poolTypes": ["uniswap-v2", "uniswap-v3"]
}

View Parameters

Sorting and Pagination Parameters

  • sortBy (string): Sort field

    • Options: created_at, market_cap, volume_1h, latest_trade_date, price_change_1h, price_change_24h, trades_1h, trades_24h, liquidity, holders_count
    • Default: created_at
  • sortOrder (string): Sort order

    • Options: asc, desc
    • Default: desc
  • limit (number): Number of results per view

    • Maximum: 100
    • Default: 30
  • offset (number): Offset for pagination

    • Default: 0
  • addressToExclude (string | string[]): Addresses to exclude from results

    • Automatically excludes pools where the address appears as token0, token1, or pool address
    • Can be a single address string or array of addresses
    • Default: undefined

Advanced Filtering

🔍 Complete Filter Reference

View the complete filtering documentation with all available fields and operators

The POST method supports the same powerful filtering system as the WebSocket stream. You can filter on:

Filter Structure

{
  "filters": {
    "market_cap": { "gte": 1000, "lte": 100000 },
    "volume_1h": { "gte": 500 },
    "pools": {
      "type": { "in": ["pumpfun", "moonshot-evm"] },
      "bonded": { "equals": false },
      "factory": { "in": ["uniswap-v2", "0x123..."] }
    }
  }
}

Available Filter Categories

  • Price Fields: latest_price, price_change_1h, price_change_24h, etc.
  • Market Cap Fields: market_cap, latest_market_cap
  • Volume Fields: volume_1h, volume_24h, etc.
  • Activity Fields: trades_1h, trades_24h, holders_count
  • Pool Properties: pools.type, pools.bonded, pools.factory
  • Date Fields: created_at, latest_trade_date

Filter Operators

  • equals: Exact equality
  • gte: Greater than or equal
  • lte: Less than or equal
  • gt: Strictly greater than
  • lt: Strictly less than
  • not: Not equal to
  • in: In the list

Usage Examples

Example 1: High Volume Tokens

{
  "views": [
    {
      "name": "high-volume-tokens",
      "model": "bonding",
      "chainId": ["solana:solana"],
      "poolTypes": ["pumpfun"],
      "sortBy": "volume_1h",
      "sortOrder": "desc",
      "limit": 20,
      "filters": {
        "volume_1h": { "gte": 1000 },
        "market_cap": { "gte": 5000, "lte": 50000 },
        "trades_1h": { "gte": 10 }
      }
    }
  ]
}

Example 2: Complex Configuration with Advanced Filters

{
  "views": [
    {
      "name": "filtered-view",
      "model": "new",
      "chainId": ["evm:8453"],
      "poolTypes": ["moonshot-evm"],
      "sortBy": "created_at",
      "sortOrder": "desc",
      "limit": 30,
      "filters": {
        "volume_24h": { "gte": 5000 },
        "holders_count": { "gte": 50 },
        "price_change_1h": { "gte": 0 },
        "pools": {
          "bonded": { "equals": false },
          "type": { "equals": "moonshot-evm" }
        }
      }
    }
  ]
}

Example 3: Multi-Chain with Address Exclusion

{
  "views": [
    {
      "name": "multi-chain-view",
      "chainId": ["evm:8453", "evm:999"],
      "poolTypes": ["liquidlaunch", "moonshot-evm"],
      "limit": 50,
      "addressToExclude": [
        "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
        "0x5748ae796AE46A4F1348a1693de4b50560485562"
      ],
      "filters": {
        "volume_24h": { "gte": 100 },
        "market_cap": { "gte": 1000 }
      }
    }
  ]
}

Available Pool Types

Launchpads

  • pumpfun - Pump.fun (Solana)
  • moonshot-sol - Moonshot (Solana)
  • moonshot-evm - Moonshot (EVM)
  • fourmeme - 4meme (EVM)
  • liquidlaunch - LiquidLaunch (EVM)
  • boop - Boop (Solana)
  • raydium-launchlab - Raydium Launchlab (Solana)
  • gte-bonding-v1 - GTE Bonding V1 (EVM)
  • mana - Mana (EVM)
  • meteora-dbc - Meteora Dynamic Bonding Curve (Solana)

DEX

  • uniswap-v2 - Uniswap V2 (EVM)
  • uniswap-v3 - Uniswap V3 (EVM)
  • raydium - Raydium AMM (Solana)
  • orca - Orca (Solana)
  • meteora - Meteora (Solana)

Available Chain IDs

  • evm:6342 - GoldChain
  • evm:2741 - Sanko
  • evm:80094 - Blast
  • evm:8453 - Base
  • evm:56 - BNB Smart Chain
  • evm:999 - Zora
  • solana:solana - Solana

Response Format

{
  "view-name": {
    "data": [
      {
        "price": 0.000123,
        "price_change_1h": -2.1,
        "price_change_24h": 45.6,
        "volume_1h": 1500,
        "volume_24h": 25000,
        "market_cap": 104550,
        "holders_count": 145,
        "liquidity": 12500,
        "created_at": "2024-01-15T10:30:00Z",
        "pair": {
          "token0": {
            "address": "0x...",
            "symbol": "TOKEN",
            "name": "Token Name",
            "chainId": "evm:8453"
          },
          "token1": {
            "address": "0x...",
            "symbol": "WETH",
            "name": "Wrapped Ether",
            "chainId": "evm:8453"
          }
        }
      }
    ]
  }
}

When to Use POST vs GET

Use POST when:

  • Complex filtering required
  • Custom views configuration
  • Advanced filter combinations
  • Large number of parameters
  • JSON structure preferred

Use GET when:

  • Simple configuration with basic parameters
  • Default model is sufficient
  • No complex filtering needed
  • URL-friendly parameter passing

🔗 GET Method

Learn about the GET method for simple configurations

📡 Real-time Stream

Access the same filtering system in real-time via WebSocket