Neynar Documentation
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Related API: Fetch notifications for user
This guide demonstrates how to fetch notifications (inbound mentions, replies, likes, recasts, quotes) of a Farcaster user with the Neynar SDK. Check out this Getting started guide to learn how to set up your environment and get an API key. First, initialize the client:
import { NeynarAPIClient, Configuration } from "@neynar/nodejs-sdk";
// make sure to set your NEYNAR_API_KEY .env
// don't have an API key yet? get one at neynar.com
const config = new Configuration({
apiKey: process.env.NEYNAR_API_KEY,
});
const client = new NeynarAPIClient(config);
Then fetch the notifications:
const dwrFID = 3;
const notifications = await client.fetchAllNotifications({fid:dwrFID});
console.log(notifications);
Example output:
{
"notifications": [
{
"object": "notification",
"most_recent_timestamp": "2023-11-28T11:11:11.000Z",
"type": "likes",
"cast": [Object ...],
"reactions": [
[Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
]
},
{
"object": "notification",
"most_recent_timestamp": "2023-11-28T11:10:56.000Z",
"type": "quote",
"cast": [Object ...],
"quotes": [
[Object ...], [Object ...]
]
},
{
"object": "notification",
"most_recent_timestamp": "2023-11-28T11:09:16.000Z",
"type": "likes",
"cast": [Object ...],
"reactions": [
[Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
]
},
{
"object": "notification",
"most_recent_timestamp": "2023-11-28T11:05:59.000Z",
"type": "follows",
"follows": [
[Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
]
},
{
"object": "notification",
"most_recent_timestamp": "2023-11-28T10:25:51.000Z",
"type": "likes",
"cast": [Object ...],
"reactions": [
[Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
]
}
],
"next": {
"cursor": "eyJ0aW1lc3RhbXAiOiIyMDIzLTExLTI4IDEwOjI1OjUxLjAwMDAwMDAifQ=="
}
}
So that’s what @dwr.eth sees on his Farcaster notification! To fetch the next page of notifications, use the cursor:
const nextNotifications = await client.fetchAllNotifications({
fid: dwrFID,
cursor: notifications.next.cursor,
});
To only fetch specific types of notifications like replies, mentions, and quotes, use the fetchMentionAndReplyNotifications function:
const mentionsAndReplies = await client.fetchAllNotifications({
fid: dwrFID,
});
console.log(mentionsAndReplies);
Example output:
{
"result": {
"notifications": [
[Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
],
"next": {
"cursor": "eyJ0aW1lc3RhbXAiOiIyMDIzLTExLTI4IDA3OjI5OjI4LjAwMDAwMDAifQ=="
}
}
}
To fetch the next page of mentions and replies, use the cursor:
const nextMentionsAndReplies = await client.fetchAllNotifications({
fid: dwrFID,
cursor: mentionsAndReplies.next.cursor,
});
console.log(nextMentionsAndReplies);
That’s it! You can now fetch notifications of any Farcaster user.