Documentation
Public forge API
Read public namespaces, repositories, source, Change Requests, Issues, forks, and Actions.
The public forge API serves disclosure-safe data from the same canonical repository model as upstream.codes pages.
Base path
https://upstream.codes/api/forge/public
Public GET requests need no authentication. Private and internal objects return not found unless the browser carries an authorized session.
Namespaces and repositories
curl https://upstream.codes/api/forge/public/namespaces/{namespace}
curl https://upstream.codes/api/forge/public/namespaces/{namespace}/repositories
curl https://upstream.codes/api/forge/public/namespaces/{namespace}/repositories/{repository}
Namespace responses include public presentation, repositories, pins, contribution settings, and viewer-safe capabilities. Hidden profiles and private repositories have no public representation.
Source and history
Repository routes expose source trees, files, raw files, branches, commits, individual commits, ref resolution, and comparisons. Query parameters select the ref, path, base, or head where required.
.../{repository}/tree
.../{repository}/file
.../{repository}/raw
.../{repository}/branches
.../{repository}/commits
.../{repository}/compare
Collaboration
.../{repository}/changes
.../{repository}/changes/{number}
.../{repository}/issues
.../{repository}/issues/{number}
.../{repository}/actions
Change Request detail, diffs, version-pinned checks and reviews, Issue discussion, forks, and workflow runs use nested routes beneath those collections.
Some contributor mutations accept a signed-in browser session, but they are not anonymous automation endpoints. Read API authentication before building a client.
Contracts
All responses use the standard HTTP API envelopes. Published operation summaries are available from OpenAPI.