Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Models Tools & Services
Solutions
Organisations Developers Internet Service Providers Managed Service Providers AI-in-a-Box
Resources
Support Documentation Blog Downloads
Company
About Research Careers Investment Opportunities Contact
Log in

Quickstart

From zero to pulling a model in a few minutes. This uses the Python SDK; the same operations are available over the REST API.

1. Install#

bash
1
pip install scaiatlas

Requires Python 3.9+. The SDK depends only on httpx and pydantic.

2. Authenticate#

The fastest path is an API key. Create one in the web UI (or ask an admin), then:

bash
1
2
export SCAIATLAS_API_KEY=sk_live_xxxxxxxxxxxxxxxxxxxx
export SCAIATLAS_BASE_URL=https://api.scaiatlas.io   # your registry endpoint
python
1
2
3
4
5
from scaiatlas import ScaiAtlas

client = ScaiAtlas.from_env()          # reads SCAIATLAS_API_KEY / SCAIATLAS_BASE_URL
# or explicitly:
client = ScaiAtlas(api_key="sk_live_...", base_url="https://api.scaiatlas.io")

Interactive users can log in through the browser (OAuth PKCE) or a headless device flow instead — see Authentication.

3. Browse#

python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Namespaces you can see
for ns in client.namespaces.list_all():
    print(ns.name, "→", ns.model_count, "models")

# Models in a namespace
for model in client.models.list_all("poolnoodle"):
    print(model.full_name, model.type)

# Versions of a model
for v in client.versions.list_all("poolnoodle", "noodletron"):
    print(v.version, v.status, f"{v.total_size} bytes")

4. Download a version#

python
1
2
3
4
5
6
7
8
9
from pathlib import Path

files = client.download.version(
    "poolnoodle", "noodletron", "1.0.0",
    destination=Path("./noodletron"),
    verify_checksum=True,          # verifies SHA-256 of every file
    resume=True,                   # resume partial files on re-run
)
print("Downloaded:", [str(f) for f in files])

5. Publish a model#

python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Create the model (type is required)
client.models.create("poolnoodle", "noodletron", type="llm",
                     display_name="Noodletron", tags=["demo"])

# Upload a version — the session creates the version, streams files, and finalizes
with client.upload.version("poolnoodle", "noodletron", "1.0.0",
                           format="safetensors") as up:
    up.add_file("model.safetensors")
    up.add_file("config.json")
    version = up.complete()

print("Published", version.full_name, "→", version.status)

Same thing from the shell (CLI)#

bash
1
2
3
4
5
6
7
scaiatlas config init --url https://api.scaiatlas.io
scaiatlas config login

scaiatlas namespace list
scaiatlas model create poolnoodle noodletron --type llm
scaiatlas model search "llama"
scaiatlas version download poolnoodle/noodletron:1.0.0

Where to go next#

Updated 2026-07-16 01:40:59 View source (.md) rev 1