Median

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

EndpointWhat it does
GET /meWho am I
POST /organizationsCreate an organization
POST /me/organizationSwitch organizations
GET /keysList keys
POST /keysCreate a key
DELETE /keys/{id}Revoke a key
GET /conversationsList conversations
GET /conversations/{id}Get a conversation
DELETE /conversations/{id}Delete a conversation
PATCH /conversations/{id}Update a conversation
POST /conversations/{id}/messagesReply as the team
POST /conversations/{id}/notesAdd a note
GET /conversations/{id}/toolsList runnable tools
POST /conversations/{id}/tools/runRun a tool
GET /toolsList tools
POST /tools/syncSync tool endpoints
POST /tools/{name}/testTest a tool
GET /tool-approvalsList approvals
GET /tool-approvals/{id}Get an approval
POST /tool-approvals/{id}/approveApprove a tool call
POST /tool-approvals/{id}/denyDeny a tool call
PATCH /tools/{name}Switch a tool
DELETE /tool-endpoints/{id}Remove a tool endpoint
GET /tool-suggestionsList tool suggestions
POST /tool-suggestions/{id}/builtMark a suggestion built
POST /tool-suggestions/{id}/dismissDismiss a suggestion
GET /customersList customers
GET /customers/{id}Get a customer
DELETE /customers/{id}Delete a customer
POST /customers/{id}/refresh-profileRefresh the profile
POST /customers/{id}/reach-outReach out
DELETE /customers/{id}/facts/{factId}Delete a fact
GET /knowledgeGet the library
GET /knowledge/searchSearch documents
POST /knowledge/documentsWrite 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}/moveMove a document
POST /knowledge/documents/{id}/retryRetry indexing
POST /knowledge/syncSync external sources
POST /knowledge/foldersCreate a folder
DELETE /knowledge/folders/{id}Delete a folder
PATCH /knowledge/folders/{id}Update a folder
POST /knowledge/folders/{id}/moveMove a folder
GET /knowledge/suggestionsList suggestions
POST /knowledge/suggestions/{id}/approveApprove a suggestion
POST /knowledge/suggestions/{id}/dismissDismiss a suggestion
GET /knowledge/crawlsList crawls
POST /knowledge/crawlsStart a crawl
DELETE /knowledge/crawls/{id}Remove a crawl
GET /signalsList signals
POST /signalsFile a signal
GET /signals/{id}Get a signal
DELETE /signals/{id}Delete a signal
PATCH /signals/{id}Update a signal
POST /signals/{id}/mergeMerge a duplicate
POST /signals/{id}/acceptAccept a signal
POST /signals/commits/{id}/applyApply a commit
POST /signals/commits/{id}/dismissDismiss a commit
POST /feedbackSubmit feedback
GET /tasksList tasks
POST /tasksCreate a task
GET /tasks/requestsList requests
POST /tasks/requests/{id}Put a request on the board
GET /tasks/settingsGet board settings
PATCH /tasks/settingsUpdate board settings
GET /tasks/{task}Get a task
DELETE /tasks/{task}Delete a task
PATCH /tasks/{task}Update a task
POST /tasks/{task}/declineDecline a request
GET /integrationsEverything connected
PATCH /integrations/emailSwitch email support
PATCH /integrations/slackPoint the Slack mirror
PATCH /integrations/discordSet up the Discord side
PATCH /integrations/linearSet the Linear team
POST /integrations/issue-repoSet the issue repository
DELETE /integrations/issue-repoStop opening issues
POST /integrations/commit-reposWatch a repository's commits
DELETE /integrations/commit-repos/{owner}/{repo}Stop reading commits
POST /integrations/reposMirror a repository
DELETE /integrations/repos/{owner}/{repo}Stop mirroring a repository
PATCH /integrations/repos/{owner}/{repo}Set the published address
GET /site/appearanceGet the site's appearance
PATCH /site/appearanceChange the site's appearance
GET /site/domainGet the custom domain
POST /site/domainConnect a custom domain
DELETE /site/domainRemove the custom domain
POST /site/domain/checkCheck the custom domain now
GET /site/sign-inGet how visitors sign in
PATCH /site/sign-inChange how visitors sign in
GET /organizationGet the organization
PATCH /organizationRename the organization
GET /membersList members
DELETE /members/{userId}Remove a member
PATCH /members/{userId}Change somebody's role
GET /invitesList invites
POST /invitesInvite somebody
DELETE /invites/{id}Revoke an invite
GET /agentGet the agent
PATCH /agentUpdate the agent
GET /webhooksList webhooks
POST /webhooksAdd a webhook
DELETE /webhooks/{id}Remove a webhook
PATCH /webhooks/{id}Update a webhook
GET /analytics/overviewGet the overview
GET /analytics/conversationsConversation volume
GET /analytics/satisfactionSatisfaction
GET /analytics/signalsSignal trends
GET /analytics/activityTeam activity
GET /analytics/knowledgeKnowledge coverage
POST /analytics/exploreExplore any dataset
GET /analytics/billingSpend and model calls
POST /analytics/recordsList the rows a query matched
GET /billing/limitsRead the effective API allowance
GET /billing/overviewRead the plan and credits
GET /billing/invoicesList invoices
GET /billing/usageRead usage history
GET /logsRead the activity log
GET /logs/{id}Read one log entry
GET /callList methods
POST /call/{method}Call a method
GET /analytics/datasets/{dataset}Describe a dataset
GET /docs/searchSearch the docs
GET /docs/pageRead a docs page

Still need help?

    Esc