Skip to main content

Project API overview

How a project calls MCDI: how to authenticate and every endpoint at a glance, grouped by area.

These endpoints are for the backends and browsers of MicroClub projects. A backend call carries the project's API key in the X-API-Key header, and the login endpoints are public because they start a member's sign-in. A few endpoints act on a member's own session and take that member's session token as a Bearer token instead. What a project can do is limited to the servers and operations an administrator granted it.

The endpoints the admin dashboard uses are in the Admin API.

30 endpoints in 7 groups.

Authentication

Authentication (SSO)

Channels

MethodPathSummary
GET/api/servers/{serverId}/channelsList all channels in a server
GET/api/servers/{serverId}/channels/{channelId}Get channel details
GET/api/servers/{serverId}/channels/{channelId}/messagesGet recent messages from a channel
POST/api/servers/{serverId}/channels/{channelId}/messagesSend a message to a Discord channel

Inbound Webhooks (Ingest)

MethodPathSummary
POST/api/inbound-webhooks/{id}/submitSubmit a payload

Members

MethodPathSummary
GET/api/servers/{serverId}/membersSearch members
GET/api/servers/{serverId}/members/{discordId}Get a single member by Discord ID
GET/api/servers/{serverId}/members/{discordId}/permissionsGet all effective permissions of a member in a server

Permissions

MethodPathSummary
POST/api/permissions/checkCheck a single permission
POST/api/permissions/check-batchCheck multiple permissions (batch)
GET/api/permissions/{serverId}/{discordId}Get full resolved permissions for a member

Webhooks

MethodPathSummary
GET/api/projects/{projectId}/webhooksList webhooks for a project
POST/api/servers/{serverId}/channels/{channelId}/webhooksCreate a webhook for a channel
GET/api/webhooks/{webhookId}Get webhook details
PATCH/api/webhooks/{webhookId}Update webhook settings
DELETE/api/webhooks/{webhookId}Delete a webhook
POST/api/webhooks/{webhookId}/executeExecute a webhook

Source: apps/api/openapi.json.