Welcome to Flintr - Documentation
Flintr is your one-stop feed for real-time Solana token launches—delivering fresh market intel the moment a new coin goes live on Pump.fun, Pump Swap, and other emerging launchpads. Traders, quants, and builders all use Flintr to spot opportunities early and focus on innovation instead of hunting for data.
Behind the scenes, Flintr streams block-0 alerts over WebSocket with sub-second latency. Every JSON payload arrives ready for bots or dashboards and includes creator wallet, mint address, supply, and liquidity-pair details. Current coverage spans Pump.fun and Pump Swap. Moonit and Raydium LaunchLab are next on the roadmap, giving developers the widest real-time Solana signal layer for custom filters and trading logic.
Real-time Signals
Receive token creation signals in real-time via WebSocket
Strategic data
Access key insights on each token to fuel your trading strategy
Easy Integration
Simple API design with examples for JavaScript, Python, and more
Quick Start Guide
Follow these steps to quickly integrate with Flintr and start receiving real-time token signals:
- Sign up for Flintr – Create an account and subscribe to a plan that suits your needs.
- Get your API key - Generate an API key from your dashboard. Keep this key secure as it will be used for all API requests.
- Connect to WebSocket - Establish a WebSocket connection to receive real-time signals as they occur.
- Process signals - Implement logic to process and act on the signals you receive according to your trading strategy.
Note: For production applications, implement reconnection logic to handle potential disconnections.
Authentication
All API requests require authentication using your API key. You can generate an API key from your Flintr dashboard.
Important: Developer accounts only have a 7-Day Free Trial access to the websocket, which starts with the first API key generation and does not reset with subsequent key generations. Once the key has expired, you'll need to upgrade your account to a Sniper tier to continue using Flintr.
Important: Keep your API key secure and never expose it in client-side code. If you believe your API key has been compromised, regenerate it immediately from your dashboard.
Important: API Keys automatically expire when the account paid subscription status changes (Developer-to-Sniper or Sniper-to-Developer). Make sure to generate a new key before integrating with your application.
WebSocket API
The WebSocket API provides real-time token signals as they happen. This is the recommended way to receive signals if your strategy requires immediate action.
Connection
To establish a WebSocket connection, connect to the following endpoint:
wss://api-v1.flintr.io/?token=[YOUR_API_KEY]
Signal Format
When a new signal is available, you'll receive a message in the following formats. Note that all platforms and event types are sent on the same websocket connection. It is thus necessary to filter based on platform and event classes/types to achieve your desired results.
{
"timeSent": 1748036482000,
"timeDetected": 1748036479000,
"blockchainDelay": 1.695957,
"transactionTime": 0.641921,
"signature": "3Ko2…NuHv",
"event": {
"class": "token",
"platform": "pump.fun",
"type": "mint"
},
"data": {
"mint": "9A76…pump",
"metaData": {
"name": "Example token",
"symbol": "EXT",
"description": "A new mint!",
"image": "https://example.com/example.png",
"twitter": "https://x.com/example",
"website": "https://x.com/i/communities/example",
"createdOn": "https://pump.fun"
},
"tokenData": {
"mintDatetime": 1748036479000,
"updateAuthority": "TSLv…eokM",
"creator": "8U6d…as6s",
"decimals": 6,
"isBundled": true,
"bundleAmount": 0.9903592,
"latestPrice": "0.000000029822"
},
"ammData": {
"bondingCurve": "F21P…oSvK",
"associatedBondingCurve": "EBDk…X3p3",
"vaultCreatorATA": "GMVf…771s",
"vaultCreatorAuthority": "f2Z4…tVA9"
}
}
}
We also send pings every minute to confirm the Websocket connection is still alive.
{
"time": "2025-05-04 20:31:08",
"event": {
"class": "ping"
}
}
Data Models
The Flintr WebSocket feed emits real-time trading signals with rich, structured payloads. To make integration smooth, we break down the structure of each Signal into intuitive groups: general metadata, event type, token details, AMM data, and platform-specific stats.
We send two event types: (1) PINGS to confirm the websocket is running; (2) TOKENS with signal data.
PINGS
time
string
Datetime of when the ping was sent out in UTC, in the YYYY-MM-DD HH:MM:SS format.
2025-05-04 20:41:10
class
string
Parent: event
Type of event sent out. Ping!
ping
PUMP.FUN TOKENS
timeSent
integer
Unix timestamp in milliseconds of when the outgoing signal was generated by our servers.
1748036482000
timeDetected
integer
Unix timestamp in milliseconds of when the graduation event was available on the blockchain.
1748036479000
blockchainDelay
float
Time delta in seconds between the actual graduation event and its availability on the blockchain.
1.695957
transactionTime
string
Time delta in seconds it took our servers to process and publish the signal once available on the blockchain.
0.641921
signature
string
Signature of the actual token graduation transaction (e.g., liquidity pool creation, migration from pump.fun, etc.)
3Ko2…NuHv
Event
class
string
Parent: event
Type of event sent out.
token
platform
string
Parent: event
Platform where the token was created.
pump.fun
type
string
Parent: event
Type of token event on the platform. For new mints on pump.fun this is always 'mint'.
mint
Data
mint
string
Parent: data
Base mint address of the token
9A76…pump
Data > metaData
name
string
Parent: data/metaData
Name of the token.
Example token
symbol
string
Parent: data/metaData
Short symbol/ticker of the token.
EXT
description
string
Parent: data/metaData
Metadata description of the token, if provided by the creator.
A graduation meme token
image
string
Parent: data/metaData
Metadata image of the token, if provided by the creator.
https://example.com/example.png
twitter
string
Parent: data/metaData
Metadata X/Twitter link of the token, if provided by the creator.
https://x.com/example
website
string
Parent: data/metaData
Metadata website of the token, if provided by the creator.
https://x.com/i/communities/example
createdOn
string
Parent: data/metaData
Platform where the mint was created, if available.
https://pump.fun
Data > tokenData
mintDatetime
integer
Parent: data/tokenData
Unix timestamp in milliseconds of when the token was minted for the first time.
1748036479000
updateAuthority
string
Parent: data/tokenData
Account allowed to update a token's metadata.
TSLv…eokM
creator
string
Parent: data/tokenData
Address who originally created the token.
8U6d…as6s
decimals
integer
Parent: data/tokenData
Number of decimals used when calculating lamports.
6
IsBundled
bool
Parent: data/tokenData
Flag whether a Buy order was bundled with the Mint instruction. Useful for detecting potential scams.
true
bundleAmount
float
Parent: data/tokenData
Amount of SOL that has been bundled with the Mint instruction. Useful for detecting potential scams.
0.9903592
latestPrice
float
Parent: data/tokenData
Latest price oberserved on the mint (could be block-0 bundles or subsequent fast transactions).
0.000000029822
Data > ammData
bondingCurve
string
Parent: data/ammData
Bonding Curve associated to this mint. Part of the pool keys for passing buy/sell orders programmatically.
F21P…oSvK
associatedBondingCurve
string
Parent: data/ammData
Token account of the Bonding Curve of the mint. Part of the pool keys for passing buy/sell orders programmatically.
EBDk…X3p3
vaultCreatorATA
string
Parent: data/ammData
Creator vault Associated Token Account used by Pump.fun. Part of the pool keys for passing buy/sell orders programmatically.
GMVf…771s
vaultCreatorAuthority
string
Parent: data/ammData
Creator vault Authority used by Pump.fun. Part of the pool keys for passing buy/sell orders programmatically.
f2Z4…tVA9
PUMP SWAP TOKENS
timeSent
integer
Unix timestamp in milliseconds of when the outgoing signal was generated by our servers.
1746387580000
timeDetected
integer
Unix timestamp in milliseconds of when the graduation event was available on the blockchain.
1746387578000
blockchainDelay
float
Time delta in seconds between the actual graduation event and its availability on the blockchain.
1.588838
transactionTime
string
Time delta in seconds it took our servers to process and publish the signal once available on the blockchain.
0.716285
signature
string
Signature of the actual token graduation transaction (e.g., liquidity pool creation, migration from pump.fun, etc.)
498b…fhhS
Event
class
string
Parent: event
Type of event sent out.
token
platform
string
Parent: event
Platform where the token was created.
pump.fun
type
string
Parent: event
Type of token event on the platform. For graduations to Pump Swap this is always 'graduation'.
graduation
Data
mint
string
Parent: data
Base mint address of the token
Skb3…pump
Data > metaData
name
string
Parent: data/metaData
Name of the token.
Example token
symbol
string
Parent: data/metaData
Short symbol/ticker of the token.
EXT
description
string
Parent: data/metaData
Metadata description of the token, if provided by the creator.
A graduation meme token
image
string
Parent: data/metaData
Metadata image of the token, if provided by the creator.
https://example.com/example.png
twitter
string
Parent: data/metaData
Metadata X/Twitter link of the token, if provided by the creator.
https://x.com/example
website
string
Parent: data/metaData
Metadata website of the token, if provided by the creator.
https://x.com/i/communities/example
Data > tokenData
mintDatetime
integer
Parent: data/tokenData
Unix timestamp in milliseconds of when the token was minted for the first time.
1746386003463
migrateInstruction
boolean
Parent: data/tokenData
Flag whether the Migrate instruction was used during the token graduation. Useful for spotting scams/rugs.
true
lockedLP
boolean
Parent: data/tokenData
Flag whether the Liquidity Pool tokens were burned. Useful for spotting scams/rugs.
true
freezeAuthority
string
Parent: data/tokenData
Flag whether the Freeze Authority was released by the creator. Useful for spotting scams/rugs.
null
mintAuthority
string
Parent: data/tokenData
Flag whether the Mint Authority was released by the creator. Useful for spotting scams/rugs.
null
updateAuthority
string
Parent: data/tokenData
Account allowed to update a token's metadata.
3zDg…VNaA
isNative
boolean
Parent: data/tokenData
Flag whether the official Pump.swap AMM was called as part of the migration event. Useful for spotting scams/rugs.
true
holderDistribution
JSON
Parent: data/tokenData
Top 10 token holders at time of graduation.
{ "0": {"address": "DXYZ…wzFbD", "amount": 212943394.916821}, "1": {"address": "8S43…JwJw", "amount": 30905022.792736}, "2": {"address": "81Yf…fQf5", "amount": 30027308.835351}, "3": {"address": "FPjM…kHwu", "amount": 27029480.942816}, "4": {"address": "8UiW…qWCP", "amount": 17044849.192236}, "5": {"address": "Fc1j…hC4z", "amount": 15582914.502887}, "6": {"address": "Fa31…HtnW", "amount": 15295954.591196}, "7": {"address": "HTxG…dxPQ", "amount": 14566477.861491}, "8": {"address": "HWka…DMVi", "amount": 14509102.054108}, "9": {"address": "EHqP…ERAx", "amount": 14337490.68874} }
creator
string
Parent: data/tokenData
Address who originally created the token.
2xKD…pFFQ
signer
string
Parent: data/tokenData
Address who signed the token graduation event. Useful for spotting scams/rugs.
39az…UJjg
quoteAmount
float
Parent: data/tokenData
SOL amount locked as part of the liquidity pool on graduation.
84.990359973
LPAmount
float
Parent: data/tokenData
Tokens locked as part of the liquidity pool on graduation.
206900000
decimals
integer
Parent: data/tokenData
Number of decimals used when calculating lamports.
6
Data > ammData
ammId
string
Parent: data/ammData
AMM ID linked to the Token/SOL pair. Part of the pool keys for passing buy/sell orders programmatically.
CbuM…yoE6
poolBase
string
Parent: data/ammData
Vault used by Pump.swap for Base tokens. Part of the pool keys for passing buy/sell orders programmatically.
DXYZ…zFbD
poolQuote
string
Parent: data/ammData
Vault used by Pump.swap for SOL. Part of the pool keys for passing buy/sell orders programmatically.
Ec7c…iexh
vaultCreatorATA
string
Parent: data/ammData
Creator vault Associated Token Account used by Pump.fun. Part of the pool keys for passing buy/sell orders programmatically.
9zmj…PWU1Z
vaultCreatorAuthority
string
Parent: data/ammData
Creator vault Authority used by Pump.fun. Part of the pool keys for passing buy/sell orders programmatically.
9BpU…opX9D
Data > platformData
marketCapInSOL
float
Parent: data/platformData
Market cap achieved by the token (in SOL) at the time of graduation. Absence could be indicative of scams/rugs that bypassed Pump.fun.
400.320762125
pumpKOTHDatetime
integer
Parent: data/platformData
Unix timestamp in milliseconds of when the token achieved King of the Hill on Pump.fun, if at all.
1746386505000
pumpTrades
integer
Parent: data/platformData
Number of trades passed on Pump.fun before the token graduated. Absence could be indicative of scams/rugs that bypassed Pump.fun.
1939
pumpLikes
integer
Parent: data/platformData
Number of likes on Pump.fun threads before the token graduated. Absence could be indicative of scams/rugs that bypassed Pump.fun.
17
pumpReplies
integer
Parent: data/platformData
Number of replies on Pump.fun threads before the token graduated. Absence could be indicative of scams/rugs that bypassed Pump.fun.
13
Implementation Examples
Here's how to connect to the Flintr WebSocket API in different programming languages:
Javascript
// API key from your Flintr dashboard
const API_KEY = 'YOUR_API_KEY';
const WS_URL = `wss://api-v1.flintr.io/sub?token=${API_KEY}`;
// Connect to Flintr WebSocket API
function connect() {
const ws = new WebSocket(WS_URL);
ws.onopen = () => console.log('✅ Connected');
ws.onmessage = e => {
try {
const sig = JSON.parse(e.data);
console.log('🔔 Signal:', sig);
// …your buy logic here…
} catch {
console.error('⚠️ Invalid JSON:', e.data);
}
};
ws.onerror = e => console.error('⚠️ Error', e);
ws.onclose = () => {
console.log('🔴 Disconnected — reconnecting in 5s');
setTimeout(connect, 5000);
};
}
// kick things off
connect();
Python
import json
import time
from websocket import WebSocketApp
# API key from your Flintr dashboard
API_KEY = "YOUR_API_KEY"
WS_URL = f"wss://api-v1.flintr.io/sub?token={API_KEY}"
def on_open(ws: WebSocketApp):
print("[Flintr] Connected → streaming signals…")
def on_message(ws: WebSocketApp, message: str):
try:
sig = json.loads(message)
except json.JSONDecodeError:
print("⚠️ Malformed JSON:", message)
return
# pretty-print the entire signal
print(json.dumps(sig, indent=2))
# …your buy logic here…
def on_error(ws: WebSocketApp, error):
print(f"Error: {error}")
def on_close(ws: WebSocketApp, close_status_code, close_msg):
print(f"Disconnected (code={close_status_code}): {close_msg}")
# auto-reconnect after a pause
time.sleep(5)
print("Reconnecting…")
start_ws()
def start_ws():
ws = WebSocketApp(
WS_URL,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
# run in blocking mode with ping keep-alive
ws.run_forever(ping_interval=30, ping_timeout=10)
if __name__ == '__main__':
try:
start_ws()
except KeyboardInterrupt:
print("\nStopped by user")