API Reference
Integrate OpenCodeHub into your workflow. 92+ endpoints across repositories, pull requests, CI/CD, AI review, and more.
Base URL
/api Authentication
Bearer token Rate Limit
100 req/min (auth'd) Authentication
Bearer Token (PAT)
— Personal access tokens for API accesscurl -H "Authorization: Bearer och_abc123def456" \
https://git.yourcompany.com/api/repos Basic Auth (Git HTTP)
— Username + PAT for git clone/push over HTTPSgit clone https://username:[email protected]/owner/repo.git Session Cookie
— Browser sessions via och_session cookie (web UI only)# Automatically set by the web UI after login Generate tokens at Settings → Tokens. See full authentication docs for details.
Endpoints by Category
POST
Sign in with credentials /api/auth/login POST
Create new account /api/auth/register POST
Sign out /api/auth/logout GET
Get current user /api/auth/me POST
Set up TOTP 2FA /api/auth/2fa/setup POST
Enable 2FA /api/auth/2fa/enable POST
Disable 2FA /api/auth/2fa/disable POST
Change password /api/auth/password POST
Request password reset /api/auth/password-reset GET
Google OAuth login /api/auth/google GET
SSO login /api/auth/sso/:provider Repositories
— Create, read, update, delete repositories. Manage branches, collaborators, labels, wiki GET
List repositories /api/repos POST
Create repository /api/repos GET
Get repository /api/repos/:owner/:repo PATCH
Update repository /api/repos/:owner/:repo DELETE
Delete repository /api/repos/:owner/:repo GET
List branches /api/repos/:owner/:repo/branches GET
List collaborators /api/repos/:owner/:repo/collaborators POST
Add collaborator /api/repos/:owner/:repo/collaborators GET
List labels /api/repos/:owner/:repo/labels POST
Star/unstar repo /api/repos/:owner/:repo/star POST
Fork repository /api/repos/:owner/:repo/fork GET
List wiki pages /api/repos/:owner/:repo/wiki PUT
Create/update wiki page /api/repos/:owner/:repo/wiki/:slug GET
List pull requests /api/repos/:owner/:repo/pulls POST
Create pull request /api/repos/:owner/:repo/pulls GET
Get pull request /api/repos/:owner/:repo/pulls/:number PATCH
Update pull request /api/repos/:owner/:repo/pulls/:number POST
Merge pull request /api/repos/:owner/:repo/pulls/:number/merge GET
Get PR diff /api/repos/:owner/:repo/pulls/:number/diff POST
Submit review /api/repos/:owner/:repo/pulls/:number/reviews GET
List comments /api/repos/:owner/:repo/pulls/:number/comments POST
Add comment /api/repos/:owner/:repo/pulls/:number/comments POST
Trigger AI review /api/repos/:owner/:repo/pulls/:number/ai-review POST
Enable auto-merge /api/repos/:owner/:repo/pulls/:number/auto-merge GET
List linked PRs /api/repos/:owner/:repo/pulls/:number/linked-prs GET
List status checks /api/repos/:owner/:repo/pulls/:number/checks Stacked PRs
— Graphite-style stacked branches with rebase, approval propagation, merge readiness GET
List all stacks /api/stacks GET
Get stack details /api/repos/stacks/:stackId POST
Submit stack /api/repos/:owner/:repo/stacks/submit POST
Rebase stack /api/repos/:owner/:repo/stacks/:stackId/rebase GET
Check merge readiness /api/repos/:owner/:repo/stacks/:stackId/merge-readiness POST
Merge stack /api/repos/:owner/:repo/stacks/:stackId/merge GET
Get PR dependencies /api/repos/:owner/:repo/pulls/dependencies GET
Get stack order /api/repos/:owner/:repo/pulls/stack-order GET
List issues /api/repos/:owner/:repo/issues POST
Create issue /api/repos/:owner/:repo/issues GET
Get issue /api/repos/:owner/:repo/issues/:number PATCH
Update issue /api/repos/:owner/:repo/issues/:number POST
Add comment /api/repos/:owner/:repo/issues/:number/comments GET
Cross-repo links /api/repos/:owner/:repo/issues/:number/cross-repo-links GET
Linked PRs /api/repos/:owner/:repo/issues/:number/linked-prs GET
List workflow runs /api/repos/:owner/:repo/actions/runs GET
Get run details /api/repos/:owner/:repo/actions/runs/:runId POST
Cancel run /api/repos/:owner/:repo/actions/runs/:runId/cancel POST
Rerun run /api/repos/:owner/:repo/actions/runs/:runId/rerun GET
List artifacts /api/repos/:owner/:repo/actions/runs/:runId/artifacts GET
List secrets /api/repos/:owner/:repo/actions/secrets POST
Create/update secret /api/repos/:owner/:repo/actions/secrets/:name POST
Register runner /api/actions/runners/register POST
Poll for jobs /api/actions/runners/poll Merge Queue
— Priority lanes, speculative builds, conflict detection, automated merge ordering GET
List queue entries /api/repos/:owner/:repo/queue POST
Join queue /api/repos/:owner/:repo/queue/join GET
Check conflicts /api/repos/:owner/:repo/queue/:id/conflicts GET
Check merge readiness /api/repos/:owner/:repo/pulls/:number/merge-readiness AI Code Review
— 10+ AI providers: OpenAI, Anthropic, Google, Groq, Ollama, OpenRouter, Together POST
Trigger AI review /api/repos/:owner/:repo/pulls/:number/ai-review GET
Get AI review /api/repos/:owner/:repo/pulls/:number/ai-review GET
List review rules /api/ai-review-rules POST
Create review rule /api/ai-review-rules PATCH
Update review rule /api/ai-review-rules/:id DELETE
Delete review rule /api/ai-review-rules/:id POST
Apply AI suggestion /api/repos/:owner/:repo/pulls/:number/suggestions/:id/apply GET
List webhooks /api/repos/:repoId/webhooks POST
Create webhook /api/repos/:repoId/webhooks PATCH
Update webhook /api/repos/:repoId/webhooks/:id DELETE
Delete webhook /api/repos/:repoId/webhooks/:id POST
Test webhook /api/repos/:repoId/webhooks/:id/test GET
List automation rules /api/automation-rules POST
Create automation rule /api/automation-rules GET
List members /api/orgs/:org/members POST
Add member /api/orgs/:org/members DELETE
Remove member /api/orgs/:org/members/:userId GET
List roles /api/orgs/:org/roles POST
Create role /api/orgs/:org/roles GET
List notifications /api/notifications POST
Mark as read /api/notifications/:id/read POST
Archive notification /api/notifications/:id/archive POST
Mark all as read /api/notifications/mark-all-read GET
Get preferences /api/user/notification-preferences PATCH
Update preferences /api/user/notification-preferences GET
Get npm package /api/packages/npm/:package GET
Docker registry API /api/packages/docker/v2/:path Response Format
Success
{
"data": {
"id": "repo-123",
"name": "my-project",
"visibility": "private"
}
} Error
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Repository name is required"
}
}