{
  "openapi": "3.0.1",
  "info": {
    "title": "DexScreener Token Scraper - DEX Pool Prices, Liquidity, Volume",
    "description": "228 networks in one run, 95 fields per pool, 40 of 40 pools merged from both sources. DexScreener scraper plus GeckoTerminal API for crypto token price, liquidity, FDV, buys, sells and unique buyers. Trending and new pools, monitor mode for price moves. No API key.",
    "version": "0.1",
    "x-build-id": "5QjjUtanKQ2hDXk86"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snow_leo_data~dexscreener-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snow_leo_data-dexscreener-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/snow_leo_data~dexscreener-scraper/runs": {
      "post": {
        "operationId": "runs-sync-snow_leo_data-dexscreener-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/snow_leo_data~dexscreener-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-snow_leo_data-dexscreener-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "trending",
              "new",
              "top",
              "dex",
              "search",
              "tokens",
              "pairs",
              "profiles",
              "boosts"
            ],
            "type": "string",
            "description": "Trending, brand-new, top-by-volume, one DEX, a search term, or an explicit list of tokens or pools.",
            "default": "trending"
          },
          "networks": {
            "title": "Networks",
            "type": "array",
            "description": "GeckoTerminal network ids — `solana`, `eth`, `bsc`, `base`, `arbitrum`, `polygon_pos`, `avax`, `ton`, `sui-network`, `hyperevm`. 228 are available; leave empty for the cross-network trending and new-pool feeds. Required for Top pools, Pools of one DEX, Given token addresses and Given pool addresses.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Search term",
            "type": "string",
            "description": "Token name, symbol, token address or pool address. Used by the Search mode, which queries both sources and merges the results."
          },
          "dexes": {
            "title": "DEX ids",
            "type": "array",
            "description": "Only for the \"Pools of one DEX\" mode — `raydium`, `uniswap_v3`, `pancakeswap-v3-bsc`, `aerodrome-base`. One network must be set as well.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "duration": {
            "title": "Trending window",
            "enum": [
              "5m",
              "1h",
              "6h",
              "24h"
            ],
            "type": "string",
            "description": "Which window the trending ranking uses.",
            "default": "24h"
          },
          "sort": {
            "title": "Server-side sort (Top pools mode)",
            "enum": [
              "h24_volume_usd_desc",
              "h24_tx_count_desc"
            ],
            "type": "string",
            "description": "The open GeckoTerminal endpoint accepts exactly these two. Everything else is sorted on our side after collection — see \"Sort collected pools by\".",
            "default": "h24_volume_usd_desc"
          },
          "pagesPerNetwork": {
            "title": "Pages per network",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "20 pools per page. The source refuses page 11 with HTTP 401, so 10 pages (200 pools) per network and sort is the hard ceiling.",
            "default": 3
          },
          "fromPage": {
            "title": "Start from page",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "First page to read, 1-10. Use it to continue where a previous run stopped instead of collecting the same pools again.",
            "default": 1
          },
          "tokenAddresses": {
            "title": "Token addresses",
            "type": "array",
            "description": "Contract addresses to price. Cut into batches of 30 for you — a longer list sent straight to DexScreener comes back truncated with no error.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "pairAddresses": {
            "title": "Pool (pair) addresses",
            "type": "array",
            "description": "Exact pool addresses to watch. The cheapest way to run a price monitor on a fixed list.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "boostsKind": {
            "title": "Boosted tokens feed",
            "enum": [
              "latest",
              "top"
            ],
            "type": "string",
            "description": "Latest promotions or the biggest ones.",
            "default": "latest"
          },
          "enrich": {
            "title": "Merge both sources into one row",
            "type": "boolean",
            "description": "On: every pool is looked up in the other source too, adding websites, socials, images, pool labels and boost counts (DexScreener) or the m15/m30 windows and unique buyer/seller counts (GeckoTerminal). Off: fewer requests, fewer fields.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum pools",
            "minimum": 0,
            "type": "integer",
            "description": "0 means no limit. Left empty, a run stops at 100 pools so a trial cannot turn into a large bill.",
            "default": 50
          },
          "onlyChanged": {
            "title": "Only what changed since the last run",
            "type": "boolean",
            "description": "Remembers every pool it has already delivered, in a named key-value store that survives runs, and tags each row NEW, UPDATED or UNCHANGED. Unchanged pools are not written to the dataset, so a scheduled monitor stops paying for the same pools every hour.",
            "default": false
          },
          "priceChangeThresholdPercent": {
            "title": "Report a pool only if its price moved by at least (%)",
            "minimum": 0,
            "type": "integer",
            "description": "DEX prices never stand still, so without a threshold every pool counts as updated. Set 5 to be told only about pools that moved 5% or more since the price you were last charged for.",
            "default": 0
          },
          "emitUnchanged": {
            "title": "Include unchanged pools anyway",
            "type": "boolean",
            "description": "Writes UNCHANGED rows too. You pay for them, so it is off by default.",
            "default": false
          },
          "minLiquidityUsd": {
            "title": "Minimum liquidity (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Pools with no liquidity figure at all are dropped by this filter rather than passed through."
          },
          "maxLiquidityUsd": {
            "title": "Maximum liquidity (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on pool liquidity in USD. Leave empty for no upper bound."
          },
          "minMarketCapUsd": {
            "title": "Minimum market cap (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on market capitalisation in USD."
          },
          "maxMarketCapUsd": {
            "title": "Maximum market cap (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on market capitalisation in USD."
          },
          "minFdvUsd": {
            "title": "Minimum fully diluted valuation (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on fully diluted valuation in USD."
          },
          "maxFdvUsd": {
            "title": "Maximum fully diluted valuation (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on fully diluted valuation in USD."
          },
          "minVolume24hUsd": {
            "title": "Minimum 24h volume (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on 24-hour trading volume in USD."
          },
          "maxVolume24hUsd": {
            "title": "Maximum 24h volume (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on 24-hour trading volume in USD."
          },
          "minTxns24h": {
            "title": "Minimum 24h transactions",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on buys plus sells over 24 hours."
          },
          "maxTxns24h": {
            "title": "Maximum 24h transactions",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on buys plus sells over 24 hours."
          },
          "minBuys24h": {
            "title": "Minimum 24h buys",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on buy transactions over 24 hours."
          },
          "minSells24h": {
            "title": "Minimum 24h sells",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on sell transactions over 24 hours."
          },
          "minBuyers24h": {
            "title": "Minimum 24h unique buyers",
            "minimum": 0,
            "type": "integer",
            "description": "Unique wallets, not trades. A pool worked by one bot and a pool traded by a thousand people look identical by transaction count and different here."
          },
          "minPriceChange24hPercent": {
            "title": "Minimum 24h price change (%)",
            "type": "integer",
            "description": "Negative values allowed."
          },
          "maxPriceChange24hPercent": {
            "title": "Maximum 24h price change (%)",
            "type": "integer",
            "description": "Negative values allowed."
          },
          "minPoolAgeHours": {
            "title": "Minimum pool age (hours)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on pool age in hours. Use it to skip brand-new pools."
          },
          "maxPoolAgeHours": {
            "title": "Maximum pool age (hours)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on pool age in hours. Use 24 to keep only pools created today."
          },
          "minPriceUsd": {
            "title": "Minimum price (USD)",
            "type": "string",
            "description": "Accepts fractions such as 0.000001."
          },
          "maxPriceUsd": {
            "title": "Maximum price (USD)",
            "type": "string",
            "description": "Accepts fractions such as 0.000001."
          },
          "quoteSymbols": {
            "title": "Keep only these quote tokens",
            "type": "array",
            "description": "For example SOL, WETH, USDC. Case is ignored.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeQuoteSymbols": {
            "title": "Drop these quote tokens",
            "type": "array",
            "description": "Quote tokens to drop, for example stablecoins you do not want. Case is ignored.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "baseSymbols": {
            "title": "Keep only these base tokens",
            "type": "array",
            "description": "Base token symbols to keep. Case is ignored.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "nameContains": {
            "title": "Pool or token name contains any of",
            "type": "array",
            "description": "Keep a pool if its pool name, token name or token symbol contains any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "withSocialsOnly": {
            "title": "Only tokens with a website or social link",
            "type": "boolean",
            "description": "Needs the merge switch on, because links come from DexScreener.",
            "default": false
          },
          "sortBy": {
            "title": "Sort collected pools by",
            "enum": [
              "",
              "volume_h24",
              "volume_h6",
              "volume_h1",
              "liquidity_usd",
              "market_cap_usd",
              "fdv_usd",
              "price_change_h24",
              "price_change_h1",
              "price_change_m5",
              "txns_h24_total",
              "buyers_h24",
              "pool_age_hours"
            ],
            "type": "string",
            "description": "Applied to what this run collected, after collection — the open endpoint only sorts by 24h volume and 24h transactions. Leave empty to keep source order and stream results as they arrive.",
            "default": ""
          },
          "sortDescending": {
            "title": "Highest first",
            "type": "boolean",
            "description": "On: highest value first. Off: lowest first. Pools with no value for the chosen field always go last.",
            "default": true
          },
          "compactOutput": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "23 fields instead of 95 — the ones an agent or a spreadsheet usually needs.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Drop empty fields",
            "type": "boolean",
            "description": "Leaves out keys whose value is empty. Smaller payloads for LLM pipelines.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}