Resource model
Everything in ScaiAtlas is addressed by a short hierarchy. Understanding it is 90% of understanding the API.
1 | |
Namespace#
A namespace is an ownership and access-control boundary — one team, org, or project. It owns models and holds the member roster.
| Field | Meaning |
|---|---|
name |
Unique slug, 2–64 chars, ^[a-z0-9][a-z0-9-]*[a-z0-9]$ (e.g. poolnoodle). |
display_name |
Human-friendly name. |
visibility |
public (anyone), tenant (same ScaiKey tenant), or private (explicit members only). |
owner_tenant_id |
The tenant that owns the namespace. |
model_count |
Number of models inside. |
Visibility drives default read access; per-member roles (owner → admin → member → viewer) grant finer permissions. See Authentication.
Model#
A model is a named product inside a namespace (poolnoodle/noodletron). It carries
metadata that's stable across versions.
| Field | Meaning |
|---|---|
name |
Slug, 1–128 chars, ^[a-zA-Z0-9][a-zA-Z0-9._-]*$. |
full_name |
namespace/name (e.g. poolnoodle/noodletron). |
type |
One of the model types — llm, embedding, vision_language, … (required). |
license |
SPDX-style license id, optional. |
capabilities |
Free-form JSON describing what the model can do. |
modalities |
{input: [...], output: [...]} modality lists. |
tags |
Free-form labels for search and filtering. |
version_count, download_count |
Rollup counters. |
Version#
A version is an immutable, semantically-versioned release of a model.
| Field | Meaning |
|---|---|
version |
Semver: ^\d+\.\d+\.\d+(-[a-zA-Z0-9.]+)?$ (1.0.0, 2.1.0-beta.1). |
full_name |
namespace/model:version. |
format |
Primary format of the upload (safetensors, gguf, onnx, …). |
release_notes |
Human-readable notes for the release. |
requirements |
Free-form JSON of runtime requirements. |
files |
The file list, each with path, size, checksum_sha256. |
total_size, checksum_sha256 |
Aggregate size and manifest checksum. |
status |
Lifecycle — see below. |
variant_count |
Number of format variants attached. |
Version lifecycle (status)#
1 2 3 | |
uploading— created, files being pushed.processing— server finalizing/validating.ready— available for download. (The API also accepts the legacy valueavailable, which is normalized toready.)deprecated— still downloadable, discouraged.deleted— soft-deleted.failed— upload/finalize failed.
Variant#
A variant is an alternative representation of a version — typically a different format or quantization. The original upload is the primary variant; conversions (e.g. a GGUF Q4_K_M build of a safetensors original) are additional variants.
| Field | Meaning |
|---|---|
variant_name |
Slug, ≤64 chars (e.g. gguf-q4_k_m, awq-int4). |
format |
safetensors, pytorch, gguf, onnx, other. |
quantization |
Quantization label, if any (Q4_K_M, int4). |
is_primary |
true for the original upload. |
status |
pending → converting → available (or failed). |
files |
The variant's files with checksums. |
Files#
The leaf level. Every file records a path (relative within the version/variant),
a size in bytes, and a checksum_sha256. Downloads verify these checksums; the
registry never hands out files whose bytes don't match.
Putting it together#
1 2 3 4 | |
Tip: anywhere a version string is expected, the literal
latestresolves to the highest semantic version.