summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/federation
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints/federation')
-rw-r--r--packages/backend/src/server/api/endpoints/federation/stats.ts86
1 files changed, 86 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/stats.ts b/packages/backend/src/server/api/endpoints/federation/stats.ts
index e3ffea7b7e..6548142d41 100644
--- a/packages/backend/src/server/api/endpoints/federation/stats.ts
+++ b/packages/backend/src/server/api/endpoints/federation/stats.ts
@@ -18,6 +18,92 @@ export const meta = {
allowGet: true,
cacheSec: 60 * 60,
+
+ res: {
+ type: 'object',
+ optional: false,
+ nullable: false,
+ properties: {
+ topSubInstances: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ properties: {
+ id: { type: 'string' },
+ firstRetrievedAt: { type: 'string' },
+ host: { type: 'string' },
+ usersCount: { type: 'number' },
+ notesCount: { type: 'number' },
+ followingCount: { type: 'number' },
+ followersCount: { type: 'number' },
+ isNotResponding: { type: 'boolean' },
+ isSuspended: { type: 'boolean' },
+ isBlocked: { type: 'boolean' },
+ softwareName: { type: 'string' },
+ softwareVersion: { type: 'string' },
+ openRegistrations: { type: 'boolean' },
+ name: { type: 'string' },
+ description: { type: 'string' },
+ maintainerName: { type: 'string' },
+ maintainerEmail: { type: 'string' },
+ isSilenced: { type: 'boolean' },
+ iconUrl: { type: 'string' },
+ faviconUrl: { type: 'string' },
+ themeColor: { type: 'string' },
+ infoUpdatedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ latestRequestReceivedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ }
+ },
+ },
+ otherFollowersCount: { type: 'number' },
+ topPubInstances: {
+ type: 'array',
+ optional: false,
+ nullable: false,
+ items: {
+ properties: {
+ id: { type: 'string' },
+ firstRetrievedAt: { type: 'string' },
+ host: { type: 'string' },
+ usersCount: { type: 'number' },
+ notesCount: { type: 'number' },
+ followingCount: { type: 'number' },
+ followersCount: { type: 'number' },
+ isNotResponding: { type: 'boolean' },
+ isSuspended: { type: 'boolean' },
+ isBlocked: { type: 'boolean' },
+ softwareName: { type: 'string' },
+ softwareVersion: { type: 'string' },
+ openRegistrations: { type: 'boolean' },
+ name: { type: 'string' },
+ description: { type: 'string' },
+ maintainerName: { type: 'string' },
+ maintainerEmail: { type: 'string' },
+ isSilenced: { type: 'boolean' },
+ iconUrl: { type: 'string' },
+ faviconUrl: { type: 'string' },
+ themeColor: { type: 'string' },
+ infoUpdatedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ latestRequestReceivedAt: {
+ type: 'string',
+ nullable: true,
+ },
+ }
+ },
+ },
+ otherFollowingCount: { type: 'number' },
+ },
+ }
} as const;
export const paramDef = {