# API details
🍌 Detailed API reference
API docs by services: detailed API documentation for each service.
# API endpoint
https://api.spencerwoo.com/substats/
# RSS
# Feedly
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
.
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.
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
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
GET /?source=jikeFollower&queryKey={QUERY}
- Source shorthand:
jikeFollower
# Highlighted personal updates
GET /?source=jikeHighlights&queryKey={QUERY}
- Source shorthand:
jikeHighlights
# Liked count
GET /?source=jikeLiked&queryKey={QUERY}
- Source shorthand:
jikeLiked
# Bilibili
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 the208259
part in the user profile URLhttps://space.bilibili.com/208259
.
# 酷安
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 the466253
part in the user profile URLhttp://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.
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 thespencer_wooo
part in the user profile URLhttps://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.
GET /?source=telegram&queryKey={QUERY}
- Source shorthand:
telegram
- Query key: Telegram chat/channel
chat_id
- thechat_id
aftert.me/
in your Telegram chat/channel URL. For instance: a valid Telegram chat/channelchat_id
is therealSpencerWoo
part in the chat/channel URLhttps://t.me/realSpencerWoo
.
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 therealSpencerWoo
part in the user profile URLhttps://twitter.com/realSpencerWoo
.
# 微博
GET /?source=weibo&queryKey={QUERY}
- Source shorthand:
weibo
- Query key: Weibo
uid
- the user ID afterweibo.com/u/
in your Weibo user profile URL. For instance: a valid Weibouid
is the2867502440
part in the user profile URLhttps://weibo.com/u/2867502440
.
🚥 Note
For users who have custom uid
s for your Weibo account, you can find your uid
using this method: 什么是微博 uid?怎么查看微博 uid? (opens new window)
# Developers
# GitHub
GET /?source=github&queryKey={QUERY}
- Source shorthand:
github
- Query key: GitHub
user_login
(username) - the username aftergithub.com/
in your user profile URL. For instance: a validuser_login
is thespencerwooo
part in the user profile page URLhttps://github.com/spencerwooo
.
# Music
# 网易云音乐
GET /?source=neteaseMusic&queryKey={QUERY}
- Source shorthand:
neteaseMusic
- Query key: Netease Music
uid
- theuid
after/home?id=
in your Netease Music user profile URL. For instance: a validuid
is the416608258
part in the user profile URLhttps://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
GET /?source=steamGames&queryKey={QUERY}
- Source shorthand:
steamGames
# Friends on Steam
GET /?source=steamFriends&queryKey={QUERY}
- Source shorthand:
steamFriends
# Photography
# Unsplash
GET /?source=unsplash&queryKey={QUERY}
- Source shorthand:
unsplash
- Query key: Unsplash
username
- the username afterunsplash.com/@
in your Unsplash user profile URL. For instance: a validusername
is theyiukuenchu
part in the user profile URLhttps://unsplash.com/@yiukuenchu
.
# Websites
# Wikipedia (zh) new
GET /?source=wikipediaZh&queryKey={QUERY}
- Source shorthand:
wikipediaZh
- Query key: Wikipedia (zh)
username
- the username afterzh.wikipedia.org/wiki/User:
in your Wikipedia-zh user page URL. For instance: a validusername
is thescvoet
part in the user page URLhttps://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
.
# 发电人次
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.
GET /?source=afdianIncome&queryKey={QUERY}
- Source shorthand:
afdianIncome
# Medium
GET /?source=medium&queryKey={QUERY}
- Source shorthand:
medium
- Query key: Medium
username
- the username aftermedium.com/
in your Medium user profile URL. For instance: a validusername
is the@SpencerWooo
part in the user profile URLhttps://medium.com/@SpencerWooo
.
🛹 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)
GET /?source=reddit&queryKey={QUERY}
- Source shorthand:
reddit
- Query key: Reddit
username
- the username afterreddit.com/user/
in your Reddit user profile URL. For instance: a validusername
is theAcidtwist
part in the user profile URLhttps://www.reddit.com/user/Acidtwist
.
# 少数派
GET /?source=sspai&queryKey={QUERY}
- Source shorthand:
sspai
- Query key: 少数派
user_slug
- the slug betweensspai.com/
andposts
in your 少数派 user profile URL. For instance: a validuser_slug
is thespencerwoo
part in the user profile URLhttps://sspai.com/u/spencerwoo/posts
.
# 知乎
GET /?source=zhihu&queryKey={QUERY}
- Source shorthand:
zhihu
- Query key: 知乎
url_token
- the username afterzhihu.com/people/
in your 知乎 user profile URL. For instance: a validurl_token
is theneotype
part in the user profile URLhttps://www.zhihu.com/people/neotype
.