Find and download artifacts
Discover the branch and catalog
These examples require curl and jq. They are anonymous, read-only requests to the public production endpoint.
export REGISTRY=https://models-registry.neat.sima.ai
curl --fail-with-body "$REGISTRY/v1/repositories" | jq .
curl --fail-with-body "$REGISTRY/v1/repositories/sima-neat/models/branches" | jq .
curl --fail-with-body --get \
"$REGISTRY/v1/repositories/sima-neat/models/catalogs/current" \
--data-urlencode 'git_ref=refs/heads/main' | jq .
Choose a git_ref returned by the branch catalog; main above is an example.
Use complete refs such as refs/heads/main, not just main. An unpublished or
tombstoned branch returns 404 for its current catalog.
Search available models
curl --fail-with-body --get \
"$REGISTRY/v1/repositories/sima-neat/models/models" \
--data-urlencode 'git_ref=refs/heads/main' \
--data-urlencode 'limit=20' | jq .
Model search returns models, has_more, and next_cursor. Pass the opaque
next_cursor as cursor on the next request, preserving the branch and filters.
Do not parse or construct cursors. They are bound to the snapshot and filters;
restart discovery when the current snapshot changes. Consult the reference for
filters including model type, task, architecture, modality, and tag. Multiple
values within an array facet use OR; separate facets use AND.
For build history, use /v1/repositories/sima-neat/models/runs with git_ref,
run_type, status, or commit_sha. It returns runs, has_more, and
next_cursor. latest_per_model_compiler=true selects the latest matching
logical model build for each compiler version before pagination.
Inspect evidence and request a download
Choose the run ID and artifact name from the catalog/build or run response. The placeholders below must be replaced with returned identifiers.
RUN_ID='<run-id>'
ARTIFACT_NAME='<artifact-name>'
curl --fail-with-body "$REGISTRY/v1/runs/$RUN_ID" | jq .
curl --fail-with-body "$REGISTRY/v1/runs/$RUN_ID/provenance" | jq .
curl --fail-with-body "$REGISTRY/v1/runs/$RUN_ID/test-results" | jq .
curl --fail-with-body "$REGISTRY/v1/runs/$RUN_ID/metrics" | jq .
metadata=$(curl --fail-with-body --get \
"$REGISTRY/v1/runs/$RUN_ID/artifacts/$ARTIFACT_NAME" \
--data-urlencode 'expires_in=300')
download_url=$(printf '%s' "$metadata" | jq -er '.artifact.download_url')
curl --fail --location "$download_url" --output artifact.bin
The metadata GET returns an artifact object containing a short-lived
download_url; it does
not return the artifact bytes. Expiry is 60–900 seconds, default 300. Download
promptly and request a fresh URL if it expires. Verify the downloaded size and
SHA-256 against the registered metadata. Treat signed URLs as temporary bearer
credentials: avoid logging or sharing them. Do not add API authorization headers
to the S3 download or modify its query string.
To find benchmark and accuracy evidence, read the catalog model’s
benchmark_fingerprints for the selected build profile. Resolve each fingerprint
through the repository /resolve endpoint using run_type=model_performance or
run_type=model_accuracy, then inspect the resolved run’s artifacts, test
results, and metrics. Missing results are not proof that a model passed validation.
Resolve an exact reusable build
Call /v1/repositories/sima-neat/models/resolve with required run_type and
fingerprint and optional fingerprint_version (default 1). The fingerprint is
64 lowercase hexadecimal characters produced using the same canonicalization
and version as the publisher. Do not substitute a model name or source commit.
A 404 means no matching resolvable result is available. Fall back to your build
workflow and publish its result if your identity is authorized to do so.