apithreads
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

Threads API

NPM MIT License Prettier Code Formatting

Unofficial, Reverse-Engineered Node.js/TypeScript client for Meta's Threads.

🚀 Usage (Read)

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({});

Package Sidebar

Install

npm i apithreads

Weekly Downloads

0

Version

1.0.5

License

MIT

Unpacked Size

52.4 kB

Total Files

19

Last publish

Collaborators

  • heyxviraj