Create New Pump.Fun Tweets Monitor - API Reference
Creates a new monitor to receive alerts when any profile posts a link to pump.fun coin page. This monitor will only detect tweets that contain links to pump.fun posted by non-shadow-banned Twitter users that have at least 1000 followers.
POST https://api.socialdata.tools/monitors/search-pump-fun
Headers
Authorization string required
Authorization Bearer header containing your SocialData API key
Example: Bearer YOUR_API_KEY
Body
webhook_url string optional
Monitor-specific webhook URL that will override your global webhook URL. Not required
Example: https://my-website.com/webhook
Code Examples
curl -X POST "https://api.socialdata.tools/monitors/search-pump-fun" -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -H 'Accept: application/json'
const API_KEY = 'YOUR_API_KEY_HERE';
fetch('https://api.socialdata.tools/monitors/search-pump-fun', { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json', 'Accept': 'application/json' }}).then(response => response.json()).then(response => console.log(response)).catch(err => console.error(err));
import requests
API_KEY = 'YOUR_API_KEY_HERE'
url = 'https://api.socialdata.tools/monitors/search-pump-fun'
headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json', 'Accept': 'application/json'}
response = requests.post(url, headers=headers)
if response.status_code == 200: data = response.json() print(data)else: print(f"Error: {response.status_code}") print(response.text)
$API_KEY = 'YOUR_API_KEY_HERE';
$url = "https://api.socialdata.tools/monitors/search-pump-fun";
$ch = curl_init();
curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer $API_KEY", "Content-Type: application/json", "Accept: application/json" ]]);
$response = curl_exec($ch);$data = json_decode($response, true);print_r($data);
curl_close($ch);
Example Responses
{ "status": "success", "data": { "id": "01jmsjfcer1yhqb2qxgr3812f6", "created_at": "2025-02-23T14:13:14.000000Z", "monitor_type": "search_pump_fun", "webhook_url": null, "parameters": [] }}
{ "status": "error", "message": "Insufficient balance"}
{ "status": "error", "message": "You already have an active pump.fun monitor"}
Response Codes
- 200 OK - request succeeded
- 402 Payment Required - not enough credits to perform this request
- 422 Unprocessable Content - validation failed (e.g. one of the required parameters was not provided)
- 500 Internal Error - API internal error, typically means that SocialData API failed to obtain the requested information and you should try again later
Webhook Payload Example
When a monitor detects a new tweet with a link to pump.fun coin page, the API will make a POST
request to your webhook URL with the following payload:
{ "event": "new_tweet", "data": { "tweet_created_at": "2025-03-11T04:49:55.000000Z", "id": 1899321865522331859, "id_str": "1899321865522331859", "conversation_id_str": "1899321865522331859", "text": null, "full_text": "https:\/\/t.co\/HxlxOljYWB\n\nLFG \ud83d\ude80\ud83d\ude80\ud83d\ude80", "source": "<a href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\">Twitter for iPhone<\/a>", "truncated": false, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "in_reply_to_screen_name": null, "user": { "id": 1066319257951064069, "id_str": "1066319257951064069", "name": "Rohan Cerveli | TDO", "screen_name": "rohancerv", "location": "", "url": "http:\/\/safemoon.meme", "description": "No X support No Airdrops No giveaways \u2026 Just Advice \ud83d\ude02\ud83e\udef6\ud83c\udffe", "protected": false, "verified": true, "followers_count": 1921, "friends_count": 76, "listed_count": 8, "favourites_count": 19810, "statuses_count": 17926, "created_at": "2018-11-24T13:14:57.000000Z", "profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/1066319257951064069\/1740427809", "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/1879574201641648128\/TMsKFPwm_normal.jpg", "can_dm": true }, "quoted_status_id": null, "quoted_status_id_str": null, "is_quote_status": false, "quoted_status": null, "retweeted_status": null, "quote_count": 0, "reply_count": 0, "retweet_count": 0, "favorite_count": 0, "views_count": null, "bookmark_count": 0, "lang": "und", "entities": { "hashtags": [], "symbols": [], "timestamps": [], "urls": [ { "display_url": "pump.fun\/coin\/FaGkRQrH3\u2026", "expanded_url": "https:\/\/pump.fun\/coin\/FaGkRQrH3Zop9XD8F7q7yS7dRT3JqZ7B7CfwG59opump", "url": "https:\/\/t.co\/HxlxOljYWB", "indices": [ 0, 23 ] } ], "user_mentions": [] }, "is_pinned": false }, "meta": { "monitor_id": "01jmsjfcer1yhqb2qxgr3812f6", "monitor_type": "search_pump_fun" }}
interface NewPumpFunTweetEvent { event: string; data: Tweet; meta: { monitor_id: string; monitor_type: string; };}
interface Tweet { tweet_created_at: string; id: number; id_str: string; conversation_id_str: string | null; text: string | null; full_text: string; source: string; truncated: boolean; in_reply_to_status_id: number | null; in_reply_to_status_id_str: string | null; in_reply_to_user_id: number | null; in_reply_to_user_id_str: string | null; in_reply_to_screen_name: string | null; user: User; quoted_status_id: number | null; quoted_status_id_str: string | null; is_quote_status: boolean; quoted_status: Tweet | null; retweeted_status: Tweet | null; quote_count: number; reply_count: number; retweet_count: number; favorite_count: number; views_count: number | null; bookmark_count: number; lang: string; entities: any; is_pinned: boolean;}
interface User { id: number; id_str: string; name: string; screen_name: string; location: string; url: string | null; description: string; protected: boolean; verified: boolean; followers_count: number; friends_count: number; listed_count: number; favourites_count: number; statuses_count: number; created_at: string; profile_banner_url: string; profile_image_url_https: string; can_dm: boolean;}