Everything connected
What is connected and what each one is pointed at, in one read: the email address, the Slack and Discord channels, the GitHub accounts and repositories, the Notion workspace, the Linear team, and where issues and commits are read from. available: false means the deployment has no app to connect through, which is a different thing from nobody having connected one. The tracker half reads as empty rather than as absent for a caller who cannot manage signals.
GET
/integrationsAuthorization
AuthorizationBearer token · headerrequired`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.
Responses
200The integrations.
emailobjectShow propertiesHide properties
availablebooleanaddressstringenabledbooleanslackobjectShow propertiesHide properties
availablebooleanworkspacestring | nullmirrorChannelstring | nullenabledbooleanbotRunningbooleandiscordobjectShow propertiesHide properties
availablebooleanserverstring | nullticketChannelstring | nullstaffRolestring | nullmirrorChannelstring | nullmirrorEnabledbooleanenabledbooleanbotRunningbooleangithubobjectShow propertiesHide properties
accountsstring[]reposobject[]Show propertiesHide properties
Array of
objectrepostringbranchstring | nullpathstring | nullstatusstringerrorstring | nullpublishedAtstring | nulllastSyncedAtinteger | nulldocsSitesobject[]The same repositories read as what they are, so every page has an address from the first sync.
Show propertiesHide properties
Array of
objectrepostringframeworkstringpublishedAtstring | nullstatusstringnotionobjectShow propertiesHide properties
workspacestring | nullconnectedBystring | nulllinearobjectShow propertiesHide properties
availablebooleanworkspacestring | nullteamstring | nullautoCreateIssuesbooleanissueRepoobject | nullWhere signals open GitHub issues, when anywhere.
Show propertiesHide properties
repostringautoCreatebooleancommitReposobject[]Show propertiesHide properties
Array of
objectrepostringbranchstring | nullcloseFromCommitsboolean401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X GET "https://api.median.sh/v1/integrations" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://api.median.sh/v1/integrations", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});Response
{
"email": {
"available": true,
"address": "string",
"enabled": true
},
"slack": {
"available": true,
"workspace": "string",
"mirrorChannel": "string",
"enabled": true,
"botRunning": true
},
"discord": {
"available": true,
"server": "string",
"ticketChannel": "string",
"staffRole": "string",
"mirrorChannel": "string",
"mirrorEnabled": true,
"enabled": true,
"botRunning": true
},
"github": {
"accounts": [
"string"
],
"repos": [
{
"repo": "string",
"branch": "string",
"path": "string",
"status": "string",
"error": "string",
"publishedAt": "string",
"lastSyncedAt": 0
}
],
"docsSites": [
{
"repo": "string",
"framework": "string",
"publishedAt": "string",
"status": "string"
}
]
},
"notion": {
"workspace": "string",
"connectedBy": "string"
},
"linear": {
"available": true,
"workspace": "string",
"team": "string",
"autoCreateIssues": true
},
"issueRepo": {
"repo": "string",
"autoCreate": true
},
"commitRepos": [
{
"repo": "string",
"branch": "string",
"closeFromCommits": true
}
]
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}