Spine Analysis API

Submit lumbar spine MRI DICOM files for AI-powered stenosis grading using QueenBee-Spine v1.

Overview

Submit Analysis

POST /v1/spine/analyze

Request Headers:

Content-Typemultipart/form-data
X-Client-IDYour client ID
X-TimestampUnix timestamp
X-SignatureEd25519 signature

Request Body:

dicom_fileDICOM file (.dcm) or ZIP archive

Example:

curl -X POST https://api.hostswarm.io/v1/spine/analyze \
  -H "X-Client-ID: $CLIENT_ID" \
  -H "X-Timestamp: $TIMESTAMP" \
  -H "X-Signature: $SIGNATURE" \
  -F "dicom_file=@spine_mri.dcm" \
  --output report.pdf

Success Response (200):

Returns PDF binary with headers:

Content-Typeapplication/pdf
X-Inference-Time-MsProcessing time in milliseconds
X-Study-IdInternal study identifier
X-Severe-CountNumber of severe findings
X-Moderate-CountNumber of moderate findings

PDF Report Contents

The generated PDF includes:

Supported Input Formats

FormatExtensionContent-Type
DICOM.dcm, .dicomapplication/dicom
ZIP (DICOM series).zipapplication/zip
DICOM Requirements: Lumbar spine MRI with axial T2-weighted images. Sagittal series also accepted for reference.

Error Responses

CodeErrorDescription
401unauthorizedInvalid or missing signature
402insufficient_creditsNeed 10 credits, balance too low
422invalid_dicomFile is not valid DICOM or unsupported modality
422no_lumbar_seriesNo lumbar spine series found in study
500inference_errorModel inference failed

Python Example

from hostswarm_cli import BeeClient

with BeeClient() as client:
    result = client.submit_spine(
        file_path="spine_mri.dcm",
        output_path="report.pdf",
    )

    print(f"Report saved: {result['pdf_path']}")
    print(f"Inference time: {result['inference_time_ms']}ms")
    print(f"Severe findings: {result['severe_count']}")