Skip to main content

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.