curl -X POST https://scrape.st/x/profile-watch \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "elonmusk"
}'
{
"data": {
"username": "elonmusk",
"userId": "44196397",
"createdAt": "2026-07-05T10:00:00.000Z"
},
"message": "Profile watch registered successfully"
}
Profile Tracking
Watch Profile Changes
Get notified when an X account changes its handle or profile picture
POST
/
x
/
profile-watch
curl -X POST https://scrape.st/x/profile-watch \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "elonmusk"
}'
{
"data": {
"username": "elonmusk",
"userId": "44196397",
"createdAt": "2026-07-05T10:00:00.000Z"
},
"message": "Profile watch registered successfully"
}
Registers an X account for profile change detection. The watch is anchored to
the account’s stable user id, so it survives username changes. When the
avatar or the handle changes, a
profile_change event is delivered through your
configured channels (webhook, Telegram, WebSocket).
Limits: 50 watches per API key.
Because the watch follows the stable user id, a username change no longer ends
tracking — you get a
profile_change event with reason: "username_changed"
and the watch keeps running under the new handle.Request
string
required
The X username to watch (with or without the leading
@).Response
object
The registered watch (
username, userId, createdAt).string
Status message describing the result
curl -X POST https://scrape.st/x/profile-watch \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "elonmusk"
}'
{
"data": {
"username": "elonmusk",
"userId": "44196397",
"createdAt": "2026-07-05T10:00:00.000Z"
},
"message": "Profile watch registered successfully"
}
Event payload
profile_change events are flat — source is the discriminator that tells them
apart from regular source events. The fields present depend on reason:
{
"source": "profile_change",
"username": "elonmusk",
"reason": "pfp_changed",
"previous_pfp": "https://pbs.twimg.com/profile_images/123/old_400x400.jpg",
"current_pfp": "https://pbs.twimg.com/profile_images/456/new_400x400.jpg"
}
reason is one of:
"pfp_changed"— the avatar changed. Carriesprevious_pfp/current_pfp."username_changed"— the handle changed. Carriesprevious_username/current_username;usernameis the new handle.