# API details

🍌 Detailed API reference

API docs by services: detailed API documentation for each service.

# API endpoint

https://api.spencerwoo.com/substats/

# RSS

# Feedly

Spencer's Blog - Feedly RSS subscribers (opens new window)

GET /?source=feedly&queryKey={QUERY}
  • Source shorthand: feedly
  • Query key: the target RSS link, like https://blog.spencerwoo.com/posts/index.xml for example. If the feed is not found, 0 subscribers will be returned.

# Inoreader

🌋 Limitations

Due to Inoreader API limitations, if your feed's total subscribers is larger than 1000, for instance: 6k subs, the Inoreader API will only return 6k. In order to compensate for this issue, our API will return the number 6000.

Spencer's Blog - Inoreader RSS subscribers (opens new window)

GET /?source=inoreader&queryKey={QUERY}
  • Source shorthand: inoreader
  • Query key: the target RSS link, like https://blog.spencerwoo.com/posts/index.xml for example. If the feed is not found, 0 subscribers will be returned.

# NewsBlur slow

🐢 Slow API

Substat's NewsBlur route sometimes suffer from frequent latencies because: ① NewsBlur API itself is not so fast and, ② the API requires authentication. So each time you send a request to Substat, Substat need to log itself in first. As my Cloudflare Worker account is a free account, I don't have access to KV storage and Cloudflare Workers itself doesn't provide CRON jobs, thus I cannot persist the token and have to request for it each time instead.

Spencer's Blog - NewsBlur RSS subscribers (opens new window)

GET /?source=newsblur&queryKey={QUERY}
  • Source shorthand: newsblur
  • Query key: the target RSS link, like https://blog.spencerwoo.com/posts/index.xml for example. If the feed is not found, 0 subscribers will be returned.

# Feeds Pub new

Spencer's Blog - Feeds Pub RSS subscribers (opens new window)

GET /?source=feedsPub&queryKey={QUERY}
  • Source shorthand: feedsPub
  • Query key: the target RSS link, like https://blog.spencerwoo.com/posts/index.xml for example. If the feed is not found, 0 subscribers will be returned.

# Social media

# 即刻 / Jike APP new

🚅 Note

💛 Welcome back, Jike. This API is capable of fetching your current number of followers, highlighted personal updates, and liked count inside Jike APP. All three API queryKeys are all your user UUID in Jike APP. For instance: a valid Jike user UUID is the 4DDA0425-FB41-4188-89E4-952CA15E3C5E part in your Jike user profile URL https://m.okjike.com/users/4DDA0425-FB41-4188-89E4-952CA15E3C5E.

# Followers

即刻 APP 被关注数量 - SpencerWoo (opens new window)

GET /?source=jikeFollower&queryKey={QUERY}
  • Source shorthand: jikeFollower

# Highlighted personal updates

即刻 APP 精选数量 - SpencerWoo (opens new window)

GET /?source=jikeHighlights&queryKey={QUERY}
  • Source shorthand: jikeHighlights

# Liked count

即刻 APP 获得点赞数量 - SpencerWoo (opens new window)

GET /?source=jikeLiked&queryKey={QUERY}
  • Source shorthand: jikeLiked

# Bilibili

Bilibili CEO - 陈睿 (opens new window)

GET /?source=bilibili&queryKey={QUERY}
  • Source shorthand: bilibili
  • Query key: Bilibili UID - the UID after space.bilibili.com/ in your Bilibili user profile URL. For instance: a valid Bilibili UID is the 208259 part in the user profile URL https://space.bilibili.com/208259.

# 酷安

酷安 - fairyex (opens new window)

GET /?source=coolapk&queryKey={QUERY}
  • Source shorthand: coolapk
  • Query key: Coolapk UID - the UID after coolapk.com/u/ in your Coolapk user profile URL. For instance: a valid Coolapk UID is the 466253 part in the user profile URL http://www.coolapk.com/u/466253.

🥦 Note

You can get your Coolapk's uid by sharing your user profile page inside Coolapk's Android APP (I believe Coolapk didn't implement this feature on iOS yet.). Choose: "share » copy link", the link is what we need, i.e, your user profile URL.

# Instagram

Instagram - spencer_wooo (opens new window)

GET /?source=instagram&queryKey={QUERY}
  • Source shorthand: instagram
  • Query key: Instagram username - the username after instagram.com/ in your Instagram user profile URL. For instance: a valid Instagram username is the spencer_wooo part in the user profile URL https://www.instagram.com/spencer_wooo.

# Telegram

🪐 Note

This API is capable of getting both Telegram Channel subscribers and Telegram Group Chat members if you provide the valid chat_id for each service.

@realSpencerWoo - Telegram Channel (opens new window)

GET /?source=telegram&queryKey={QUERY}
  • Source shorthand: telegram
  • Query key: Telegram chat/channel chat_id - the chat_id after t.me/ in your Telegram chat/channel URL. For instance: a valid Telegram chat/channel chat_id is the realSpencerWoo part in the chat/channel URL https://t.me/realSpencerWoo.

# Twitter

Twitter - @realSpencerWoo (opens new window)

GET /?source=twitter&queryKey={QUERY}
  • Source shorthand: twitter
  • Query key: Twitter username - the username after twitter.com/ in your Twitter user profile URL. For instance: a valid Twitter username is the realSpencerWoo part in the user profile URL https://twitter.com/realSpencerWoo.

# 微博

微博 - @TenkeySeven (opens new window)

GET /?source=weibo&queryKey={QUERY}
  • Source shorthand: weibo
  • Query key: Weibo uid - the user ID after weibo.com/u/ in your Weibo user profile URL. For instance: a valid Weibo uid is the 2867502440 part in the user profile URL https://weibo.com/u/2867502440.

🚥 Note

For users who have custom uids for your Weibo account, you can find your uid using this method: 什么是微博 uid?怎么查看微博 uid? (opens new window)

# Developers

# GitHub

GitHub - @spencerwooo (opens new window)

GET /?source=github&queryKey={QUERY}
  • Source shorthand: github
  • Query key: GitHub user_login (username) - the username after github.com/ in your user profile URL. For instance: a valid user_login is the spencerwooo part in the user profile page URL https://github.com/spencerwooo.

# Music

# 网易云音乐

Netease Music - EdSheeran (opens new window)

GET /?source=neteaseMusic&queryKey={QUERY}
  • Source shorthand: neteaseMusic
  • Query key: Netease Music uid - the uid after /home?id= in your Netease Music user profile URL. For instance: a valid uid is the 416608258 part in the user profile URL https://music.163.com/#/user/home?id=416608258.

# Games

# Steam

The Substats' API for Steam accepts requests for your total number of games in your Steam library: steamGames, and the number of your friends: steamFriends. Both API's queryKey is your 16-digit unique steam ID.

🌎 Note

Your steam ID is not your Steam user name! You'll need to look up your steam ID here using either your Steam username or your profile URL first: Steam ID Finder (opens new window), and get the specific steamID64 to pass on to Substats for further requests. For instance: 76561198336249957.

# Owned Games on Steam

Games - Firebear.LLC (opens new window)

GET /?source=steamGames&queryKey={QUERY}
  • Source shorthand: steamGames

# Friends on Steam

Friends - Firebear.LLC (opens new window)

GET /?source=steamFriends&queryKey={QUERY}
  • Source shorthand: steamFriends

# Photography

# Unsplash

Unsplash - @yiukuenchu (opens new window)

GET /?source=unsplash&queryKey={QUERY}
  • Source shorthand: unsplash
  • Query key: Unsplash username - the username after unsplash.com/@ in your Unsplash user profile URL. For instance: a valid username is the yiukuenchu part in the user profile URL https://unsplash.com/@yiukuenchu.

# Websites

# Wikipedia (zh) new

Wikipedia (zh) - Scvoet (opens new window)

GET /?source=wikipediaZh&queryKey={QUERY}
  • Source shorthand: wikipediaZh
  • Query key: Wikipedia (zh) username - the username after zh.wikipedia.org/wiki/User: in your Wikipedia-zh user page URL. For instance: a valid username is the scvoet part in the user page URL https://zh.wikipedia.org/wiki/User:scvoet.

Tip: username ignores initial case.

# 爱发电

The Substats' API for 爱发电 accepts both requests for your fans in 爱发电: afdianFans, and the total income each month in 爱发电: afdianIncome. Both API's queryKey is your 爱发电's slug. For instance: a valid slug is the spencerwoo part in the user profile URL https://afdian.net/@spencerwoo.

# 发电人次

爱发电发电人次 - SpencerWoo (opens new window)

GET /?source=afdianFans&queryKey={QUERY}
  • Source shorthand: afdianFans

# 每月收入

⚡ Note

The 爱发电 Income API returns a String, not a Number, so we won't accept multiple chaining requests when requesting afdianIncome. Requests like: /?source=afdianFans|afdianIncome&queryKey=xx and /?source=afdianFans&queryKey=xx&source=afdianIncome&queryKey=xxx will be considered as invalid.

爱发电每月收入 - SpencerWoo (opens new window)

GET /?source=afdianIncome&queryKey={QUERY}
  • Source shorthand: afdianIncome

# Medium

Medium - SpencerWoo (opens new window)

GET /?source=medium&queryKey={QUERY}
  • Source shorthand: medium
  • Query key: Medium username - the username after medium.com/ in your Medium user profile URL. For instance: a valid username is the @SpencerWooo part in the user profile URL https://medium.com/@SpencerWooo.

# Reddit

🛹 Note

This API fetches the user's Reddit Karma: the scoreboard of Reddit. Further reading: What is Reddit karma, and how do people benefit from having more of it? (opens new window)

Reddit - u/Acidtwist (opens new window)

GET /?source=reddit&queryKey={QUERY}
  • Source shorthand: reddit
  • Query key: Reddit username - the username after reddit.com/user/ in your Reddit user profile URL. For instance: a valid username is the Acidtwist part in the user profile URL https://www.reddit.com/user/Acidtwist.

# 少数派

少数派 - SpencerWoo (opens new window)

GET /?source=sspai&queryKey={QUERY}
  • Source shorthand: sspai
  • Query key: 少数派 user_slug - the slug between sspai.com/ and posts in your 少数派 user profile URL. For instance: a valid user_slug is the spencerwoo part in the user profile URL https://sspai.com/u/spencerwoo/posts.

# 知乎

知乎 - 纽太普 (opens new window)

GET /?source=zhihu&queryKey={QUERY}
  • Source shorthand: zhihu
  • Query key: 知乎 url_token - the username after zhihu.com/people/ in your 知乎 user profile URL. For instance: a valid url_token is the neotype part in the user profile URL https://www.zhihu.com/people/neotype.
Last Updated: 11/23/2020, 1:53:29 AM