Skip to content

creatorcrawl/sdk-typescript

Repository files navigation

@creatorcrawl/sdk

Official TypeScript / JavaScript SDK for the CreatorCrawl social media data API.

One typed client, six platforms: TikTok, Instagram, YouTube, LinkedIn, Twitter/X, and Reddit. Profiles, posts, comments, transcripts, ads, search, and trending data as structured JSON.

  • 60+ endpoints across six platforms
  • Fully typed, ESM + CJS, zero runtime dependencies
  • Works in Node 18+, Bun, Deno, Cloudflare Workers, and browsers
  • Same endpoints are also available as a native MCP server for Claude, Cursor, Windsurf, and Zed

Install

npm install @creatorcrawl/sdk
# or
pnpm add @creatorcrawl/sdk
# or
yarn add @creatorcrawl/sdk

Quick start

Get a key at creatorcrawl.com. 250 credits are free on signup, no card required.

import { CreatorCrawl } from '@creatorcrawl/sdk'

const cc = new CreatorCrawl({ apiKey: process.env.CREATORCRAWL_API_KEY! })

const profile = await cc.tiktok.profile({ handle: 'khaby.lame' })
const transcript = await cc.youtube.transcript({ url: 'https://youtu.be/...' })
const company = await cc.linkedin.company({ url: 'https://www.linkedin.com/company/openai' })

Resources

cc.tiktok.profile({ handle })
cc.tiktok.profileVideos({ handle })
cc.tiktok.videoInfo({ url })
cc.tiktok.transcript({ url })
cc.tiktok.searchKeyword({ query })
cc.tiktok.searchUsers({ query })
cc.tiktok.comments({ url })

cc.instagram.profile({ handle })
cc.instagram.posts({ handle })
cc.instagram.postInfo({ url })
cc.instagram.reels({ handle })
cc.instagram.comments({ url })
cc.instagram.transcript({ url })

cc.youtube.channel({ handle })
cc.youtube.channelVideos({ handle })
cc.youtube.channelShorts({ handle })
cc.youtube.video({ url })
cc.youtube.search({ query })
cc.youtube.transcript({ url })
cc.youtube.comments({ url })
cc.youtube.playlist({ url })

cc.linkedin.profile({ url })
cc.linkedin.company({ url })
cc.linkedin.companyPosts({ url })
cc.linkedin.post({ url })
cc.linkedin.adsSearch({ query })
cc.linkedin.ad({ url })

cc.twitter.profile({ handle })
cc.twitter.tweet({ url })
cc.twitter.userTweets({ handle })
cc.twitter.transcript({ url })
cc.twitter.community({ url })
cc.twitter.communityTweets({ url })

cc.reddit.search({ query })
cc.reddit.subredditDetails({ subreddit })
cc.reddit.subredditPosts({ subreddit })
cc.reddit.subredditSearch({ subreddit, query })
cc.reddit.postComments({ url })

Configuration

const cc = new CreatorCrawl({
  apiKey: 'cc_...',
  baseUrl: 'https://app.creatorcrawl.com/api', // optional
  timeout: 30_000,                             // optional, ms
  fetch: customFetch,                          // optional
})

Error handling

Failed requests throw a typed CreatorCrawlError:

import {
  AuthenticationError,
  CreatorCrawlError,
  InsufficientCreditsError,
  RateLimitError,
  UpstreamError,
} from '@creatorcrawl/sdk'

try {
  await cc.tiktok.profile({ handle: 'khaby.lame' })
} catch (err) {
  if (err instanceof InsufficientCreditsError) {
    // top up credits
  } else if (err instanceof RateLimitError) {
    // back off
  } else if (err instanceof CreatorCrawlError) {
    console.error(err.status, err.message)
  }
}

Cancellation

Every method accepts a RequestOptions argument with an AbortSignal:

const controller = new AbortController()
setTimeout(() => controller.abort(), 5_000)

await cc.tiktok.profile({ handle: 'khaby.lame' }, { signal: controller.signal })

Links

License

MIT

About

Official TypeScript SDK for the CreatorCrawl social media data API. Scrape TikTok, Instagram, YouTube, LinkedIn, Twitter/X, and Reddit with one typed client.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors