Management API
Updated Oct 4, 20263 minute read
Version 1.0.0.
Everything the dashboard can do, over HTTP: the inbox, customers, the knowledge base, signals, the agent's settings, and the numbers. Server to server only, and no CORS headers are sent.
Two credentials open it. MEDIAN_KEY acts as the organization and can do anything an admin can, except send invitations and change members. An MCP OAuth access token acts as the teammate who approved it, with that person's role checked on every request.
Ids are strings. Pass them back exactly as you received them; an id that is not yours reads as not found.
Base URL
https://api.median.sh/v1
Authentication
Authorization: Bearer $BEARER_AUTH
MEDIAN_KEY from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Endpoints
| Endpoint | What it does |
|---|---|
GET /me | Who am I |
POST /organizations | Create an organization |
POST /me/organization | Switch organizations |
GET /keys | List keys |
POST /keys | Create a key |
DELETE /keys/{id} | Revoke a key |
GET /conversations | List conversations |
GET /conversations/{id} | Get a conversation |
DELETE /conversations/{id} | Delete a conversation |
PATCH /conversations/{id} | Update a conversation |
POST /conversations/{id}/messages | Reply as the team |
POST /conversations/{id}/notes | Add a note |
GET /conversations/{id}/tools | List runnable tools |
POST /conversations/{id}/tools/run | Run a tool |
GET /tools | List tools |
POST /tools/sync | Sync tool endpoints |
POST /tools/{name}/test | Test a tool |
GET /tool-approvals | List approvals |
GET /tool-approvals/{id} | Get an approval |
POST /tool-approvals/{id}/approve | Approve a tool call |
POST /tool-approvals/{id}/deny | Deny a tool call |
PATCH /tools/{name} | Switch a tool |
DELETE /tool-endpoints/{id} | Remove a tool endpoint |
GET /tool-suggestions | List tool suggestions |
POST /tool-suggestions/{id}/built | Mark a suggestion built |
POST /tool-suggestions/{id}/dismiss | Dismiss a suggestion |
GET /customers | List customers |
GET /customers/{id} | Get a customer |
DELETE /customers/{id} | Delete a customer |
POST /customers/{id}/refresh-profile | Refresh the profile |
POST /customers/{id}/reach-out | Reach out |
DELETE /customers/{id}/facts/{factId} | Delete a fact |
GET /knowledge | Get the library |
GET /knowledge/search | Search documents |
POST /knowledge/documents | Write a document |
GET /knowledge/documents/{id} | Get a document |
DELETE /knowledge/documents/{id} | Delete a document |
PATCH /knowledge/documents/{id} | Edit a document |
POST /knowledge/documents/{id}/move | Move a document |
POST /knowledge/documents/{id}/retry | Retry indexing |
POST /knowledge/sync | Sync external sources |
POST /knowledge/folders | Create a folder |
DELETE /knowledge/folders/{id} | Delete a folder |
PATCH /knowledge/folders/{id} | Update a folder |
POST /knowledge/folders/{id}/move | Move a folder |
GET /knowledge/suggestions | List suggestions |
POST /knowledge/suggestions/{id}/approve | Approve a suggestion |
POST /knowledge/suggestions/{id}/dismiss | Dismiss a suggestion |
GET /knowledge/crawls | List crawls |
POST /knowledge/crawls | Start a crawl |
DELETE /knowledge/crawls/{id} | Remove a crawl |
GET /signals | List signals |
POST /signals | File a signal |
GET /signals/{id} | Get a signal |
DELETE /signals/{id} | Delete a signal |
PATCH /signals/{id} | Update a signal |
POST /signals/{id}/merge | Merge a duplicate |
POST /signals/{id}/accept | Accept a signal |
POST /signals/commits/{id}/apply | Apply a commit |
POST /signals/commits/{id}/dismiss | Dismiss a commit |
POST /feedback | Submit feedback |
GET /tasks | List tasks |
POST /tasks | Create a task |
GET /tasks/requests | List requests |
POST /tasks/requests/{id} | Put a request on the board |
GET /tasks/settings | Get board settings |
PATCH /tasks/settings | Update board settings |
GET /tasks/{task} | Get a task |
DELETE /tasks/{task} | Delete a task |
PATCH /tasks/{task} | Update a task |
POST /tasks/{task}/decline | Decline a request |
GET /integrations | Everything connected |
PATCH /integrations/email | Switch email support |
PATCH /integrations/slack | Point the Slack mirror |
PATCH /integrations/discord | Set up the Discord side |
PATCH /integrations/linear | Set the Linear team |
POST /integrations/issue-repo | Set the issue repository |
DELETE /integrations/issue-repo | Stop opening issues |
POST /integrations/commit-repos | Watch a repository's commits |
DELETE /integrations/commit-repos/{owner}/{repo} | Stop reading commits |
POST /integrations/repos | Mirror a repository |
DELETE /integrations/repos/{owner}/{repo} | Stop mirroring a repository |
PATCH /integrations/repos/{owner}/{repo} | Set the published address |
GET /site/appearance | Get the site's appearance |
PATCH /site/appearance | Change the site's appearance |
GET /site/domain | Get the custom domain |
POST /site/domain | Connect a custom domain |
DELETE /site/domain | Remove the custom domain |
POST /site/domain/check | Check the custom domain now |
GET /site/sign-in | Get how visitors sign in |
PATCH /site/sign-in | Change how visitors sign in |
GET /organization | Get the organization |
PATCH /organization | Rename the organization |
GET /members | List members |
DELETE /members/{userId} | Remove a member |
PATCH /members/{userId} | Change somebody's role |
GET /invites | List invites |
POST /invites | Invite somebody |
DELETE /invites/{id} | Revoke an invite |
GET /agent | Get the agent |
PATCH /agent | Update the agent |
GET /webhooks | List webhooks |
POST /webhooks | Add a webhook |
DELETE /webhooks/{id} | Remove a webhook |
PATCH /webhooks/{id} | Update a webhook |
GET /analytics/overview | Get the overview |
GET /analytics/conversations | Conversation volume |
GET /analytics/satisfaction | Satisfaction |
GET /analytics/signals | Signal trends |
GET /analytics/activity | Team activity |
GET /analytics/knowledge | Knowledge coverage |
POST /analytics/explore | Explore any dataset |
GET /analytics/billing | Spend and model calls |
POST /analytics/records | List the rows a query matched |
GET /billing/limits | Read the effective API allowance |
GET /billing/overview | Read the plan and credits |
GET /billing/invoices | List invoices |
GET /billing/usage | Read usage history |
GET /logs | Read the activity log |
GET /logs/{id} | Read one log entry |
GET /call | List methods |
POST /call/{method} | Call a method |
GET /analytics/datasets/{dataset} | Describe a dataset |
GET /docs/search | Search the docs |
GET /docs/page | Read a docs page |