Fetch User Information
- User by Wallet Address
- Mutual Follows/Followers
- Username Search
- Mutes, Blocks, and Bans
Build Farcaster Mini Apps
Fetch Cast Information
Build Bots and Agents
- Create Farcaster Bot or Agent
- Listen for @bot Mentions
- Make Agents Prompt Transactions
Fetch Farcaster Feeds
- Trending Feed on Farcaster
- Channel Feeds
- Feed of Given Farcaster user ID
- Casts by Embed in Farcaster
- How to Use the Neynar Feed API
Onboard New Users
- Create New Farcaster Account
- SIWN: Connect Farcaster Accounts
- Fetch Signers
- Add User Verification
Write Data to Farcaster
- Choose the Right Signer
- Write Data with Managed Signers
- Like & Recast
- Write Casts to Channel
Filter Spam, Low Quality Data
Run Queries on FC Data
- Choose Among Data Products
- Ingest Farcaster Data
- Indexer Service
- Hosted SQL
Render Farcaster in React
Get Events Via Webhooks
Fetch Notifications
Create Onchain Transactions
Intersect Onchain & Social Data
Write Direct Casts
Get Farcaster Storage Data
Publish Actions on FC Apps
Get Farcaster Data on Base
Explore Network Health
Get Hypersub Subscriptions
Contribute To Development
Fetch Cast Information
Warpcast URLs
Convert Warpcast URL into full cast data from Farcaster network through Neynar
Related API: Lookup cast by hash or URL
Warpcast cast url doesn’t contain all the full cast hash value, it usually looks like this: https://warpcast.com/dwr.eth/0x029f7cce
.
This guide demonstrates how to fetch cast information from Warpcast cast url.
Check out this Getting started guide to learn how to set up your environment and get an API key.
First, initialize the client:
// npm i @neynar/nodejs-sdk
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 cast:
// @dwr.eth AMA with @balajis.eth on Farcaster
const url = "https://warpcast.com/dwr.eth/0x029f7cce";
const cast = await client.lookupCastByHashOrWarpcastUrl({
identifier: url,
type: CastParamType.Url,
});
console.log(cast);
Example output:
{
cast: {
object: "cast_hydrated",
hash: "0x029f7cceef2f0078f34949d6e339070fc6eb47b4",
thread_hash: "0x029f7cceef2f0078f34949d6e339070fc6eb47b4",
parent_hash: null,
parent_url: "https://thenetworkstate.com",
parent_author: {
fid: null
},
author: {
object: "user",
fid: 3,
custody_address: "0x6b0bda3f2ffed5efc83fa8c024acff1dd45793f1",
username: "dwr.eth",
display_name: "Dan Romero",
pfp_url: "https://res.cloudinary.com/merkle-manufactory/image/fetch/c_fill,f_png,w_256/https://lh3.googleusercontent.com/MyUBL0xHzMeBu7DXQAqv0bM9y6s4i4qjnhcXz5fxZKS3gwWgtamxxmxzCJX7m2cuYeGalyseCA2Y6OBKDMR06TWg2uwknnhdkDA1AA",
profile: [Object ...],
follower_count: 19381,
following_count: 2703,
verifications: [ "0xd7029bdea1c17493893aafe29aad69ef892b8ff2",
"0xa14b4c95b5247199d74c5578531b4887ca5e4909",
"0xb877f7bb52d28f06e60f557c00a56225124b357f",
"0x8fc5d6afe572fefc4ec153587b63ce543f6fa2ea"
],
active_status: "active"
},
text: "Welcome to @balajis.eth!\n\nHe’s kindly agreed to do an AMA. Reply with your questions. :)",
timestamp: "2023-11-28T14:44:32.000Z",
embeds: [],
reactions: {
likes: [
[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 ...], [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 ...], [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 ...], [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 ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...], [Object ...]
],
recasts: [
[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 ...]
]
},
replies: {
count: 180
},
mentioned_profiles: [
[Object ...]
]
}
}
Obviously, you can also fetch cast by hash:
// full hash of the warpcast.com/dwr.eth/0x029f7cce
const hash = "0x029f7cceef2f0078f34949d6e339070fc6eb47b4";
const cast = (await client.lookupCastByHashOrWarpcastUrl({
identifier: hash,
type: CastParamType.Hash,
}));
console.log(cast);
Which will return the same result as above.
Ready to start building?
Get your subscription at neynar.com and reach out to us on Telegram with any questions!
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.