Mirror a repository
Points the knowledge base at a repository, or one folder of it. Every markdown file becomes a document the agent answers out of, and a push re-syncs it. The sync starts immediately. publishedAt is where those files are published, which is what lets an answer carry a link instead of a paragraph; the hunt for the matching pages runs itself.
POST
/integrations/reposAuthorization
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.
Request body
requiredapplication/jsonrepostringrequiredowner/repo.
branchstringThe default branch if left out.
pathstringOne folder, e.g. docs. The whole tree if left out.
publishedAtstringe.g. https://docs.acme.com
Responses
200The repository now being mirrored.
repostring400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The 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 POST "https://api.median.sh/v1/integrations/repos" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"repo": "string",
"branch": "string",
"path": "string",
"publishedAt": "string"
}'const response = await fetch("https://api.median.sh/v1/integrations/repos", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"repo": "string",
"branch": "string",
"path": "string",
"publishedAt": "string"
})
});Response
{
"repo": "string"
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}