workflow · Listed · Found · 75 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
75 endpoints — confirm price on manifest before pay.
Category · Gateway
workflow · no Gateway routes yet — early / unproven on Cleared market share.
Endpoint hints
GET /api/repo-urls/{repo_id}Resolve the repository URL path for an internal repository ID in the current organisation. The returned `url` is the value clients use in the JWT `repo` claim.
GET /api/reposList repositories for the current organisation with cursor-based pagination. Supply `q` to filter results by a case-insensitive substring match against the repo
POST /api/reposCreate a repository using the repo name embedded in the JWT. You can start empty, mirror an upstream repository, or fork another Code Storage repository into a
GET /api/repos/{repo_name}Fetch repository metadata for the repository identified by the JWT `repo` claim. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
GET /api/repos/{repo_name}Change the default branch of the repository identified by the JWT `repo` claim. The gateway reads the current `HEAD` symbolic ref, then repoints it at the requ
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. #### JWT claims Required scop
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. #### JWT claims Required
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 Repo Url By Id
$MeteredGET https://code.storage/api/repo-urls/{repo_id}Resolve the repository URL path for an internal repository ID in the current organisation. The returned `url` is the value clients use in the JWT `repo` claim. #### JWT claims Required scopes: `org:read` Requires per repo scope: No
List Repos
$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 the repository `url` (for example `pierre/sdk-documentation`). #### JWT claims Required scopes: `org:read` Requires per repo scope: No
Create Repo
$MeteredPOST https://code.storage/api/reposCreate a repository using the repo name embedded in the JWT. You can start empty, mirror an upstream repository, or fork another Code Storage repository into a new independent repo. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
Get Repo
$MeteredGET https://code.storage/api/repos/{repo_name}Fetch repository metadata for the repository identified by the JWT `repo` claim. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
Update Repository Settings
$MeteredGET https://code.storage/api/repos/{repo_name}Change the default branch of the repository identified by the JWT `repo` claim. 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
Get Branch
$MeteredGET https://code.storage/api/repos/{repo_name}/branchGet one branch by its exact short name. The response omits list pagination fields. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
Delete Branch
$MeteredGET https://code.storage/api/repos/{repo_name}/branchesDelete a branch from the repository. The default branch is protected and cannot be deleted through this endpoint. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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`. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
Create or Append 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
Delete Note
$MeteredGET https://code.storage/api/repos/{repo_name}/notesRemove the Git note attached to a commit or other Git object SHA. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
Pull Upstream
$MeteredPOST https://code.storage/api/repos/{repo_name}/pull-upstreamTrigger a sync from the configured upstream for the repository in the JWT `repo` claim. This only works for repositories that were created with an upstream `base_repo`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes
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. #### JWT claims Required scopes: `git:read`, `git:write` Requires per repo scope: Yes
Get Repo
$MeteredGET https://code.storage/api/v1/repoFetch repository metadata for the repository identified by the JWT `repo` claim. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}` instead.
Update Repository Settings
$MeteredGET https://code.storage/api/v1/repoChange the default branch of the repository identified by the JWT `repo` claim. 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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 the repository `url` (for example `pierre/sdk-documentation`). #### JWT claims Required scopes: `org:read` Requires per repo scope: No Deprecated: Use `/api/repos` instead.
Create Repo
$MeteredPOST https://code.storage/api/v1/reposCreate a repository using the repo name embedded in the JWT. You can start empty, mirror an upstream repository, or fork another Code Storage repository into a new independent repo. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/base` 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/branches` instead.
Delete Branch
$MeteredGET https://code.storage/api/v1/repos/branchesDelete a branch from the repository. The default branch is protected and cannot be deleted through this endpoint. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/branches/diff` 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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`. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `repo:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/notes` instead.
Create or Append 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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 SHA. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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 for the repository in the JWT `repo` claim. This only works for repositories that were created with an upstream `base_repo`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/pull-upstream` 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`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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`. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:write` Requires per repo scope: Yes 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. #### JWT claims Required scopes: `git:read`, `git:write` Requires per repo scope: Yes Deprecated: Use `/api/repos/{repo_name}/tags/{tag_name}` instead.
Checks
reachable
valid
2026-08-31T19:02:55.402Z
Recheck delta: +15 (55 → 70)
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