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 access
curl -H "Authorization: Bearer och_abc123def456" \
  https://git.yourcompany.com/api/repos

Basic Auth (Git HTTP)

— Username + PAT for git clone/push over HTTPS
git 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

Authentication

— Login, register, 2FA, OAuth, SSO/SAML, session management
Docs →
POST /api/auth/login
Sign in with credentials
POST /api/auth/register
Create new account
POST /api/auth/logout
Sign out
GET /api/auth/me
Get current user
POST /api/auth/2fa/setup
Set up TOTP 2FA
POST /api/auth/2fa/enable
Enable 2FA
POST /api/auth/2fa/disable
Disable 2FA
POST /api/auth/password
Change password
POST /api/auth/password-reset
Request password reset
GET /api/auth/google
Google OAuth login
GET /api/auth/sso/:provider
SSO login

Repositories

— Create, read, update, delete repositories. Manage branches, collaborators, labels, wiki
Docs →
GET /api/repos
List repositories
POST /api/repos
Create repository
GET /api/repos/:owner/:repo
Get repository
PATCH /api/repos/:owner/:repo
Update repository
DELETE /api/repos/:owner/:repo
Delete repository
GET /api/repos/:owner/:repo/branches
List branches
GET /api/repos/:owner/:repo/collaborators
List collaborators
POST /api/repos/:owner/:repo/collaborators
Add collaborator
GET /api/repos/:owner/:repo/labels
List labels
POST /api/repos/:owner/:repo/star
Star/unstar repo
POST /api/repos/:owner/:repo/fork
Fork repository
GET /api/repos/:owner/:repo/wiki
List wiki pages
PUT /api/repos/:owner/:repo/wiki/:slug
Create/update wiki page

Pull Requests

— Create, review, merge PRs. Manage reviews, comments, dependencies, stacks
Docs →
GET /api/repos/:owner/:repo/pulls
List pull requests
POST /api/repos/:owner/:repo/pulls
Create pull request
GET /api/repos/:owner/:repo/pulls/:number
Get pull request
PATCH /api/repos/:owner/:repo/pulls/:number
Update pull request
POST /api/repos/:owner/:repo/pulls/:number/merge
Merge pull request
GET /api/repos/:owner/:repo/pulls/:number/diff
Get PR diff
POST /api/repos/:owner/:repo/pulls/:number/reviews
Submit review
GET /api/repos/:owner/:repo/pulls/:number/comments
List comments
POST /api/repos/:owner/:repo/pulls/:number/comments
Add comment
POST /api/repos/:owner/:repo/pulls/:number/ai-review
Trigger AI review
POST /api/repos/:owner/:repo/pulls/:number/auto-merge
Enable auto-merge
GET /api/repos/:owner/:repo/pulls/:number/linked-prs
List linked PRs
GET /api/repos/:owner/:repo/pulls/:number/checks
List status checks

Stacked PRs

— Graphite-style stacked branches with rebase, approval propagation, merge readiness
Docs →
GET /api/stacks
List all stacks
GET /api/repos/stacks/:stackId
Get stack details
POST /api/repos/:owner/:repo/stacks/submit
Submit stack
POST /api/repos/:owner/:repo/stacks/:stackId/rebase
Rebase stack
GET /api/repos/:owner/:repo/stacks/:stackId/merge-readiness
Check merge readiness
POST /api/repos/:owner/:repo/stacks/:stackId/merge
Merge stack
GET /api/repos/:owner/:repo/pulls/dependencies
Get PR dependencies
GET /api/repos/:owner/:repo/pulls/stack-order
Get stack order

Issues

— Create, manage, and link issues. Cross-repo links and linked PRs
Docs →
GET /api/repos/:owner/:repo/issues
List issues
POST /api/repos/:owner/:repo/issues
Create issue
GET /api/repos/:owner/:repo/issues/:number
Get issue
PATCH /api/repos/:owner/:repo/issues/:number
Update issue
POST /api/repos/:owner/:repo/issues/:number/comments
Add comment
GET /api/repos/:owner/:repo/issues/:number/cross-repo-links
Cross-repo links
GET /api/repos/:owner/:repo/issues/:number/linked-prs
Linked PRs

CI/CD Actions

— GitHub Actions-compatible pipelines, runners, artifacts, secrets
Docs →
GET /api/repos/:owner/:repo/actions/runs
List workflow runs
GET /api/repos/:owner/:repo/actions/runs/:runId
Get run details
POST /api/repos/:owner/:repo/actions/runs/:runId/cancel
Cancel run
POST /api/repos/:owner/:repo/actions/runs/:runId/rerun
Rerun run
GET /api/repos/:owner/:repo/actions/runs/:runId/artifacts
List artifacts
GET /api/repos/:owner/:repo/actions/secrets
List secrets
POST /api/repos/:owner/:repo/actions/secrets/:name
Create/update secret
POST /api/actions/runners/register
Register runner
POST /api/actions/runners/poll
Poll for jobs

Merge Queue

— Priority lanes, speculative builds, conflict detection, automated merge ordering
Docs →
GET /api/repos/:owner/:repo/queue
List queue entries
POST /api/repos/:owner/:repo/queue/join
Join queue
GET /api/repos/:owner/:repo/queue/:id/conflicts
Check conflicts
GET /api/repos/:owner/:repo/pulls/:number/merge-readiness
Check merge readiness

AI Code Review

— 10+ AI providers: OpenAI, Anthropic, Google, Groq, Ollama, OpenRouter, Together
Docs →
POST /api/repos/:owner/:repo/pulls/:number/ai-review
Trigger AI review
GET /api/repos/:owner/:repo/pulls/:number/ai-review
Get AI review
GET /api/ai-review-rules
List review rules
POST /api/ai-review-rules
Create review rule
PATCH /api/ai-review-rules/:id
Update review rule
DELETE /api/ai-review-rules/:id
Delete review rule
POST /api/repos/:owner/:repo/pulls/:number/suggestions/:id/apply
Apply AI suggestion

Webhooks & Automations

— Outbound webhooks with HMAC signing, rule-based automation engine
Docs →
GET /api/repos/:repoId/webhooks
List webhooks
POST /api/repos/:repoId/webhooks
Create webhook
PATCH /api/repos/:repoId/webhooks/:id
Update webhook
DELETE /api/repos/:repoId/webhooks/:id
Delete webhook
POST /api/repos/:repoId/webhooks/:id/test
Test webhook
GET /api/automation-rules
List automation rules
POST /api/automation-rules
Create automation rule

Organizations & Teams

— Multi-tenant orgs, team management, role-based access control
Docs →
GET /api/orgs/:org/members
List members
POST /api/orgs/:org/members
Add member
DELETE /api/orgs/:org/members/:userId
Remove member
GET /api/orgs/:org/roles
List roles
POST /api/orgs/:org/roles
Create role

Notifications

— In-app notifications, email digests, blocking notifications, SSE realtime
Docs →
GET /api/notifications
List notifications
POST /api/notifications/:id/read
Mark as read
POST /api/notifications/:id/archive
Archive notification
POST /api/notifications/mark-all-read
Mark all as read
GET /api/user/notification-preferences
Get preferences
PATCH /api/user/notification-preferences
Update preferences

Packages

— Built-in npm and Docker container registry for private packages
Docs →
GET /api/packages/npm/:package
Get npm package
GET /api/packages/docker/v2/:path
Docker registry API

Response Format

Success

{
  "data": {
    "id": "repo-123",
    "name": "my-project",
    "visibility": "private"
  }
}

Error

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Repository name is required"
  }
}

Resources