EnderDashEnderDash
Reference

HTTP API

Reference for EnderDash's generated tRPC HTTP surface, including authentication, request format, response format, and scope.

What this API is

EnderDash exposes an authenticated HTTP API generated from the app's tRPC router.

This is separate from the real-time browser-to-agent channel, which uses protobuf RPC over WebRTC data channels.

Authentication

The HTTP API accepts either:

  • a signed-in EnderDash session cookie
  • a user API key sent as X-API-Key

It does not accept per-server agent keys.

Agent keys do not authenticate the HTTP API

Agent keys are only for registering an agent to a server record. Use a browser session or a user API key for HTTP calls.

OpenAPI documents

Import the schema into Postman, Insomnia, or another OpenAPI-compatible tool if you want generated request shapes.

Base path and request model

The generated surface is exposed under /api/trpc.

Operation typePath shapeInput format
QueryGET /api/trpc/<router>.<procedure>Serialized in the input query parameter
MutationPOST /api/trpc/<router>.<procedure>Serialized in the JSON request body

Responses use the standard tRPC envelope:

{
  "result": {
    "data": {}
  }
}

Because EnderDash uses superjson, generated clients should use the same transformer when decoding responses.

What is included

The generated HTTP surface currently covers public and protected procedures from routers such as:

  • activity
  • auth
  • ocelot
  • organizations
  • servers

Access rules still follow normal EnderDash authorization:

  • organization membership
  • server grants
  • admin-only procedures
  • plan limits

What is not included

  • WebRTC signaling and the browser-to-agent transport
  • tRPC subscriptions
  • Ocelot streaming chat
  • complete recursive schemas for some activity metadata, because @trpc/openapi has a depth limit

Error behavior

StatusMeaning
400Invalid input
401Missing authentication
403Authenticated but not allowed
404Resource not found
409Blocked by resource state or plan limits
429Rate limit exceeded

Practical curl example

curl \
  -H 'X-API-Key: <user-api-key>' \
  'https://app.enderdash.com/api/trpc/servers.listServers?input=%7B%22json%22%3A%7B%22organizationSlug%22%3A%22test%22%7D%7D'

Was this page helpful?

Send a quick note if anything is missing or unclear.

Last updated on

On this page