> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atomscale.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK

> Programmatic access to Atomscale for automation and custom analysis

The `atomscale` Python SDK provides programmatic access to the Atomscale platform, enabling you to upload data, search the catalogue, retrieve analysis results, and stream RHEED video in real time.

## Features

* **Upload files** - Send RHEED videos, images, XPS, photoluminescence, and Raman data for automated analysis
* **Search the catalogue** - Query your data with filters for type, status, date ranges, and keywords
* **Retrieve results** - Access time series data, extracted frames, pattern graphs, and processed videos
* **Organize by sample and project** - Group data across runs and align timeseries from multiple instruments
* **Stream data** - Push RHEED frames and instrument readings for live analysis
* **Poll updates** - Monitor streaming analysis with synchronous or async polling utilities

## Quick example

```python theme={null}
from atomscale import Client

client = Client()  # Uses AS_API_KEY environment variable

# Search for recent uploads
results = client.search(keywords="GaN", status="success")
print(results[["Data ID", "Status", "Sample Name"]])

# Get analysis for the first result
data_id = results["Data ID"].iloc[0]
analysed = client.get(data_id)

# Access time series data
timeseries = analysed[0].timeseries_data
print(timeseries.tail())
```

## Installation

```bash theme={null}
pip install atomscale
```

Requires Python 3.10 through 3.12.

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/sdk/quickstart">
    Install the SDK and create your first client.
  </Card>

  <Card title="Upload Data" icon="upload" href="/sdk/upload-data">
    Send files to Atomscale for analysis.
  </Card>

  <Card title="Search Data" icon="magnifying-glass" href="/sdk/search-data">
    Find items in your data catalogue.
  </Card>

  <Card title="Inspect Results" icon="chart-line" href="/sdk/inspect-results">
    Work with analysis outputs.
  </Card>
</CardGroup>

<CardGroup cols={2}>
  <Card title="Samples & Projects" icon="layer-group" href="/sdk/samples-projects">
    Group data and align timeseries across instruments.
  </Card>

  <Card title="Stream RHEED" icon="video" href="/sdk/stream-rheed">
    Push frames from your instrument in real time.
  </Card>

  <Card title="Stream Metrology" icon="temperature-half" href="/sdk/stream-metrology">
    Push instrument readings for real-time tracking.
  </Card>

  <Card title="Poll Time Series" icon="clock" href="/sdk/poll-timeseries">
    Monitor streaming analysis updates.
  </Card>
</CardGroup>

## API reference

<CardGroup cols={2}>
  <Card title="Client Reference" icon="code" href="/sdk/reference/client">
    Full Client class documentation.
  </Card>

  <Card title="Streaming Reference" icon="code" href="/sdk/reference/streaming">
    RHEEDStreamer and TimeseriesStreamer documentation.
  </Card>
</CardGroup>
