curl --request GET \
--url https://api.dexploit.dev/tokens/{mint}/bundlers \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.dexploit.dev/tokens/{mint}/bundlers"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.dexploit.dev/tokens/{mint}/bundlers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dexploit.dev/tokens/{mint}/bundlers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dexploit.dev/tokens/{mint}/bundlers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dexploit.dev/tokens/{mint}/bundlers")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dexploit.dev/tokens/{mint}/bundlers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"mint": "<string>",
"count": 123,
"bundlers": [
{
"wallet": "<string>",
"tagged_at": 123
}
],
"computed_at": 123,
"coverage_note": "<string>"
}{
"success": false,
"error": {
"code": "INVALID_PARAM",
"message": "use pair_address; see /api/v1/pairs?token_address=X to discover pools"
}
}Bundler wallets for a mint
Wallets tagged bundler for this mint — wallets that acquired the token in the same bundled transaction batch at launch.
Returns the tagged wallets (most recently tagged first) and count, the true total of distinct tagged wallets for the mint rather than the page size — so count can exceed bundlers.length (limit defaults to 100, max 500). A coverage_note is included only when count is 0: bundler tagging began 2026-05-28, and mints first observed before then read 0 until re-observed.
Lifetime-tagged, not currently-holding. Unlike GET /tokens/{mint}/snipers and GET /tokens/{mint}/insiders, this route does not join current balances, so a wallet stays listed after selling out and count cannot fall.
Compare GET /bundlers/chart/{token}, which returns 0 in every bucket regardless of this count — that series is not yet wired to the tag data (Dexploit-Swaps#940). A non-empty list here beside a flat-zero chart is expected today.
curl --request GET \
--url https://api.dexploit.dev/tokens/{mint}/bundlers \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.dexploit.dev/tokens/{mint}/bundlers"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.dexploit.dev/tokens/{mint}/bundlers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dexploit.dev/tokens/{mint}/bundlers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dexploit.dev/tokens/{mint}/bundlers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dexploit.dev/tokens/{mint}/bundlers")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dexploit.dev/tokens/{mint}/bundlers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"mint": "<string>",
"count": 123,
"bundlers": [
{
"wallet": "<string>",
"tagged_at": 123
}
],
"computed_at": 123,
"coverage_note": "<string>"
}{
"success": false,
"error": {
"code": "INVALID_PARAM",
"message": "use pair_address; see /api/v1/pairs?token_address=X to discover pools"
}
}Authorizations
Preferred for swaps-api endpoints (/swaps/*, /stats/*, /trending, /pool-events).
Path Parameters
Query Parameters
Max wallets to return. Clamped to 1..500.
1 <= x <= 500Response
Stub bundler response
Bundler wallets tagged for a mint. Lifetime-tagged: no current-balance filter.
True total of distinct wallets tagged bundler for this mint — not the page size, so it can exceed bundlers.length.
Most recently tagged first, truncated to limit.
Show child attributes
Show child attributes
Present only when count is 0. Bundler tagging began 2026-05-28; mints first observed before then read 0 until re-observed.

