---
title: "Nexus OS tRPC Procedure Reference"
description: "Agent-facing reference for Nexus OS tRPC namespaces, procedure kinds, access levels, inputs, and outputs."
resource: https://www.aiagents.nexus/api-reference/trpc.md
generated: { by: "process:nexus-agent-assets", at: 2026-09-07T15:23:38-07:00 }
status: stable
---

# Nexus OS tRPC Procedure Reference

The typed RPC endpoint is **https://api.aiagents.nexus/api/trpc**. It uses tRPC 11 request encoding and SuperJSON serialization. Agents should use a compatible tRPC client rather than treating these procedures as conventional REST operations. Where authentication is required, send a Clerk session token as an HTTP Bearer token.

The machine-readable companion is [trpc-procedures.json](https://www.aiagents.nexus/api-reference/trpc-procedures.json). The conventional REST surface is described by [OpenAPI](https://api.aiagents.nexus/openapi.json).

| Procedure | Kind | Access | Purpose |
|---|---|---|---|
| `adminBlog.delete` | mutation | admin | Delete a blog post. |
| `adminBlog.getById` | query | admin | Return a post by numeric identifier. |
| `adminBlog.getPreview` | query | public-token | Resolve a short-lived preview draft token. |
| `adminBlog.list` | query | admin | List posts for administration. |
| `adminBlog.previewToken` | mutation | admin | Create a short-lived preview token. |
| `adminBlog.upsert` | mutation | admin | Create or update a Markdown blog post. |
| `adminShowcase.approve` | mutation | admin | Approve a showcase project. |
| `adminShowcase.delete` | mutation | admin | Delete a showcase project. |
| `adminShowcase.feature` | mutation | admin | Set featured status. |
| `adminShowcase.list` | query | admin | List showcase submissions for moderation. |
| `adminShowcase.pending` | query | admin | List pending showcase submissions. |
| `adminShowcase.reject` | mutation | admin | Reject a showcase project. |
| `adminShowcase.update` | mutation | admin | Update a showcase project. |
| `auth.logout` | mutation | public | Return an application logout acknowledgement; client sign-out remains Clerk-managed. |
| `auth.me` | query | public | Return the current Clerk-backed application user. |
| `blog.featured` | query | public | Return the featured published post. |
| `blog.getBySlug` | query | public | Return a published post by slug. |
| `blog.list` | query | public | List up to 50 published posts. |
| `showcase.categoryCounts` | query | public | Return approved project counts by category. |
| `showcase.featured` | query | public | List featured showcase projects. |
| `showcase.getBySlug` | query | public | Return an approved or featured project. |
| `showcase.hasUpvoted` | query | public | Check whether the requester origin has upvoted a project. |
| `showcase.list` | query | public | List approved showcase projects. |
| `showcase.related` | query | public | Return related approved projects. |
| `showcase.upvote` | mutation | public-origin-scoped | Toggle a network-origin-scoped upvote. |
| `showcaseSubmit.submit` | mutation | public | Submit a project for moderation. |
| `system.health` | query | public | Typed application health probe. |
| `system.notifyOwner` | mutation | admin | Send an operational notification to the project owner. |

## Access levels

| Access | Meaning |
|---|---|
| public | No authenticated user is required. |
| public-token | A short-lived capability token is required in the procedure input. |
| public-origin-scoped | Public mutation whose persistence key derives from the requester network address. |
| admin | A valid Clerk session mapped to an application administrator is required. |

## Request examples

Using @trpc/client with superjson (queries do not mutate state):
```ts
import { createTRPCUntypedClient, httpBatchLink } from '@trpc/client';
import superjson from 'superjson';
const client = createTRPCUntypedClient({ links: [httpBatchLink({ url: 'https://api.aiagents.nexus/api/trpc', transformer: superjson })] });
const health = await client.query('system.health', { timestamp: Date.now() });
const posts = await client.query('blog.list');
```

JSON Schemas describe the logical payload; Date fields carry x-superjson-type: Date. Pass JavaScript Date values through the SuperJSON client. Plain JSON timestamps alone do not satisfy a Zod date input. tRPC returns its standard result/error envelope; schemas describe the decoded result data.

Mutation calls use client.mutation(name, input). They may publish, delete, or notify; authenticate and obtain the appropriate application authority before invoking them. HTTP error codes follow tRPC conventions. Never place a token in a URL.

## adminBlog.delete
Delete a blog post.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "number"
    },
    "title": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## adminBlog.getById
Return a post by numeric identifier.
Access: admin. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "number"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "excerpt": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "explainer",
        "tutorial",
        "opinion",
        "case-study",
        "announcement",
        "release"
      ]
    },
    "tags": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "readingTimeMinutes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "featuredImageUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuredImageAlt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ogImageOverride": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featured": {
      "type": "boolean"
    },
    "published": {
      "type": "boolean"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "scheduledPublishAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        {
          "type": "null"
        }
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    }
  },
  "required": [
    "id",
    "slug",
    "title",
    "excerpt",
    "content",
    "author",
    "category",
    "tags",
    "readingTimeMinutes",
    "featuredImageUrl",
    "featuredImageAlt",
    "ogImageOverride",
    "featured",
    "published",
    "publishedAt",
    "scheduledPublishAt",
    "createdAt",
    "updatedAt"
  ],
  "additionalProperties": false
}
```

## adminBlog.getPreview
Resolve a short-lived preview draft token.
Access: public-token. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "required": [
    "token"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "excerpt": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "explainer",
        "tutorial",
        "opinion",
        "case-study",
        "announcement",
        "release"
      ]
    },
    "tags": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "readingTimeMinutes": {
      "type": "number"
    },
    "featuredImageUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuredImageAlt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "title",
    "excerpt",
    "content"
  ],
  "additionalProperties": false
}
```

## adminBlog.list
List posts for administration.
Access: admin. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "limit": {
      "default": 20,
      "type": "number",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "type": "number",
      "minimum": 0
    }
  }
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "explainer",
              "tutorial",
              "opinion",
              "case-study",
              "announcement",
              "release"
            ]
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "readingTimeMinutes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "featuredImageUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "featuredImageAlt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ogImageOverride": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "featured": {
            "type": "boolean"
          },
          "published": {
            "type": "boolean"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "scheduledPublishAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "x-superjson-type": "Date"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          }
        },
        "required": [
          "id",
          "slug",
          "title",
          "excerpt",
          "content",
          "author",
          "category",
          "tags",
          "readingTimeMinutes",
          "featuredImageUrl",
          "featuredImageAlt",
          "ogImageOverride",
          "featured",
          "published",
          "publishedAt",
          "scheduledPublishAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "number"
    }
  },
  "required": [
    "posts",
    "total"
  ],
  "additionalProperties": false
}
```

## adminBlog.previewToken
Create a short-lived preview token.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "excerpt": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "explainer",
        "tutorial",
        "opinion",
        "case-study",
        "announcement",
        "release"
      ]
    },
    "tags": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "readingTimeMinutes": {
      "type": "number"
    },
    "featuredImageUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuredImageAlt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "title",
    "excerpt",
    "content"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "required": [
    "token"
  ],
  "additionalProperties": false
}
```

## adminBlog.upsert
Create or update a Markdown blog post.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "number"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "excerpt": {
      "type": "string",
      "minLength": 1
    },
    "content": {
      "type": "string"
    },
    "author": {
      "default": "Leonidas Esquire Williamson",
      "type": "string"
    },
    "category": {
      "default": "explainer",
      "type": "string",
      "enum": [
        "explainer",
        "tutorial",
        "opinion",
        "case-study",
        "announcement",
        "release"
      ]
    },
    "tags": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "readingTimeMinutes": {
      "type": "number"
    },
    "featuredImageUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuredImageAlt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ogImageOverride": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featured": {
      "default": false,
      "type": "boolean"
    },
    "published": {
      "default": false,
      "type": "boolean"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "scheduledPublishAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "title",
    "excerpt",
    "content"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "number"
    },
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "slug"
  ],
  "additionalProperties": false
}
```

## adminShowcase.approve
Approve a showcase project.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## adminShowcase.delete
Delete a showcase project.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## adminShowcase.feature
Set featured status.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "featured": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "featured"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## adminShowcase.list
List showcase submissions for moderation.
Access: admin. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "search": {
      "type": "string"
    },
    "limit": {
      "default": 20,
      "type": "number",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "type": "number",
      "minimum": 0
    }
  }
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "tagline": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "screenshotUrl": {
            "type": "string"
          },
          "screenshots": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "demoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "repoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "websiteUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "videoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorName": {
            "type": "string"
          },
          "authorHandle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorEmail": {
            "type": "string"
          },
          "authorAvatar": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorTwitter": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorGithub": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "featuresUsed": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "ai-agents",
              "automation",
              "devops",
              "research",
              "trading",
              "other"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "featured",
              "rejected"
            ]
          },
          "featured": {
            "type": "boolean"
          },
          "featuredOrder": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "githubStars": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "upvotes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "views": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "submittedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "approvedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "x-superjson-type": "Date"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          }
        },
        "required": [
          "id",
          "slug",
          "title",
          "tagline",
          "description",
          "screenshotUrl",
          "screenshots",
          "demoUrl",
          "repoUrl",
          "websiteUrl",
          "videoUrl",
          "authorName",
          "authorHandle",
          "authorEmail",
          "authorAvatar",
          "authorTwitter",
          "authorGithub",
          "featuresUsed",
          "category",
          "status",
          "featured",
          "featuredOrder",
          "githubStars",
          "upvotes",
          "views",
          "submittedAt",
          "approvedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "number"
    }
  },
  "required": [
    "projects",
    "total"
  ],
  "additionalProperties": false
}
```

## adminShowcase.pending
List pending showcase submissions.
Access: admin. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "slug": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "screenshotUrl": {
        "type": "string"
      },
      "screenshots": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "demoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "repoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "websiteUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "videoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorName": {
        "type": "string"
      },
      "authorHandle": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorEmail": {
        "type": "string"
      },
      "authorAvatar": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorTwitter": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorGithub": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "featuresUsed": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "category": {
        "type": "string",
        "enum": [
          "ai-agents",
          "automation",
          "devops",
          "research",
          "trading",
          "other"
        ]
      },
      "status": {
        "type": "string",
        "enum": [
          "pending",
          "approved",
          "featured",
          "rejected"
        ]
      },
      "featured": {
        "type": "boolean"
      },
      "featuredOrder": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "githubStars": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "upvotes": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "views": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "submittedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "approvedAt": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          {
            "type": "null"
          }
        ]
      },
      "createdAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "updatedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      }
    },
    "required": [
      "id",
      "slug",
      "title",
      "tagline",
      "description",
      "screenshotUrl",
      "screenshots",
      "demoUrl",
      "repoUrl",
      "websiteUrl",
      "videoUrl",
      "authorName",
      "authorHandle",
      "authorEmail",
      "authorAvatar",
      "authorTwitter",
      "authorGithub",
      "featuresUsed",
      "category",
      "status",
      "featured",
      "featuredOrder",
      "githubStars",
      "upvotes",
      "views",
      "submittedAt",
      "approvedAt",
      "createdAt",
      "updatedAt"
    ],
    "additionalProperties": false
  }
}
```

## adminShowcase.reject
Reject a showcase project.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## adminShowcase.update
Update a showcase project.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "tagline": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "screenshotUrl": {
      "type": "string"
    },
    "screenshots": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "demoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "repoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "websiteUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "videoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "authorName": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "ai-agents",
        "automation",
        "devops",
        "research",
        "trading",
        "other"
      ]
    },
    "featuresUsed": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "featured": {
      "type": "boolean"
    },
    "featuredOrder": {
      "type": "number"
    }
  },
  "required": [
    "id"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## auth.logout
Return an application logout acknowledgement; client sign-out remains Clerk-managed.
Access: public. Kind: mutation. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## auth.me
Return the current Clerk-backed application user.
Access: public. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "openId": {
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "email": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "loginMethod": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "role": {
          "type": "string",
          "enum": [
            "user",
            "admin"
          ]
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        "lastSignedIn": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        }
      },
      "required": [
        "id",
        "openId",
        "name",
        "email",
        "loginMethod",
        "role",
        "createdAt",
        "updatedAt",
        "lastSignedIn"
      ],
      "additionalProperties": false
    },
    {
      "type": "null"
    }
  ]
}
```

## blog.featured
Return the featured published post.
Access: public. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "slug": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "excerpt": {
          "type": "string"
        },
        "content": {
          "type": "string"
        },
        "author": {
          "type": "string"
        },
        "category": {
          "type": "string",
          "enum": [
            "explainer",
            "tutorial",
            "opinion",
            "case-study",
            "announcement",
            "release"
          ]
        },
        "tags": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "readingTimeMinutes": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "featuredImageUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "featuredImageAlt": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "ogImageOverride": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "featured": {
          "type": "boolean"
        },
        "published": {
          "type": "boolean"
        },
        "publishedAt": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        "scheduledPublishAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "x-superjson-type": "Date"
            },
            {
              "type": "null"
            }
          ]
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        }
      },
      "required": [
        "id",
        "slug",
        "title",
        "excerpt",
        "content",
        "author",
        "category",
        "tags",
        "readingTimeMinutes",
        "featuredImageUrl",
        "featuredImageAlt",
        "ogImageOverride",
        "featured",
        "published",
        "publishedAt",
        "scheduledPublishAt",
        "createdAt",
        "updatedAt"
      ],
      "additionalProperties": false
    },
    {
      "type": "null"
    }
  ]
}
```

## blog.getBySlug
Return a published post by slug.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "excerpt": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "enum": [
        "explainer",
        "tutorial",
        "opinion",
        "case-study",
        "announcement",
        "release"
      ]
    },
    "tags": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "readingTimeMinutes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "featuredImageUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuredImageAlt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ogImageOverride": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featured": {
      "type": "boolean"
    },
    "published": {
      "type": "boolean"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "scheduledPublishAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        {
          "type": "null"
        }
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    }
  },
  "required": [
    "id",
    "slug",
    "title",
    "excerpt",
    "content",
    "author",
    "category",
    "tags",
    "readingTimeMinutes",
    "featuredImageUrl",
    "featuredImageAlt",
    "ogImageOverride",
    "featured",
    "published",
    "publishedAt",
    "scheduledPublishAt",
    "createdAt",
    "updatedAt"
  ],
  "additionalProperties": false
}
```

## blog.list
List up to 50 published posts.
Access: public. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "slug": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "excerpt": {
        "type": "string"
      },
      "content": {
        "type": "string"
      },
      "author": {
        "type": "string"
      },
      "category": {
        "type": "string",
        "enum": [
          "explainer",
          "tutorial",
          "opinion",
          "case-study",
          "announcement",
          "release"
        ]
      },
      "tags": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "readingTimeMinutes": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "featuredImageUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "featuredImageAlt": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "ogImageOverride": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "featured": {
        "type": "boolean"
      },
      "published": {
        "type": "boolean"
      },
      "publishedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "scheduledPublishAt": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          {
            "type": "null"
          }
        ]
      },
      "createdAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "updatedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      }
    },
    "required": [
      "id",
      "slug",
      "title",
      "excerpt",
      "content",
      "author",
      "category",
      "tags",
      "readingTimeMinutes",
      "featuredImageUrl",
      "featuredImageAlt",
      "ogImageOverride",
      "featured",
      "published",
      "publishedAt",
      "scheduledPublishAt",
      "createdAt",
      "updatedAt"
    ],
    "additionalProperties": false
  }
}
```

## showcase.categoryCounts
Return approved project counts by category.
Access: public. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "category": {
        "type": "string"
      },
      "count": {
        "type": "number"
      }
    },
    "required": [
      "category",
      "count"
    ],
    "additionalProperties": false
  }
}
```

## showcase.featured
List featured showcase projects.
Access: public. Kind: query. Input required: false.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "null"
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "slug": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "screenshotUrl": {
        "type": "string"
      },
      "screenshots": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "demoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "repoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "websiteUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "videoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorName": {
        "type": "string"
      },
      "authorHandle": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorEmail": {
        "type": "string"
      },
      "authorAvatar": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorTwitter": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorGithub": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "featuresUsed": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "category": {
        "type": "string",
        "enum": [
          "ai-agents",
          "automation",
          "devops",
          "research",
          "trading",
          "other"
        ]
      },
      "status": {
        "type": "string",
        "enum": [
          "pending",
          "approved",
          "featured",
          "rejected"
        ]
      },
      "featured": {
        "type": "boolean"
      },
      "featuredOrder": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "githubStars": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "upvotes": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "views": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "submittedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "approvedAt": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          {
            "type": "null"
          }
        ]
      },
      "createdAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "updatedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      }
    },
    "required": [
      "id",
      "slug",
      "title",
      "tagline",
      "description",
      "screenshotUrl",
      "screenshots",
      "demoUrl",
      "repoUrl",
      "websiteUrl",
      "videoUrl",
      "authorName",
      "authorHandle",
      "authorEmail",
      "authorAvatar",
      "authorTwitter",
      "authorGithub",
      "featuresUsed",
      "category",
      "status",
      "featured",
      "featuredOrder",
      "githubStars",
      "upvotes",
      "views",
      "submittedAt",
      "approvedAt",
      "createdAt",
      "updatedAt"
    ],
    "additionalProperties": false
  }
}
```

## showcase.getBySlug
Return an approved or featured project.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "tagline": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "screenshotUrl": {
      "type": "string"
    },
    "screenshots": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "demoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "repoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "websiteUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "videoUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "authorName": {
      "type": "string"
    },
    "authorHandle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "authorEmail": {
      "type": "string"
    },
    "authorAvatar": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "authorTwitter": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "authorGithub": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "featuresUsed": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "string"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "category": {
      "type": "string",
      "enum": [
        "ai-agents",
        "automation",
        "devops",
        "research",
        "trading",
        "other"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "approved",
        "featured",
        "rejected"
      ]
    },
    "featured": {
      "type": "boolean"
    },
    "featuredOrder": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "githubStars": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "upvotes": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "views": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "submittedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "approvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "x-superjson-type": "Date"
        },
        {
          "type": "null"
        }
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "x-superjson-type": "Date"
    }
  },
  "required": [
    "id",
    "slug",
    "title",
    "tagline",
    "description",
    "screenshotUrl",
    "screenshots",
    "demoUrl",
    "repoUrl",
    "websiteUrl",
    "videoUrl",
    "authorName",
    "authorHandle",
    "authorEmail",
    "authorAvatar",
    "authorTwitter",
    "authorGithub",
    "featuresUsed",
    "category",
    "status",
    "featured",
    "featuredOrder",
    "githubStars",
    "upvotes",
    "views",
    "submittedAt",
    "approvedAt",
    "createdAt",
    "updatedAt"
  ],
  "additionalProperties": false
}
```

## showcase.hasUpvoted
Check whether the requester origin has upvoted a project.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string"
    }
  },
  "required": [
    "projectId"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "boolean"
}
```

## showcase.list
List approved showcase projects.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "category": {
      "type": "string"
    },
    "search": {
      "type": "string"
    },
    "sort": {
      "type": "string",
      "enum": [
        "upvotes",
        "newest",
        "stars"
      ]
    },
    "limit": {
      "default": 20,
      "type": "number",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "default": 0,
      "type": "number",
      "minimum": 0
    }
  }
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "tagline": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "screenshotUrl": {
            "type": "string"
          },
          "screenshots": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "demoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "repoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "websiteUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "videoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorName": {
            "type": "string"
          },
          "authorHandle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorEmail": {
            "type": "string"
          },
          "authorAvatar": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorTwitter": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorGithub": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "featuresUsed": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "ai-agents",
              "automation",
              "devops",
              "research",
              "trading",
              "other"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "featured",
              "rejected"
            ]
          },
          "featured": {
            "type": "boolean"
          },
          "featuredOrder": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "githubStars": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "upvotes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "views": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "submittedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "approvedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "x-superjson-type": "Date"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          }
        },
        "required": [
          "id",
          "slug",
          "title",
          "tagline",
          "description",
          "screenshotUrl",
          "screenshots",
          "demoUrl",
          "repoUrl",
          "websiteUrl",
          "videoUrl",
          "authorName",
          "authorHandle",
          "authorEmail",
          "authorAvatar",
          "authorTwitter",
          "authorGithub",
          "featuresUsed",
          "category",
          "status",
          "featured",
          "featuredOrder",
          "githubStars",
          "upvotes",
          "views",
          "submittedAt",
          "approvedAt",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "number"
    }
  },
  "required": [
    "projects",
    "total"
  ],
  "additionalProperties": false
}
```

## showcase.related
Return related approved projects.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string"
    },
    "category": {
      "type": "string"
    }
  },
  "required": [
    "projectId",
    "category"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "slug": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "tagline": {
        "type": "string"
      },
      "description": {
        "type": "string"
      },
      "screenshotUrl": {
        "type": "string"
      },
      "screenshots": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "demoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "repoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "websiteUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "videoUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorName": {
        "type": "string"
      },
      "authorHandle": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorEmail": {
        "type": "string"
      },
      "authorAvatar": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorTwitter": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "authorGithub": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "featuresUsed": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "string"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "category": {
        "type": "string",
        "enum": [
          "ai-agents",
          "automation",
          "devops",
          "research",
          "trading",
          "other"
        ]
      },
      "status": {
        "type": "string",
        "enum": [
          "pending",
          "approved",
          "featured",
          "rejected"
        ]
      },
      "featured": {
        "type": "boolean"
      },
      "featuredOrder": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "githubStars": {
        "anyOf": [
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          {
            "type": "null"
          }
        ]
      },
      "upvotes": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "views": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "submittedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "approvedAt": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time",
            "x-superjson-type": "Date"
          },
          {
            "type": "null"
          }
        ]
      },
      "createdAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      },
      "updatedAt": {
        "type": "string",
        "format": "date-time",
        "x-superjson-type": "Date"
      }
    },
    "required": [
      "id",
      "slug",
      "title",
      "tagline",
      "description",
      "screenshotUrl",
      "screenshots",
      "demoUrl",
      "repoUrl",
      "websiteUrl",
      "videoUrl",
      "authorName",
      "authorHandle",
      "authorEmail",
      "authorAvatar",
      "authorTwitter",
      "authorGithub",
      "featuresUsed",
      "category",
      "status",
      "featured",
      "featuredOrder",
      "githubStars",
      "upvotes",
      "views",
      "submittedAt",
      "approvedAt",
      "createdAt",
      "updatedAt"
    ],
    "additionalProperties": false
  }
}
```

## showcase.upvote
Toggle a network-origin-scoped upvote.
Access: public-origin-scoped. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string"
    }
  },
  "required": [
    "projectId"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "upvoted": {
      "type": "boolean"
    },
    "upvotes": {
      "type": "number"
    }
  },
  "required": [
    "upvoted",
    "upvotes"
  ],
  "additionalProperties": false
}
```

## showcaseSubmit.submit
Submit a project for moderation.
Access: public. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 3,
      "maxLength": 100
    },
    "tagline": {
      "type": "string",
      "minLength": 10,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "minLength": 50,
      "maxLength": 10000
    },
    "screenshotUrl": {
      "type": "string",
      "format": "uri"
    },
    "screenshots": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "demoUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "repoUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "websiteUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "videoUrl": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "authorName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "authorHandle": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 50
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "authorEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "authorAvatar": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "authorTwitter": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 50
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "authorGithub": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 50
        },
        {
          "type": "string",
          "const": ""
        }
      ]
    },
    "featuresUsed": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "category": {
      "type": "string",
      "enum": [
        "ai-agents",
        "automation",
        "devops",
        "research",
        "trading",
        "other"
      ]
    }
  },
  "required": [
    "title",
    "tagline",
    "description",
    "screenshotUrl",
    "authorName",
    "authorEmail",
    "category"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "success",
    "id",
    "slug"
  ],
  "additionalProperties": false
}
```

## system.health
Typed application health probe.
Access: public. Kind: query. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "timestamp": {
      "type": "number",
      "minimum": 0
    }
  },
  "required": [
    "timestamp"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    }
  },
  "required": [
    "ok"
  ],
  "additionalProperties": false
}
```

## system.notifyOwner
Send an operational notification to the project owner.
Access: admin. Kind: mutation. Input required: true.
### Input JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1
    },
    "content": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "title",
    "content"
  ]
}
```
### Output JSON Schema
```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    }
  },
  "required": [
    "success"
  ],
  "additionalProperties": false
}
```

## Source and verification

Generated from `server/routers.ts`, `server/blogRouter.ts`, `server/showcaseRouter.ts`, and `server/_core/systemRouter.ts` at 2026-09-07T15:23:38-07:00.
