Get a registry package with its tags
GET/api/owners/{handle}/packages/{package}
getPackage
The package, its tags newest push first, and each tag's push provenance: digest, media type, size, who pushed it and — when a CI job pushed it and the caller can read that run's repo — the run and the commit it built. Authorized by the same decision the pull path asks; a package the caller could not pull is a 404, indistinguishable from an unknown name.
Authentication is not described for this operation in the spec — that does not mean it is public. Check tokens and scopes.
curl
curl -X GET 'https://neosource.dev/api/owners/HANDLE/packages/PACKAGE'fetch
fetch("https://neosource.dev/api/owners/HANDLE/packages/PACKAGE", {
method: "GET",
});Path parameters
handlerequiredHandle of the owner — either a user account or an organization.
packagerequiredThe package name (the `{package}` in `/v2/{owner}/{package}`).
Responses
200Package detail
application/json
403Forbidden — one of: forbidden, needs_scope
application/json
Standard errors
Bodies documented once for the whole API — see standard errors.
- 400Bad Request — one of: invalid_input
- 404Not Found — one of: not_found
- 429Rate limited — retry after the `Retry-After` header
- 500Internal server error
- 503Service temporarily unavailable / at capacity — retry after the `Retry-After` header
- 504Gateway timeout — the request exceeded the server's handling budget
Schemas
Referenced above. Listed here rather than expanded inline, so the same definition is not repeated at every level.
RepoVisibilityInput
"public""internal""private"
PackageTagRun
The CI run a tag's latest push came from, shown only to a caller who can read that run's repo.
commit_shaThe commit (40-char git hex) the run built; `null` for a run with no single commit target (a schedule, a legacy manual row).
ownerrequiredHandle of the run's repo owner.
reporequiredThe run's repo slug.
run_idrequired