{"id":13457604,"url":"https://github.com/spencerwooo/substats","last_synced_at":"2025-05-16T18:03:45.644Z","repository":{"id":39603195,"uuid":"247327255","full_name":"spencerwooo/substats","owner":"spencerwooo","description":"( ｀д′) how many followers do i have? how many!","archived":false,"fork":false,"pushed_at":"2024-04-06T12:41:05.000Z","size":4769,"stargazers_count":795,"open_issues_count":14,"forks_count":55,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-04-13T14:04:09.387Z","etag":null,"topics":["api","api-service","badge","cloudflare","cloudflare-workers","rss","subscriber"],"latest_commit_sha":null,"homepage":"https://substats.swo.moe","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spencerwooo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"custom":["https://afdian.net/a/spencerwoo","https://spencerwoo.com/sponsor"]}},"created_at":"2020-03-14T18:01:08.000Z","updated_at":"2024-04-15T11:20:09.123Z","dependencies_parsed_at":"2024-01-03T05:03:59.436Z","dependency_job_id":"81474e23-3a0c-4ccb-a547-aab099960950","html_url":"https://github.com/spencerwooo/substats","commit_stats":{"total_commits":256,"total_committers":18,"mean_commits":"14.222222222222221","dds":0.453125,"last_synced_commit":"6663c7a4f9d3a7e437c1352df867fa1b12f1358a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spencerwooo%2Fsubstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spencerwooo%2Fsubstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spencerwooo%2Fsubstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spencerwooo%2Fsubstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spencerwooo","download_url":"https://codeload.github.com/spencerwooo/substats/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248597637,"owners_count":21130913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-service","badge","cloudflare","cloudflare-workers","rss","subscriber"],"created_at":"2024-07-31T09:00:31.359Z","updated_at":"2025-04-12T16:37:33.623Z","avatar_url":"https://github.com/spencerwooo.png","language":"TypeScript","funding_links":["https://afdian.net/a/spencerwoo","https://spencerwoo.com/sponsor","https://www.patreon.com/spencerwoo"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./assets/header.png\" alt=\"substats\" /\u003e\n  \u003ch3\u003e\u003ca href=\"https://api.swo.moe/stats\"\u003esubstats\u003c/a\u003e\u003c/h3\u003e\n  \u003cp\u003e\u003ca href=\"#get-started\"\u003eGet started\u003c/a\u003e · \u003ca href=\"#whats-new\"\u003eWhat's new?\u003c/a\u003e · \u003ca href=\"#sponsoring\"\u003eSponsoring\u003c/a\u003e\u003c/p\u003e\n  \u003cp\u003e( ｀д′) \u003cem\u003ehow many followers do i have? how many!\u003c/em\u003e\u003c/p\u003e\n\n  \u003cimg src=\"https://img.shields.io/badge/Cloudflare-F69652?style=flat\u0026logo=cloudflare\u0026logoColor=white\" alt=\"Cloudflare Workers\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Version-2.0*-F69652?style=flat\u0026labelColor=2B3137\" alt=\"Version 2.0/substats\" /\u003e\n  \u003ca href=\"https://github.com/spencerwooo/substats/actions?query=workflow%3ADeploy\"\u003e\u003cimg src=\"https://github.com/spencerwooo/substats/workflows/Deploy/badge.svg\" alt=\"Vercel\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## Get started\n\n\u003e sub · stats /səb ˈ stats/\n\u003e\n\u003e - a serverless api for getting the number of followers of you in your favourite services\n\n_*Version 2.0 is still in `beta`, not all features are ported from 1.0. Check below for details 👇_\n\n### Basic\n\n```\nhttps://api.swo.moe\n```\n\nYou request:\n\n```http\nGET /stats/:source/:key\n```\n\nI respond:\n\n```typescript\n{\n  source: string,\n  key: string,\n  failed: true | false,\n  count: number | string  // Most often it's a number when source !== 'common'\n}\n```\n\nYep, it's that simple now. ;)\n\n_*Note that `key` needs to be url encoded, remember this if you are requesting the `feedly`, `inoreader`, or `feedspub` routes._\n\n### Building badges 🎫\n\nOf course! And as a matter of fact, substats works quite well with [`shields.io`](https://shields.io)'s `/dynamic` route. All these badges below are dynamically generated with substat's data:\n\n[![GitHub](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fgithub%2Fspencerwooo\u0026query=count\u0026color=181717\u0026label=GitHub\u0026labelColor=282c34\u0026logo=github\u0026suffix=+follows\u0026cacheSeconds=3600)](https://github.com/spencerwooo)\n[![Telegram](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Ftelegram%2FrealSpencerWoo\u0026query=count\u0026color=2CA5E0\u0026label=Telegram\u0026labelColor=282c34\u0026logo=telegram\u0026suffix=+members\u0026cacheSeconds=3600)](https://t.me/realSpencerWoo)\n[![微博](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fweibo%2F6265807914\u0026query=count\u0026color=040000\u0026label=%E5%BE%AE%E5%8D%9A\u0026labelColor=e71f19\u0026logo=sina-weibo\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://weibo.com/6265807914)\n[![少数派](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fsspai%2Fspencerwoo\u0026query=count\u0026color=d71a1b\u0026label=%E5%B0%91%E6%95%B0%E6%B4%BE\u0026labelColor=282c34\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://sspai.com/u/spencerwoo)\n[![爱发电](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fafdian%2Fspencerwoo\u0026query=count\u0026color=282c34\u0026label=%E7%88%B1%E5%8F%91%E7%94%B5\u0026labelColor=946ce6\u0026suffix=+%E5%8F%91%E7%94%B5%E4%BA%BA%E6%AC%A1+%2F+%E6%9C%88\u0026cacheSeconds=3600)](https://afdian.net/@spencerwoo)\n[![即刻](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fjike%2F4DDA0425-FB41-4188-89E4-952CA15E3C5E\u0026query=count\u0026color=fbae00\u0026label=%E5%8D%B3%E5%88%BB\u0026labelColor=282c34\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://m.okjike.com/users/4DDA0425-FB41-4188-89E4-952CA15E3C5E)\n[![Steam](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fsteamgames%2F76561198336249957\u0026query=count\u0026color=0b1a37\u0026label=Steam\u0026labelColor=134375\u0026logo=steam\u0026suffix=+games\u0026cacheSeconds=3600)](https://steamcommunity.com/profiles/76561198336249957)\n[![知乎](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fzhihu%2Fbi-xiao-tian-99\u0026query=count\u0026color=282c34\u0026label=%E7%9F%A5%E4%B9%8E\u0026labelColor=0084ff\u0026logo=zhihu\u0026logoColor=ffffff\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://www.zhihu.com/people/bi-xiao-tian-99)\n[![哔哩哔哩](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fbilibili%2F401742377\u0026query=count\u0026color=282c34\u0026label=%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9\u0026labelColor=FE7398\u0026logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAD7ElEQVR4nO2dW9WrMBCFK6ESkFAJSKiESqgEHCABCZWAhEpAAhL2ecik5dDc%2FpXLBDLfWnlqy0xmJ5BMQnq5CIIgCIIgCIIgCIIgCEIBAHQAemYfrgCunD6wAKAHsEKxALgx+bCQD8%2FS9tmgVqeDr1lLigDgZvDhXso+K9TyTBQRwRJ8AHjntl0Flh5QRAQK%2FmKxPeayWx2OXpBNBKiHvi34b7T2MC4pAvW6twR%2FRwkRKPizBN8CgEcuESj4Lwm+BwBjahEk+H8EwJRKhOaCDzW8e1JLfkUUH1NgmR3XmHffHR1l+72BSs8d7w8U+JDAnZERQMcV+CtUi7dNqFqibB4J7vtrq7xKCuAasbTMXCL4T+5aVk6+2xHUrWdhruAR6HIJcOeu2UHI8zyAe2ytWfEdWz9PVvQ8YAmIQ5dDAB9LFsMVAv8oMO2zAGrC5WNIarRiAuKR9jYEd9pY08aa6uUzIHGRdkgKd8pY0yc1WjEBAqypDYoAG0QAZkQAZkQAZkQAZk4vANQenjsSzS3I%2FwcSbXU5jQBUkRtdf4Rar90v8kSv3+I3ffCCSpk8I%2Fw+lgDkdI%2Fv2rEp2CaiWm1AsDQLlDAD+dlFXLMeAaCSeLZdaSFE5VUQNot38cKuEeBgAsSuG0flVZBmEanbXfNQAsS0fgBYIn2fIu3%2FBBMHEyBmDXlFfA8IzeHb+Ems4WAChKykrVA9ZfsQTL57jXzRg4A5wC%2FA8N4ADiZAZwm2XjW75Qh2KOTfA0p4kygPw28OJcCVgn3nDnYo2EwEYRgGH0qAMyICMCMCMCMCMCMCMCMCMCMCfP3qwHDOQ4AAUekTk8FaBRihJnZdYbvtCGC7LvmkM63GjVDINPFrQgCq5ETXfmMzI90FXzPvfqt7x4rEu%2FZaEcCUxFvgz2zO+BUn6UkoaEEAsptiMSX5e8FoRYCN7cVgb4Vq7U%2FH50Pq4JNP7Qiw8UFnJwcK+tXy+Wj6PLEvPgHSHv5UgwA1IQIwwyFAyLJin9RoxYgAzAQIkPwNmf26busC+OIx5TDqo5nDT+F%2FSS%2F9CYzwb+No49zNy2evkYv0LywGGAXUvp6eSneycqOic0w20k7CNgKE7jJunSGLACTCxF27ylmQc98T5MQUH49swd+I0HPXslLKnT0N+wnkrTKi9JZL%2FL9i1SorMmdeQ4TQQ7OFMxIMzGD45w8nUL1im7efENZLJpgPSw0pfz0cdt4U3230Td%2FTvx2R6d2FrHhEWLkq5PELOMsRPHCPnAZGv1xJteL7jbJiaW3sB2nDvPC%2FosSYvjRQz4cJ6n7KO3rYQL7M+L6nVtfDVRAEQRAEQRAEQRAEIZ5%2FSAXmdfXaoQsAAAAASUVORK5CYII%3D\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://space.bilibili.com/401742377)\n[![掘金](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fjuejin%2F1838039172387262\u0026query=count\u0026color=282c34\u0026label=%E6%8E%98%E9%87%91\u0026labelColor=1e80ff\u0026logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAzNiAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy41ODc1IDYuNzcyNjhMMjEuODIzMiAzLjQwNTA1TDE3LjU4NzUgMC4wMDc0ODIzN0wxNy41ODM3IDBMMTMuMzU1NSAzLjM5NzU3TDE3LjU4MzcgNi43Njg5NEwxNy41ODc1IDYuNzcyNjhaTTE3LjU4NjMgMTcuMzk1NUgxNy41OUwyOC41MTYxIDguNzc0MzJMMjUuNTUyNiA2LjM5NDUzTDE3LjU5IDEyLjY4MDhIMTcuNTg2M0wxNy41ODI1IDEyLjY4NDVMOS42MTk5MyA2LjQwMjAxTDYuNjYwMTYgOC43ODE4MUwxNy41ODI1IDE3LjM5OTJMMTcuNTg2MyAxNy4zOTU1Wk0xNy41ODI4IDIzLjI4OTFMMTcuNTg2NSAyMy4yODU0TDMyLjIxMzMgMTEuNzQ1NkwzNS4xNzY4IDE0LjEyNTRMMjguNTIzOCAxOS4zNzUyTDE3LjU4NjUgMjhMMC4yODQzNzYgMTQuMzU3NEwwIDE0LjEyOTFMMi45NTk3NyAxMS43NTMxTDE3LjU4MjggMjMuMjg5MVoiIGZpbGw9IiMxRTgwRkYiLz4KPC9zdmc+Cg==\u0026logoColor=ffffff\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://juejin.cn/user/1838039172387262)\n[![语雀](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.swo.moe%2Fstats%2Fyuque%2F85213\u0026query=count\u0026color=2CA5E0\u0026label=%E8%AF%AD%E9%9B%80\u0026labelColor=36d07c\u0026logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTc2IiBoZWlnaHQ9IjE3MiIgdmlld0JveD0iMCAwIDE3NiAxNzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyYWRpYWxHcmFkaWVudCBjeD0iMzguMTc1JSIgY3k9Ijg2LjA3OCUiIGZ4PSIzOC4xNzUlIiBmeT0iODYuMDc4JSIgcj0iOTcuMDY3JSIgZ3JhZGllbnRUcmFuc2Zvcm09InNjYWxlKC44NTUzNyAxKSByb3RhdGUoLTQ2LjMwMSAuNDE0IC43ODUpIiBpZD0iYiI+PHN0b3Agc3RvcC1jb2xvcj0iIzE3OEY2NyIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiMzMUNDNzkiIHN0b3Atb3BhY2l0eT0iLjU1IiBvZmZzZXQ9IjU0LjY4NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjNTNFNjhEIiBzdG9wLW9wYWNpdHk9Ii44IiBvZmZzZXQ9IjEwMCUiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik03Ni41NjcgMGgxLjA2NWwuNTA5LjAwMy41MTkuMDAyLjUyOC4wMDQuNTM4LjAwNS41NDcuMDA2LjU1Ni4wMDcuMzc2LjAwNS4zOC4wMDYuNTc4LjAxLjU4Ny4wMTEuNTk2LjAxMi40MDIuMDEuNjEuMDE0LjYyLjAxNi42MjcuMDE4LjQyMy4wMTMuNjQyLjAyLjY1LjAyMS40MzkuMDE2LjQ0Mi4wMTYuNDQ1LjAxNy40NS4wMTcuNDUyLjAxOS40NTYuMDE5LjY5Mi4wMy40NjUuMDIxLjcwNC4wMzQuNDc0LjAyMy40NzcuMDI0LjcyMi4wMzguNDg2LjAyNi40OS4wMjcuNDkyLjAyOC40OTUuMDMuNS4wMy41MDIuMDMuNTA1LjAzMi41MDkuMDMzLjUxMi4wMzQuNTE1LjAzNWMxOC40OSAxLjI2MyAyMy4zODggMTQuNTggMjMuOTA5IDE2LjE3M2wuMDI3LjA4NS4wMjEuMDcgOC4wMjcuNDM4YS43NzYuNzc2IDAgMCAxIC4zMzkgMS40NzNjLTguMjQgNC40NTktMTAuNzU3IDEzLjUxOC05LjI3NyAxOS40Mi40NzcgMS45MDIgMS4yMTggMy41MzcgMi4wNDMgNS4yNjVsLjUyMSAxLjA4N2MxLjkxIDMuOTk1IDQuMDU0IDguODMxIDQuNDA0IDE4LjU2NS43ODQgMjEuNzktMTguMzcgNDEuMzczLTQxLjAzMiA0MS4zNzNoLS43NzhsLS44NzcuMDAzLS42NC4wMDMtMS4wNDQuMDA2LS43NTIuMDA0LS43OTYuMDA2LTEuMjc3LjAxLTEuMzc3LjAxMS0xLjQ3OC4wMTQtMi4xMjUuMDItMS43MS4wMTgtMy4wNzMuMDMzLTMuMzUxLjAzOC0zLjYyOS4wNDMtMi4zMS4wMjgtMy4yMzcuMDQtNC4yOTUuMDU1LTQuNTczLjA2LTMuODU4LjA1MS02LjEyLjA4NC00LjMwNC4wNTktNy45NTcuMTExLTguNTAyLjEyMS03LjcyLjExMi00LjAxMS4wNTggNDguNDY0LTU1LjExMi40NC0uNS40MzgtLjQ5OS40MzYtLjQ5NSAyLjE2MS0yLjQ0OS40MjctLjQ4NC40MjUtLjQ4My40MjMtLjQ4Mi4yMS0uMjQuNDItLjQ4LjIwOS0uMjQuNDE1LS40NzkuNDE0LS40NzdjNC44MDktNS41NyA5LjA5LTExLjAwOCAxMi4xMzEtMTcuMjQ0IDMuMzc2LTkuNTM2LS4wNi0xNi42NTItMy41Ny0yMC45NjMtLjI3LS4zMzMtLjU0MS0uNjUtLjgxLS45NDktMS4xOTYtMS41My0uMzgyLTQuMDgyIDEuODk2LTQuMDgyLjE4NSAwIC4zNzUtLjAwMi41NjgtLjAwNmwuNDQtLjAwOS4zMDItLjAwNS40Mi0uMDA1LjQzMS0uMDA0LjI5My0uMDAzLjc1Mi0uMDA1TDc2LjA5IDAgNzYuNTY3IDB6IiBpZD0iYSIvPjxsaW5lYXJHcmFkaWVudCB4MT0iODEuNDY4JSIgeTE9IjU3LjE4OCUiIHgyPSItOC4yMzYlIiB5Mj0iNzkuMTI0JSIgaWQ9ImQiPjxzdG9wIHN0b3AtY29sb3I9IiNGRkYiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNENkYwNTYiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTU2LjE5NiA1MC41ODdDMzUuMjIgNzQuMTkyIDEwLjI1NiAxMDIuOTEzLjc4IDExMy43MDFjLTEuODI1IDIuMDc5LS4wNTYgNC4wNDEgMS4zNTggNC4yODQgNzAuNyAxMi4xNTUgOTMuMTQ3LTIxLjE2MiA5OC4xNDctMzYuMzkyIDYuODQxLTIwLjgzOC0yLjgyNS0zMS4wMDYtOC4yOTUtMzQuMzIyLTE4LjU1LTExLjI0My0zMi4zMTQtLjU5OS0zNS43OTMgMy4zMTZ6IiBpZD0iYyIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3LjkzMyAzMC4xMzUpIj48dXNlIGZpbGw9IiMzMUNDNzkiIHhsaW5rOmhyZWY9IiNhIi8+PHVzZSBmaWxsLW9wYWNpdHk9Ii42IiBmaWxsPSJ1cmwoI2IpIiB4bGluazpocmVmPSIjYSIvPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNy45MzMgMzAuMTM1KSI+PHVzZSBmaWxsPSIjOTNFNjVDIiB4bGluazpocmVmPSIjYyIvPjx1c2UgZmlsbC1vcGFjaXR5PSIuNzUiIGZpbGw9InVybCgjZCkiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTpvdmVybGF5IiB4bGluazpocmVmPSIjYyIvPjwvZz48L2c+PC9zdmc+\u0026suffix=+%E5%85%B3%E6%B3%A8\u0026cacheSeconds=3600)](https://www.yuque.com/lyndon)\n\nYou can easily create your own badge with our badge builder at [substats.swo.moe](https://substats.swo.moe/).\n\n![Badge builder screenshot](assets/badge-builder-screenshot.png)\n\n### Advanced - the `/common` route 🍀\n\nWhat if the source you are trying to use is not supported yet, but it's just a simple `GET` request? In this case, you can use the route:\n\n```http\nGET /stats/common?endpoint=\u003curl\u003e\u0026datapath=\u003cpath\u003e\n```\n\nSuch as:\n\n```http\nGET /stats/common/?endpoint=https://api.genshin.dev/domains/cecilia-garden\u0026datapath=rewards.0.details.2.mora\n```\n\nIn this case, the `endpoint` is an API url:\n\n```\nhttps://api.genshin.dev/domains/cecilia-garden\n```\n\nThe response this URL returns looks like:\n\n```jsonc\n{\n  \"name\": \"Cecilia Garden\",\n  \"type\": \"Forgery\",\n  // ...\n  \"rewards\": [\n    {\n      \"details\": [\n        { /* ... */ },\n        { /* ... */ },\n        {\n          \"mora\": 1125,\n        },\n      ]\n    }\n  ]\n}\n```\n\nHence, we provide the `datapath` as `rewards.0.details.2.mora`. (I specifically chose this data as it contains an array to demonstrate how to reference the value `mora` inside the array by index.)\n\nResponse from the `endpoint` provided by you is parsed with [object-path](https://github.com/mariocasciaro/object-path), and the method for constructing a reference `datapath` to your value in the response is the same.\n\nTry our `/common` route API URL builder here: [substats.swo.moe/common](https://substats.swo.moe/common).\n\n![Common route screenshot](assets/common-route-screenshot.png)\n\n## Supported sources\n\n- afdian\n- bilibili\n- coolapk\n- feedly\n- feedspub\n- github\n- inoreader\n- instagram\n- jike\n- mastodon\n- medium\n- neteasemusic\n- reddit\n- sspai\n- steamgames\n- steamfriends\n- telegram\n- twitter\n- unsplash\n- weibo\n- wikipediazh\n- zhihu\n- juejin\n- yuque\n\n\u003ca href=\"https://api.swo.moe/stats/afdian/afdian\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_afdian.png\" width=\"auto\" height=\"64px\" alt=\"logo_afdian\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/bilibili/401742377\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_bilibili.png\" width=\"auto\" height=\"64px\" alt=\"logo_bilibili\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/coolapk/466253\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_coolapk.png\" width=\"auto\" height=\"64px\" alt=\"logo_coolapk\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/feedly/https%3A%2F%2Fnnw.ranchero.com%2Ffeed.xml\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_feedly.png\" width=\"auto\" height=\"64px\" alt=\"logo_feedly\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/feedspub/https%3A%2F%2Fnnw.ranchero.com%2Ffeed.xml\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_feedspub.png\" width=\"auto\" height=\"64px\" alt=\"logo_feedspub\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/github/spencerwooo\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_github.png\" width=\"auto\" height=\"64px\" alt=\"logo_github\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/inoreader/https%3A%2F%2Fnnw.ranchero.com%2Ffeed.xml\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_inoreader.png\" width=\"auto\" height=\"64px\" alt=\"logo_inoreader\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/instagram/9gag\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_ins.png\" width=\"auto\" height=\"64px\" alt=\"logo_ins\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/jike/2204A477-38C8-4D9D-9705-9C9B990BE042\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_jike.png\" width=\"auto\" height=\"64px\" alt=\"logo_jike\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/mastodon/oldpanda@mastodon.social\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_mastodon.png\" width=\"auto\" height=\"64px\" alt=\"logo_mastodon\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/medium/SpencerWooo\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_medium.png\" width=\"auto\" height=\"64px\" alt=\"logo_medium\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/neteasemusic/416608258\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_neteasemusic.png\" width=\"auto\" height=\"64px\" alt=\"logo_neteasemusic\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/reddit/jushoro\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_reddit.png\" width=\"auto\" height=\"64px\" alt=\"logo_reddit\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/sspai/spencerwoo\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_sspai.png\" width=\"auto\" height=\"64px\" alt=\"logo_sspai\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/steam/401742377\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_steam.png\" width=\"auto\" height=\"64px\" alt=\"logo_steam\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/telegram/realSpencerWoo\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_tg.png\" width=\"auto\" height=\"64px\" alt=\"logo_tg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/twitter/GenshinImpact\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_twitter.png\" width=\"auto\" height=\"64px\" alt=\"logo_twitter\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/unsplash/adamhoang\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_unsplash.png\" width=\"auto\" height=\"64px\" alt=\"logo_unsplash\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/weibo/5648729445\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_weibo.png\" width=\"auto\" height=\"64px\" alt=\"logo_weibo\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/wikipediazh/ChenSimon\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_wikipedia.png\" width=\"auto\" height=\"64px\" alt=\"logo_wikipedia\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/zhihu/bi-xiao-tian-99\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_zhihu.png\" width=\"auto\" height=\"64px\" alt=\"logo_zhihu\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/juejin/1838039172387262\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_juejin.png\" width=\"auto\" height=\"64px\" alt=\"logo_juejin\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://api.swo.moe/stats/yuque/lyndon\"\u003e\u003cimg src=\"docs/public/assets/sources/logo_yuque.png\" width=\"auto\" height=\"64px\" alt=\"logo_yuque\" /\u003e\u003c/a\u003e\n\n## What's new?\n\nYes, `substats` is now version `v2.0-beta`! Most of the updates are under-the-hood apart from API formats.\n\n- [x] Refactored in TypeScript.\n- [x] Updated to CloudFlare's module workers.\n- [x] Worker is built with `esbuild` instead of `webpack`, extra fast!\n- [x] Support for Newsblur has been deprecated ~~(seems nobody uses it)~~.\n- [x] KV storages are now supported, some routes including `instagram` depends on this for storing cookies (wip).\n- [x] Caching is ported to module workers in 2.0 and supported as always.\n- [x] New documentation and query builder.\n\nIf you are looking for the multiple source and query functions in 2.0 - it's still under refactor, as `itty-router` does not parse multiple query parameters, blocking this feature here. You can still use the 1.0 route while we wait. [README and documentation for v1.0 (deprecated)](https://github.com/spencerwooo/substats/blob/1becc576f09b09cfa1389312d081f02a25ed0735/README.md).\n\n## Contributing\n\nThis is a monorepo managed by `pnpm`. Directory `./worker` holds the Cloudflare Worker module, and `./docs` is a React site for documentation (powered by [Vite](https://vitejs.dev/) and [Chakra UI](https://chakra-ui.com/)). Check the README.md for both packages for details.\n\n## Sponsoring\n\nOpen-source is hard! If you happen to like this project and want me to keep going, please consider sponsoring me or providing a single donation! Thanks for all the love and support!\n\n[🧸 Please donate - 微信/支付宝](https://ovi.swo.moe/sponsor) · [Patreon](https://www.patreon.com/spencerwoo) · [爱发电](https://afdian.net/@spencerwoo)\n\n## License\n\n[MIT](LICENSE)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/footer.png\" /\u003e\n  \u003cem\u003emade with ❤️ by \u003ca href=\"https://spencerwoo.com\"\u003espencer woo\u003c/a\u003e\u003c/em\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspencerwooo%2Fsubstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspencerwooo%2Fsubstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspencerwooo%2Fsubstats/lists"}