apithreads
v1.0.5
Published
Unofficial, Reverse-Engineered Node.js/TypeScript client for Meta's [Threads](https://threads.net).
Downloads
4
Maintainers
Readme
Threads API
Unofficial, Reverse-Engineered Node.js/TypeScript client for Meta's Threads.
import { ThreadsAPI } from "apithreads";
// or in Deno 🦖:
// import ThreadsAPI from "npm:apithreads";
const main = async () => {
const threadsAPI = new ThreadsAPI();
const username = "heyxviraj";
// 👤 Details for a specific user
const userID = await threadsAPI.getUserIDfromUsername(username);
if (!userID) {
return;
}
const user = await threadsAPI.getUserProfile(username, userID);
console.log(JSON.stringify(user));
const posts = await threadsAPI.getUserProfileThreads(username, userID);
console.log(JSON.stringify(posts));
const replies = await threadsAPI.getUserProfileReplies(username, userID);
console.log(JSON.stringify(replies));
// 📖 Details for a specific thread
const postID = await threadsAPI.getPostIDfromURL("[THREAD_URL]");
if (!postID) {
return;
}
const post = await threadsAPI.getThreads(postID);
console.log(JSON.stringify(post.containing_thread));
console.log(JSON.stringify(post.reply_threads));
const likers = await threadsAPI.getThreadLikers(postID);
console.log(JSON.stringify(likers));
};
main();
🚀 Usage (Write)
✨ Text Threads
import { ThreadsAPI } from "apithreads";
const main = async () => {
const threadsAPI = new ThreadsAPI({
username: "heyxviraj", // Your username
password: "PASSWORD", // Your password
});
await threadsAPI.publish({
text: "🤖 Hello World",
});
};
main();
✨ Threads with Image
await threadsAPI.publish({
text: "🤖 Threads with Image",
image: "[LINK_TO_IMAGE].jpg",
});
✨ Threads with Link Attachment
await threadsAPI.publish({
text: "🤖 Threads with Link Attachment",
url: "https://github.com/virajbhartiya/apithreads",
});
✨ Reply to Other Threads
const parentURL = "https://www.threads.net/t/[THREAD_ID]";
const parentPostID = await threadsAPI.getPostIDfromURL(parentURL); // or use `getPostIDfromThreadID`
await threadsAPI.publish({
text: "🤖 Beep",
link: "https://github.com/virajbhartiya/apithreads",
parentPostID: parentPostID,
});
✨ Like/Unlike a Thread
const threadURL = "https://www.threads.net/t/[THREAD_ID]";
const postIDToLike = await threadsAPI.getPostIDfromURL(threadURL); // or use `getPostIDfromThreadID`
// 💡 Uses current credentials
await threadsAPI.like(postIDToLike);
await threadsAPI.unlike(postIDToLike);
✨ Follow/Unfollow a User
const userIDToFollow = await threadsAPI.getUserIDfromUsername("heyxviraj");
// 💡 Uses current credentials
await threadsAPI.follow(userIDToFollow);
await threadsAPI.unfollow(userIDToFollow);
Installation
yarn add apithreads
# or with npm
npm install apithreads
# or with pnpm
pnpm install apithreads
// or in Deno 🦖
import ThreadsAPI from "npm:apithreads";
const threadsAPI = new ThreadsAPI.ThreadsAPI({});