Skip to main content

Atlas Python SDK

Official Python SDK for the Atlas API.

Installation

pip install wattslab-atlas

Quick Start

Create an Atlas API key in the web app, then pass it directly or set ATLAS_API_KEY.

from wattslab_atlas import AtlasClient

client = AtlasClient(api_key="atlas_...")

features = client.list_features()
for feature in features:
    print(f"{feature.feature_name}: {feature.feature_description}")

papers = client.list_papers()
print(f"You have {papers.total_papers} papers")

You can also use an environment variable:

export ATLAS_API_KEY="atlas_..."
from wattslab_atlas import AtlasClient

client = AtlasClient()
projects = client.list_projects()

Authentication

API-key authentication is the recommended SDK path. The client sends the key as X-API-Key on every request.

client = AtlasClient(api_key="atlas_...")
client.set_api_key("atlas_new_key")

The older magic-link flow is still available for compatibility:

client = AtlasClient()
client.login("user@example.com")
client.validate_magic_link("token-from-email")

Usage

Working with Features

from wattslab_atlas.models import FeatureCreate

features = client.list_features()

feature = FeatureCreate(
    feature_name="Sample Size",
    feature_description="Number of participants",
    feature_identifier="sample_size",
    feature_prompt="Extract the total number of participants in the study.",
    feature_type="number",
)
created = client.create_feature(feature)

client.delete_feature(created.id)

Choosing a model & provider for a project

from wattslab_atlas import AVAILABLE_MODELS

# See the curated model list per provider.
print(AVAILABLE_MODELS)
# {'atlas': ['gpt-5.4-mini', ...], 'openrouter': ['openai/gpt-5.4-mini',
#  'anthropic/claude-opus-4.8'], ...}

# Use Atlas' shared key (metered against your monthly budget) with the default model.
client.set_project_llm(project_id, provider="atlas")

# Or use your own OpenRouter key (billed by OpenRouter, not metered).
client.set_project_llm(
    project_id,
    provider="openrouter",
    model="anthropic/claude-opus-4.8",
)

Providers other than atlas require a saved key for that provider in Settings → Usage & Keys. model=None uses the provider's default.

Working with Papers

papers = client.list_papers(page=1, page_size=10)

result = client.upload_paper(
    project_id="project-123",
    file_path="paper.pdf",
)
task_id = result["paper.pdf"]

status = client.check_task_status(task_id)
client.reprocess_paper(paper_id, project_id)

Managing Projects

features = client.get_project_features(project_id)

client.update_project_features(
    project_id,
    feature_ids=["feat1", "feat2"],
)

client.remove_project_features(
    project_id,
    feature_ids=["feat1"],
)

result = client.reprocess_project(project_id)

Error Handling

from wattslab_atlas import AtlasClient, APIError, ResourceNotFoundError

client = AtlasClient(api_key="atlas_...")

try:
    features = client.list_features()
except APIError as exc:
    print(f"Atlas API error: {exc}")
except ResourceNotFoundError as exc:
    print(f"Resource not found: {exc}")

Requirements

  • Python 3.10+
  • Atlas API key

Metadata

Release files for wattslab-atlas 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wattslab-atlas 1.3.2
File Size Uploaded Provenance
wattslab_atlas-1.3.2.tar.gz 19.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wattslab-atlas 1.3.2
File Interpreter ABI Platform
wattslab_atlas-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 35.5 kB

Release files / wattslab_atlas-1.3.2.tar.gz

Download URL wattslab_atlas-1.3.2.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
457667cad2d240f527ff0921c070f5d4b72f305f69798234ac6fa4716f51d9be
BLAKE2b-256 checksum
How to use checksums
67bae9cf6c7a3689efdeb4b392daac44c9464ea70c0ea8763f1dd39c61b85ca6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / wattslab_atlas-1.3.2-py3-none-any.whl

Download URL wattslab_atlas-1.3.2-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca1bb6d532760aa07c4d89ca9e8b51d72bc8a972a543fda27f072b4144ccde94
BLAKE2b-256 checksum
How to use checksums
119c5bb43c4d323856c5503ee5cd2f3e779fed1b93d9efcdf72ec8828f0ae0b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Security for wattslab-atlas 1.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page