SDK Status
A Python SDK is planned to cut the boilerplate of calling the REST API. There is no PyPI package yet; call the API over HTTP as shown below.
1. Stable Integration Baseline
Until an SDK ships, call the REST API over HTTP: POST https://api.sequenxai.com/v1/forecast, with history as unique_id, ds and y. Complete curl, Python and JavaScript examples are in the Quickstart.
{
"series": [{"unique_id": "sensor_01", "ds": "2026-09-01T00:00:00Z", "y": 24.5}],
"h": 24,
"freq": "1h",
"level": [80, 90],
"clean_series": true
}2. SDK Release Prerequisites
- A public or controlled evaluation environment with real authentication and error responses.
- Generated SDK models synchronized and tested against
openapi.yaml. - Documented boundaries for Pandas, Polars, and Apache Arrow zero-copy serialization.
- Validated PyPI distribution with semantic versioning, backoff policies, and automated integration tests.
3. Transition Pattern: Zero-SDK Native HTTP Client
Before the official package is distributed to PyPI, teams can interact with the API using standard Python HTTP libraries (such as httpx or requests) with zero external proprietary dependencies.
Below is a minimal httpx example that calls the live API. Create the API Key on the SequenxAI Platform (the free tier is enough) and send at least the model's minimum context of history (see Models & Limits):
import math
import os
import httpx
API_URL = "https://api.sequenxai.com/v1/forecast"
API_KEY = os.environ["SEQUENX_API_KEY"] # sqx_live_..., created at https://platform.sequenxai.com
# 48 hourly observations: above every model's minimum context.
series = [
{
"unique_id": "sensor_01",
"ds": f"2026-09-{1 + i // 24:02d}T{i % 24:02d}:00:00Z",
"y": round(24 + 3 * math.sin(2 * math.pi * i / 24), 2),
}
for i in range(48)
]
payload = {"model": "hora-1.0", "series": series, "h": 12, "freq": "1h", "level": [80, 90]}
with httpx.Client(timeout=180.0) as client:
response = client.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
json=payload,
)
response.raise_for_status()
result = response.json()
# Parse point predictions and confidence intervals
for item in result["forecast"]:
y_hat = item["y_hat"]
p80 = item["intervals"]["80"]
print(f"[{item['ds']}] y_hat: {y_hat:.2f} (80% interval: {p80['lo']} ~ {p80['hi']})")
# Verify data quality audit notes
quality = result.get("data_quality", {})
print(f"Cleaning status: {quality.get('status')}, Imputed points: {quality.get('imputed_points')}")4. Polars / Arrow plans
The API takes JSON long-table payloads today. Polars and Arrow support will be designed together with the SDK, aiming to:
- Map long-table fields one-to-one onto DataFrame columns, in both directions.
- Define the serialization format, memory-copy behavior and per-request payload limits.
- Benchmark Pandas, Polars and Arrow on real data before settling the design.