The VeloGit Data Plane provides a REST API for managing organizations, repositories, agents, and more.
Most endpoints require a valid OIDC Bearer token issued by the identity provider:
Authorization : Bearer <your_token>
Git Smart HTTP operations (git clone, git push) use HTTP Basic Auth. Use any username and your PAT as the password:
https://<username>:<pat>@velogit.com/<org>/<repo>.git
PATs can be created (with an optional expiry) and revoked from Developer Settings in the UI, or via the tokens API. Expired tokens are rejected with 401 Unauthorized.
Some endpoints are publicly accessible (no auth required) for repos with public visibility — for example, listing files, commits, pull requests, and fragments. Write operations always require authentication.
Method Path Description GET/orgsList organizations the current user belongs to POST/orgsCreate a new organization GET/orgs/:org/reposList repositories for an org (public repos visible to anyone) GET/orgs/:org/settingsGet organization settings PATCH/orgs/:org/settingsUpdate organization settings (default repo visibility, etc.) GET/orgs/:org/activityRecent activity feed for an org GET/orgs/:org/me/membershipCheck if the current user is a member of the org
Method Path Description GET/orgs/:org/membersList org members POST/orgs/:org/invitationsInvite a user by email DELETE/orgs/:org/invitations/:idRevoke a pending invitation DELETE/orgs/:org/members/:userIdRemove a member PATCH/orgs/:org/members/:userIdUpdate a member’s role GET/invitations/:tokenGet invitation details by token POST/invitations/:token/acceptAccept an invitation
Method Path Description GET/reposList all repos the user has access to POST/reposCreate a new repository GET/orgs/:org/repos/:repoGet repository detail (includes forked_from origin if applicable) PATCH/orgs/:org/repos/:repoUpdate repository metadata (name, description, visibility) DELETE/orgs/:org/repos/:repoDelete a repository POST/orgs/:org/repos/:repo/forkFork a repository into a target org. Body: {"org":"<target-org>","name":"<new-name>"} GET/orgs/:org/repos/:repo/filesList files at a path GET/orgs/:org/repos/:repo/contentGet raw file content GET/orgs/:org/repos/:repo/commitsList commits GET/orgs/:org/repos/:repo/branchesList branches GET/orgs/:org/repos/:repo/diff/:shaGet diff for a specific commit GET/orgs/:org/repos/:repo/contributorsList contributors by commit count
Method Path Description GET/orgs/:org/repos/:repo/pullsList pull requests POST/orgs/:org/repos/:repo/pullsOpen a new pull request GET/orgs/:org/repos/:repo/pulls/:idGet PR detail (includes fragments) PATCH/orgs/:org/repos/:repo/pulls/:idUpdate PR title, description, or status POST/orgs/:org/repos/:repo/pulls/:id/mergeMerge a pull request GET/orgs/:org/repos/:repo/pulls/:id/commitsList commits in a PR GET/orgs/:org/repos/:repo/pulls/:id/diffGet unified diff for a PR GET/orgs/:org/repos/:repo/pulls/:id/commentsList PR comments POST/orgs/:org/repos/:repo/pulls/:id/commentsPost a comment (supports inline and threaded replies) GET/orgs/:org/repos/:repo/pulls/:id/reviewsList reviews POST/orgs/:org/repos/:repo/pulls/:id/reviewsSubmit an approval or change request
Method Path Description GET/orgs/:org/repos/:repo/fragmentsList fragments for a repo POST/orgs/:org/repos/:repo/fragmentsCreate a fragment (agent use) PATCH/orgs/:org/repos/:repo/fragments/:id/rejectDismiss a suggestion POST/orgs/:org/repos/:repo/meldApply a suggestion to a branch
Method Path Description GET/orgs/:org/repos/:repo/pipelinesList pipeline runs (most recent 30) GET/orgs/:org/repos/:repo/pipelines/:idGet a pipeline run with step details (steps ordered by creation time) POST/orgs/:org/repos/:repo/pipelines/:id/cancelCancel an active run; force-destroys the runner machine POST/orgs/:org/repos/:repo/pipelines/:id/rerunRe-run the whole pipeline against the same commit — spawns a new pipeline run POST/orgs/:org/repos/:repo/pipelines/:id/steps/:step/rerunRe-run a single step (and its transitive downstream via After:) within the same run ; the named step + dependents are reset to pending and a fresh runner picks them up. See Re-running Individual Steps POST/orgs/:org/repos/:repo/pipelines/:id/gates/:step/approveApprove a blocked gate step; triggers a new runner segment POST/orgs/:org/repos/:repo/pipelines/:id/gates/:step/rejectReject a blocked gate step; marks all pending steps skipped
Status Meaning runningA machine is actively executing steps waiting_gatePaused at a gate checkpoint; awaiting human approval passedAll steps completed successfully failedOne or more critical steps failed, or the run was reaped as stale rejectedA gate was rejected by a team member
Method Path Description GET/orgs/:org/repos/:repo/flaresGet flare count and whether the current user has flared POST/orgs/:org/repos/:repo/flareFlare a repository DELETE/orgs/:org/repos/:repo/flareRemove your flare
Method Path Description GET/orgs/:org/webhooksList org-level webhooks POST/orgs/:org/webhooksCreate an org-level webhook DELETE/orgs/:org/webhooks/:idDelete a webhook GET/orgs/:org/webhooks/:id/deliveriesView delivery history POST/orgs/:org/webhooks/:id/pingSend a test ping
Method Path Description GET/orgs/:org/agentsList configured agents POST/orgs/:org/agentsCreate an agent PUT/orgs/:org/agents/:idUpdate an agent DELETE/orgs/:org/agents/:idDelete an agent GET/orgs/:org/agent-configGet org-level LLM provider config POST/orgs/:org/agent-configSave org-level LLM provider config
Method Path Description GET/tokensList your PATs (shows name, prefix, expiry date) POST/tokensCreate a new PAT. Body: {"name":"<name>","expiry_days":<days>} — set expiry_days to 0 for no expiration DELETE/tokens/:idRevoke a PAT
Method Path Description GET/orgs/:org/repos/:repo/settings/protectionGet branch protection rules PUT/orgs/:org/repos/:repo/settings/protectionCreate or update branch protection
VeloGit uses standard HTTP status codes:
Code Meaning 200 OKRequest succeeded 201 CreatedResource successfully created 400 Bad RequestInvalid input parameters 401 UnauthorizedMissing or invalid authentication 403 ForbiddenAuthenticated but lacking permission 404 Not FoundResource does not exist 500 Internal Server ErrorUnexpected server error