1.0.5 • Published 10 months ago

apithreads v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Threads API

NPM MIT License Prettier Code Formatting

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

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago