GraphiteGraphite by Augsidius
Using the API

SDKs & examples

The API is compatible with OpenAI client libraries. Set the base URL to https://api.augsidius.care/v1 and use your Augsidius key. Augsidius options go in extra_body (Python) or as an extra request property (Node.js).

Reading JSONL results

aug-extract, aug-care-model and aug-cds return JSONL in message.content. Parse it line by line:

import json, os
from openai import OpenAI

client = OpenAI(base_url="https://api.augsidius.care/v1", api_key=os.environ["AUGSIDIUS_API_KEY"])

r = client.chat.completions.create(
    model="aug-cds",
    messages=[{"role": "user", "content": "58M on metformin. Fever, headache, neck stiffness. eGFR 25."}],
)
cards = [json.loads(l)["card"] for l in r.choices[0].message.content.splitlines() if l.strip()]
for c in cards:
    print(c["indicator"], c["summary"])
summary = r.choices[0].message.model_extra["augsidius"]          # cds.summary

Streaming

Python
stream = client.chat.completions.create(
    model="aug-evidence-qa", stream=True, stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "First-line treatment for community-acquired pneumonia in a healthy adult?"}],
)
citations = []
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
        if chunk.choices[0].finish_reason == "stop":
            citations = chunk.model_extra["augsidius"]["citations"]
    elif chunk.usage:
        print("\nunits:", chunk.usage.model_extra["augsidius_units"])

NDJSON without an SDK

Python
import httpx, json, os

with httpx.stream("POST", "https://api.augsidius.care/v1/chat/completions", timeout=180,
                  headers={"Authorization": f"Bearer {os.environ['AUGSIDIUS_API_KEY']}",
                           "Accept": "application/x-ndjson"},
                  json={"model": "aug-cds", "stream": True,
                        "messages": [{"role": "user", "content": "…case summary…"}]}) as r:
    for line in r.iter_lines():
        item = json.loads(line)
        if item["object"] == "cds.card":
            print(item["card"]["indicator"], item["card"]["summary"])
        elif item["object"] == "error":
            raise RuntimeError(item["message"])

Retries

Retry 429 and 5xx with exponential backoff (1 s, 2 s, 4 s, 8 s; at most 5 attempts) and send an Idempotency-Key header so a retried call is never billed twice. Do not retry 400, 401, 403 or 404 unchanged.

MCP

The same four capabilities are available to AI agents as MCP tools at https://api.augsidius.care/mcp (Streamable HTTP, Authorization: Bearer aug_…): evidence_qa, extract_entities, care_model, decision_cards and list_models. Tool calls use the same scopes, limits and per-call prices as the API.

Typed helpers (coming soon)

augsidius (Python) and @augsidius/sdk (TypeScript) will add typed models for every response type, session helpers and automatic retries.