workflow · Listed · Found · 78 endpoints · Gateway-eligible
code.storage
code.storage
The Code Storage HTTP API exposes repository management, Git reads, and write workflows over plain HTTPS. ## Authentication Send a signed JWT in the `Authoriz
Indexed from this operator's public /.well-known/x402.json. Found is not operator-owned and is not attested. Claim or opt out.
Agent Read · Cleared Index
ROUTE
Route when you need workflow at published x402 prices.
confidence
78%
source
signal
Index before you pay. Same payload for agents:
GET /api/cleared/agent-read?slug=code-storage-zujs
When to call
- Need workflow via x402 and want Cleared-indexed payTo with a live scorecard.
- The Code Storage HTTP API exposes repository management, Git reads, and write workflows over plain HTTPS. ## Authentication Send a signed JWT in the `Authoriz
Risks
- Found — not operator-owned; claim status unknown.
- No Cleared settlement receipt on file yet.
- No Gateway traffic yet — market share unproven.
Price posture
78 endpoints — confirm price on manifest before pay.
Category · Gateway
workflow · no Gateway routes yet — early / unproven on Cleared market share.
Endpoint hints
GET /api/metaReturn the cloud provider, region, and public inbound IP addresses of the Code Storage cluster that serves the current organisation. Addresses are listed separa
GET /api/reposList repositories for the current organisation with cursor-based pagination. Supply `q` to filter results by a case-insensitive substring match against `repo_na
POST /api/reposCreate a repository. A repository starts empty or from a source. `base_repo` is a one-time copy of a Code Storage repository; `upstream` is a lasting link to a
GET /api/repos/{repo_name}Fetch the metadata of a repository. Scope: `git:read` on the repository.
GET /api/repos/{repo_name}Change the default branch of a repository. The gateway reads the current `HEAD` symbolic ref, then repoints it at the requested branch through a transactional
GET /api/repos/{repo_name}Permanently retire a repository. The API performs a soft delete first and then triggers asynchronous hot and cold storage cleanup. Scope: `repo:write` on the r
POST /api/repos/{repo_name}/archiveDownload a repository snapshot without cloning the repo. This is useful for packaging docs, examples, or release artefacts directly from a branch, tag, or commi
GET /api/repos/{repo_name}/baseDetach the repository from its configured upstream provider. The operation is idempotent: already-detached repositories return success. `DELETE /api/repos/{rep
Evidence (Cleared)
- → Intake verified · Gateway-eligible
- → Trust 70/100 · pass · tier listed
- → Protocol mpp
- → Manifest reachable · schema valid
- → Found listing — indexed from public x402.json, not operator-attested.
Endpoints
Get Organization Metadata
Not used$MeteredGET https://code.storage/api/metaReturn the cloud provider, region, and public inbound IP addresses of the Code Storage cluster that serves the current organisation. Addresses are listed separately for Git over HTTPS and for the HTTP API; allow them in firewall rules that restrict outbound traffic to Code Storage. The lists change when the cluster's ingress changes, so poll this endpoint rather than copying them once. Scope: `org:read`.
List Repos
Not used$MeteredGET https://code.storage/api/reposList repositories for the current organisation with cursor-based pagination. Supply `q` to filter results by a case-insensitive substring match against `repo_name` (for example `pierre/sdk-documentation`). Scope: `org:read`.
Create Repo
Not used$MeteredPOST https://code.storage/api/reposCreate a repository. A repository starts empty or from a source. `base_repo` is a one-time copy of a Code Storage repository; `upstream` is a lasting link to an external Git host. A copy takes the history of one commit (`base_repo.ref`, or the source HEAD) into one branch, and keeps no link to its source. A sync keeps its upstream, and the repository can sync from it again. Set at most one of the two. Create is idempotent on the repository name. A new repository returns `201`. When the name already exists, the request returns `200`, and a copy copies nothing. When the name exists with a different upstream, the request returns `409`. The deprecated form of `base_repo`, with `provider` and `operation`, still works. Scope: `repo:write` on the repository.
Get Repo
$MeteredGET https://code.storage/api/repos/{repo_name}Fetch the metadata of a repository. Scope: `git:read` on the repository.
Update Repository Settings
$MeteredGET https://code.storage/api/repos/{repo_name}Change the default branch of a repository. The gateway reads the current `HEAD` symbolic ref, then repoints it at the requested branch through a transactional compare-and-swap against that value, and finally records the new default branch in the repository row. Branch names are fully qualified for you: `main` is written as the symref target `refs/heads/main`, and a value that already starts with `refs/` is used verbatim. The branch itself is not created by this call. Scope: `repo:write` on the repository.
Delete Repo
$MeteredGET https://code.storage/api/repos/{repo_name}Permanently retire a repository. The API performs a soft delete first and then triggers asynchronous hot and cold storage cleanup. Scope: `repo:write` on the repository.
Archive
$MeteredPOST https://code.storage/api/repos/{repo_name}/archiveDownload a repository snapshot without cloning the repo. This is useful for packaging docs, examples, or release artefacts directly from a branch, tag, or commit. Scope: `git:read` on the repository.
Unset Base Repo
$MeteredGET https://code.storage/api/repos/{repo_name}/baseDetach the repository from its configured upstream provider. The operation is idempotent: already-detached repositories return success. `DELETE /api/repos/{repo_name}/upstream` replaces this endpoint. It returns the same responses. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/upstream` instead.
Blame
$MeteredGET https://code.storage/api/repos/{repo_name}/blameReturn per-line blame metadata for a file at a branch, tag, or commit. Supports `git blame -L`-style range filters and rename/copy detection for callers building IDE blame views or audit tooling. Scope: `git:read` on the repository.
Get Branch
$MeteredGET https://code.storage/api/repos/{repo_name}/branchGet one branch by its exact short name. The response omits list pagination fields. Scope: `git:read` on the repository.
List Branches
$MeteredGET https://code.storage/api/repos/{repo_name}/branchesList branches in the repository with cursor pagination. Use this to build branch selectors, review tools, or sync jobs without shelling out to Git. Scope: `git:read` on the repository.
Delete Branch
$MeteredGET https://code.storage/api/repos/{repo_name}/branchesDelete a branch from the repository. Name the branch with the `target_branch` and `ephemeral` query parameters. The server resolves the current branch tip before deleting, so the caller does not need the branch SHA. The default branch is protected and cannot be deleted through this endpoint. Scope: `git:write` on the repository.
Create Branch
$MeteredPOST https://code.storage/api/repos/{repo_name}/branches/createCreate a new branch from an existing branch or ref. This is useful for agent workflows, ephemeral previews, or server-side automation where you do not want to clone the repo first. Scope: `git:write` on the repository.
Get Branch Diff
$MeteredGET https://code.storage/api/repos/{repo_name}/branches/diffCompare a feature branch to its base branch and return every change that would be reviewed before a merge. Repeated `path` filters limit the diff to selected files and bypass the usual large-file filtering for those requested paths. `GET /api/repos/{repo_name}/diff` replaces this endpoint. Send `branch` as `ref`, `base` as `base_ref`, `ephemeral` as `ref_is_ephemeral`, and `ephemeral_base` as `base_is_ephemeral`. When you omit `base`, this endpoint diffs against the repository default branch. When you omit `base_ref`, `/diff` returns the diff of one commit. To get the same diff, read `default_branch` from the repository and send it as `base_ref`. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/diff` with `ref` and `base_ref` instead.
Get Commit
$MeteredGET https://code.storage/api/repos/{repo_name}/commitResolve a branch name, short SHA, or full SHA to a commit and return the same metadata shape used in commit listings. Use this when you need commit details without computing a diff. Scope: `git:read` on the repository.
Create Commit from Files
$MeteredPOST https://code.storage/api/repos/{repo_name}/commit-packCreate a commit by streaming file operations directly to the service. This is designed for automation, AI agents, and other workflows that need atomic Git writes without running a local Git process. Scope: `git:write` on the repository.
List Commits
$MeteredGET https://code.storage/api/repos/{repo_name}/commitsList commit history for the repository default branch or for an explicit branch. Results are cursor-paginated and ordered by commit date, newest first. Set `path` to restrict the history to commits that modified a specific file or subtree. Scope: `git:read` on the repository.
Get Commit Diff
$MeteredGET https://code.storage/api/repos/{repo_name}/diffGet the diff for a commit, optionally relative to a specific base commit. Repeated `path` parameters narrow the diff to selected files or directories. Scope: `git:read` on the repository.
Create Commit from Diff
$MeteredPOST https://code.storage/api/repos/{repo_name}/diff-commitCreate a commit by streaming a Git patch instead of individual file blobs. Use this when your workflow already produces unified diffs or generated patches. Scope: `git:write` on the repository.
Get File
$MeteredGET https://code.storage/api/repos/{repo_name}/fileStream a file directly from the repository with byte ranges, ETag validators, and Last-Modified conditionals. Use `ref` to read from a branch, tag, or commit without cloning the repo locally. Scope: `git:read` on the repository.
List Files
$MeteredGET https://code.storage/api/repos/{repo_name}/filesList files or direct child entries at a branch, tag, or commit without cloning the repository. Each entry includes its path, Git mode, and derived type (`blob`, `tree`, `symlink`, or `submodule`). Trees no longer carry a trailing `/`; branch on `type` instead. Scope: `git:read` on the repository.
List Files with Metadata
$MeteredGET https://code.storage/api/repos/{repo_name}/files/metadataReturn a recursive file tree together with per-file commit metadata in one request. Each file also includes a derived `type` field for symmetry with `/files`. Scope: `git:read` on the repository.
Create Git Credential
$MeteredPOST https://code.storage/api/repos/{repo_name}/git-credentialsCreate a stored HTTPS credential for a repository configured with a generic Git upstream. Scope: `repo:write` on the repository.
Update Git Credential
$MeteredGET https://code.storage/api/repos/{repo_name}/git-credentials/{git_credential_id}Update a stored HTTPS credential for a generic Git upstream. Scope: `repo:write` on the repository.
Delete Git Credential
$MeteredGET https://code.storage/api/repos/{repo_name}/git-credentials/{git_credential_id}Delete a stored HTTPS credential for a generic Git upstream. Scope: `repo:write` on the repository.
Grep
$MeteredPOST https://code.storage/api/repos/{repo_name}/grepSearch a repository without cloning it. Results are paginated and can include surrounding context lines so downstream tools only fetch the relevant slices. Scope: `git:read` on the repository.
Merge Branch
$MeteredPOST https://code.storage/api/repos/{repo_name}/mergeMerge changes between branches without cloning the repository or shelling out to Git. This endpoint also supports promoting work from ephemeral branches into long-lived branches such as `main`. Omit `expected_target_sha` to merge into the current target tip and allow the gateway to retry stale target/repository movement internally; set `expected_target_sha` to require a strict target-tip precondition. GitHub-backed public targets currently do not use automatic retry. Scope: `git:write` on the repository.
Preview Merge
$MeteredGET https://code.storage/api/repos/{repo_name}/merge/previewPreview merge conflicts without creating commits, updating refs, or touching a working tree. When requested, conflict content is rendered from Git objects produced in request-local scratch storage. Scope: `git:read` on the repository.
Get Note
$MeteredGET https://code.storage/api/repos/{repo_name}/notesRead the Git note attached to a commit or other Git object SHA. Notes let you store review status, handoff details, or other context without changing repository contents. Scope: `git:read` on the repository.
Create Note
$MeteredPOST https://code.storage/api/repos/{repo_name}/notesAttach text to a Git object without changing the repository contents. Use notes for review markers, internal decisions, or other lightweight context. To add text to a note, use `POST /notes/append`. Scope: `git:write` on the repository.
Delete Note
$MeteredGET https://code.storage/api/repos/{repo_name}/notesRemove the Git note attached to a commit or other Git object. Name the note with the query parameters of `GET /notes`. The notes commit of the delete has the default author. Scope: `git:write` on the repository.
Append Note
$MeteredPOST https://code.storage/api/repos/{repo_name}/notes/appendAdd text to the note on a Git object, or create the note if the object has none. A retry after a success adds the text again. To make a retry safe, set `expected_notes_ref_sha` to the notes ref SHA that you read before the first request: a retry then fails with 409 and adds nothing. Scope: `git:write` on the repository.
List Notes Refs
$MeteredGET https://code.storage/api/repos/{repo_name}/notes/refsList Git notes refs under a notes ref prefix with cursor pagination. Use this to discover custom notes namespaces before reading individual notes. Scope: `git:read` on the repository.
Pull Upstream
$MeteredPOST https://code.storage/api/repos/{repo_name}/pull-upstreamTrigger a sync from the configured upstream of the repository. This only works for repositories that have an `upstream`. `POST /api/repos/{repo_name}/upstream/pull` replaces this endpoint. It takes the same request body and returns the same response. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/upstream/pull` instead.
Reset Branch to Commit
$MeteredPOST https://code.storage/api/repos/{repo_name}/reset-commitsCreate a new commit that resets a branch back to a specific commit SHA while preserving normal Git history. This is an alias of `restore-commit` and is served by the same handler; prefer `restore-commit` for new integrations. A successful reset responds with `201 Created`. Ref-level outcomes are reported in `result.status` and `result.success`, not by the status code alone, and failures raised by the restore itself come back in that same restore-result body. The problem-details schemas below describe gateway-level rejections such as `401`, `403` and `429`. Scope: `git:write` on the repository.
Restore Commit
$MeteredPOST https://code.storage/api/repos/{repo_name}/restore-commitCreate a new commit that resets a branch back to a specific commit SHA while preserving normal Git history. Ref-level outcomes are reported in `result.status` and `result.success`, not by the status code alone, and failures raised by the restore itself come back in that same restore-result body. The problem-details schemas below describe gateway-level rejections such as `401`, `403` and `429`. Scope: `git:write` on the repository.
Get Tag
$MeteredGET https://code.storage/api/repos/{repo_name}/tagGet one tag by its exact short name. The response returns the dereferenced commit SHA and omits internal fields. Scope: `git:read` on the repository.
List Tags
$MeteredGET https://code.storage/api/repos/{repo_name}/tagsList tags in lexical order with cursor pagination. The returned `sha` is the dereferenced commit SHA, even for annotated tags. Scope: `git:read` on the repository.
Create Tag
$MeteredPOST https://code.storage/api/repos/{repo_name}/tagsCreate a lightweight tag pointing to a specific commit. Annotated tags are not created through this endpoint. Scope: `git:write` on the repository.
Delete Tag
$MeteredGET https://code.storage/api/repos/{repo_name}/tags/{tag_name}Delete a tag from the repository. The server resolves the stored ref correctly for both lightweight and annotated tags. Scopes: `git:read` and `git:write` on the repository.
Delete Upstream
$MeteredGET https://code.storage/api/repos/{repo_name}/upstreamDetach the repository from its configured upstream provider. The operation is idempotent: already-detached repositories return success. Scope: `repo:write` on the repository.
Pull Upstream
$MeteredPOST https://code.storage/api/repos/{repo_name}/upstream/pullTrigger a sync from the configured upstream of the repository. This only works for repositories that have an `upstream`. Scope: `git:write` on the repository.
Get Repo
$MeteredGET https://code.storage/api/v1/repoFetch the metadata of a repository. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}` instead.
Update Repository Settings
$MeteredGET https://code.storage/api/v1/repoChange the default branch of a repository. The gateway reads the current `HEAD` symbolic ref, then repoints it at the requested branch through a transactional compare-and-swap against that value, and finally records the new default branch in the repository row. Branch names are fully qualified for you: `main` is written as the symref target `refs/heads/main`, and a value that already starts with `refs/` is used verbatim. The branch itself is not created by this call. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}` instead.
List Repos
$MeteredGET https://code.storage/api/v1/reposList repositories for the current organisation with cursor-based pagination. Supply `q` to filter results by a case-insensitive substring match against `repo_name` (for example `pierre/sdk-documentation`). Scope: `org:read`. Deprecated: Use `/api/repos` instead.
Create Repo
$MeteredPOST https://code.storage/api/v1/reposCreate a repository. A repository starts empty or from a source. `base_repo` is a one-time copy of a Code Storage repository; `upstream` is a lasting link to an external Git host. A copy takes the history of one commit (`base_repo.ref`, or the source HEAD) into one branch, and keeps no link to its source. A sync keeps its upstream, and the repository can sync from it again. Set at most one of the two. Create is idempotent on the repository name. A new repository returns `201`. When the name already exists, the request returns `200`, and a copy copies nothing. When the name exists with a different upstream, the request returns `409`. The deprecated form of `base_repo`, with `provider` and `operation`, still works. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos` instead.
Archive
$MeteredPOST https://code.storage/api/v1/repos/archiveDownload a repository snapshot without cloning the repo. This is useful for packaging docs, examples, or release artefacts directly from a branch, tag, or commit. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/archive` instead.
Unset Base Repo
$MeteredGET https://code.storage/api/v1/repos/baseDetach the repository from its configured upstream provider. The operation is idempotent: already-detached repositories return success. `DELETE /api/repos/{repo_name}/upstream` replaces this endpoint. It returns the same responses. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/upstream` instead.
Blame
$MeteredGET https://code.storage/api/v1/repos/blameReturn per-line blame metadata for a file at a branch, tag, or commit. Supports `git blame -L`-style range filters and rename/copy detection for callers building IDE blame views or audit tooling. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/blame` instead.
List Branches
$MeteredGET https://code.storage/api/v1/repos/branchesList branches in the repository with cursor pagination. Use this to build branch selectors, review tools, or sync jobs without shelling out to Git. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/branches` instead.
Delete Branch
$MeteredGET https://code.storage/api/v1/repos/branchesDelete a branch from the repository. Name the branch with the `target_branch` and `ephemeral` query parameters. The server resolves the current branch tip before deleting, so the caller does not need the branch SHA. The default branch is protected and cannot be deleted through this endpoint. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/branches` instead.
Create Branch
$MeteredPOST https://code.storage/api/v1/repos/branches/createCreate a new branch from an existing branch or ref. This is useful for agent workflows, ephemeral previews, or server-side automation where you do not want to clone the repo first. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/branches/create` instead.
Get Branch Diff
$MeteredGET https://code.storage/api/v1/repos/branches/diffCompare a feature branch to its base branch and return every change that would be reviewed before a merge. Repeated `path` filters limit the diff to selected files and bypass the usual large-file filtering for those requested paths. `GET /api/repos/{repo_name}/diff` replaces this endpoint. Send `branch` as `ref`, `base` as `base_ref`, `ephemeral` as `ref_is_ephemeral`, and `ephemeral_base` as `base_is_ephemeral`. When you omit `base`, this endpoint diffs against the repository default branch. When you omit `base_ref`, `/diff` returns the diff of one commit. To get the same diff, read `default_branch` from the repository and send it as `base_ref`. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/diff` with `ref` and `base_ref` instead.
Get Commit
$MeteredGET https://code.storage/api/v1/repos/commitResolve a branch name, short SHA, or full SHA to a commit and return the same metadata shape used in commit listings. Use this when you need commit details without computing a diff. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/commit` instead.
Create Commit from Files
$MeteredPOST https://code.storage/api/v1/repos/commit-packCreate a commit by streaming file operations directly to the service. This is designed for automation, AI agents, and other workflows that need atomic Git writes without running a local Git process. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/commit-pack` instead.
List Commits
$MeteredGET https://code.storage/api/v1/repos/commitsList commit history for the repository default branch or for an explicit branch. Results are cursor-paginated and ordered by commit date, newest first. Set `path` to restrict the history to commits that modified a specific file or subtree. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/commits` instead.
Delete Repo
$MeteredGET https://code.storage/api/v1/repos/deletePermanently retire a repository. The API performs a soft delete first and then triggers asynchronous hot and cold storage cleanup. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}` instead.
Get Commit Diff
$MeteredGET https://code.storage/api/v1/repos/diffGet the diff for a commit, optionally relative to a specific base commit. Repeated `path` parameters narrow the diff to selected files or directories. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/diff` instead.
Create Commit from Diff
$MeteredPOST https://code.storage/api/v1/repos/diff-commitCreate a commit by streaming a Git patch instead of individual file blobs. Use this when your workflow already produces unified diffs or generated patches. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/diff-commit` instead.
Get File
$MeteredGET https://code.storage/api/v1/repos/fileStream a file directly from the repository with byte ranges, ETag validators, and Last-Modified conditionals. Use `ref` to read from a branch, tag, or commit without cloning the repo locally. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/file` instead.
List Files
$MeteredGET https://code.storage/api/v1/repos/filesList files or direct child entries at a branch, tag, or commit without cloning the repository. Each entry includes its path, Git mode, and derived type (`blob`, `tree`, `symlink`, or `submodule`). Trees no longer carry a trailing `/`; branch on `type` instead. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/files` instead.
List Files with Metadata
$MeteredGET https://code.storage/api/v1/repos/files/metadataReturn a recursive file tree together with per-file commit metadata in one request. Each file also includes a derived `type` field for symmetry with `/files`. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/files/metadata` instead.
Create Git Credential
$MeteredPOST https://code.storage/api/v1/repos/git-credentialsCreate a stored HTTPS credential for a repository configured with a generic Git upstream. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/git-credentials` instead.
Update Git Credential
$MeteredGET https://code.storage/api/v1/repos/git-credentialsUpdate a stored HTTPS credential for a generic Git upstream. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/git-credentials/{git_credential_id}` instead.
Delete Git Credential
$MeteredGET https://code.storage/api/v1/repos/git-credentialsDelete a stored HTTPS credential for a generic Git upstream. Scope: `repo:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/git-credentials/{git_credential_id}` instead.
Grep
$MeteredPOST https://code.storage/api/v1/repos/grepSearch a repository without cloning it. Results are paginated and can include surrounding context lines so downstream tools only fetch the relevant slices. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/grep` instead.
Merge Branch
$MeteredPOST https://code.storage/api/v1/repos/mergeMerge changes between branches without cloning the repository or shelling out to Git. This endpoint also supports promoting work from ephemeral branches into long-lived branches such as `main`. Omit `expected_target_sha` to merge into the current target tip and allow the gateway to retry stale target/repository movement internally; set `expected_target_sha` to require a strict target-tip precondition. GitHub-backed public targets currently do not use automatic retry. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/merge` instead.
Preview Merge
$MeteredGET https://code.storage/api/v1/repos/merge/previewPreview merge conflicts without creating commits, updating refs, or touching a working tree. When requested, conflict content is rendered from Git objects produced in request-local scratch storage. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/merge/preview` instead.
Get Note
$MeteredGET https://code.storage/api/v1/repos/notesRead the Git note attached to a commit or other Git object SHA. Notes let you store review status, handoff details, or other context without changing repository contents. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/notes` instead.
Create Note
$MeteredPOST https://code.storage/api/v1/repos/notesAttach text to a Git object without changing the repository contents. Use notes for review markers, internal decisions, or other lightweight context. To add text to a note, use `POST /notes/append`. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/notes` instead.
Delete Note
$MeteredGET https://code.storage/api/v1/repos/notesRemove the Git note attached to a commit or other Git object. Name the note with the query parameters of `GET /notes`. The notes commit of the delete has the default author. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/notes` instead.
List Notes Refs
$MeteredGET https://code.storage/api/v1/repos/notes/refsList Git notes refs under a notes ref prefix with cursor pagination. Use this to discover custom notes namespaces before reading individual notes. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/notes/refs` instead.
Pull Upstream
$MeteredPOST https://code.storage/api/v1/repos/pull-upstreamTrigger a sync from the configured upstream of the repository. This only works for repositories that have an `upstream`. `POST /api/repos/{repo_name}/upstream/pull` replaces this endpoint. It takes the same request body and returns the same response. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/upstream/pull` instead.
Reset Branch to Commit
$MeteredPOST https://code.storage/api/v1/repos/reset-commitsCreate a new commit that resets a branch back to a specific commit SHA while preserving normal Git history. This is an alias of `restore-commit` and is served by the same handler; prefer `restore-commit` for new integrations. A successful reset responds with `201 Created`. Ref-level outcomes are reported in `result.status` and `result.success`, not by the status code alone, and failures raised by the restore itself come back in that same restore-result body. The problem-details schemas below describe gateway-level rejections such as `401`, `403` and `429`. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/reset-commits` instead.
Restore Commit
$MeteredPOST https://code.storage/api/v1/repos/restore-commitCreate a new commit that resets a branch back to a specific commit SHA while preserving normal Git history. Ref-level outcomes are reported in `result.status` and `result.success`, not by the status code alone, and failures raised by the restore itself come back in that same restore-result body. The problem-details schemas below describe gateway-level rejections such as `401`, `403` and `429`. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/restore-commit` instead.
List Tags
$MeteredGET https://code.storage/api/v1/repos/tagsList tags in lexical order with cursor pagination. The returned `sha` is the dereferenced commit SHA, even for annotated tags. Scope: `git:read` on the repository. Deprecated: Use `/api/repos/{repo_name}/tags` instead.
Create Tag
$MeteredPOST https://code.storage/api/v1/repos/tagsCreate a lightweight tag pointing to a specific commit. Annotated tags are not created through this endpoint. Scope: `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/tags` instead.
Delete Tag
$MeteredGET https://code.storage/api/v1/repos/tagsDelete a tag from the repository. The server resolves the stored ref correctly for both lightweight and annotated tags. Scopes: `git:read` and `git:write` on the repository. Deprecated: Use `/api/repos/{repo_name}/tags/{tag_name}` instead.
Checks
reachable
valid
2026-10-15T04:00:14.614Z
No settlement evidence found in chain signals.
Gateway routing
Score ≥70/100 — Cleared attestation pass. Route via Gateway before pay.
Claim this listing to upgrade to Cleared attestation.
Claim listing