Skip to main content

QCOS Python SDK Reference

Complete reference for the softqcos-sdk Python package.

Version: 2.0.0 · Package: pip install softqcos-sdk · Methods: 224 · Python: 3.10+


Installation

pip install softqcos-sdk

Optional Dependencies

pip install softqcos-sdk[visualization]  # matplotlib, plotly
pip install softqcos-sdk[jupyter] # Jupyter integration
pip install softqcos-sdk[full] # Everything

QCOSClient

Main client for interacting with QCOS. Provides access to 16 product APIs via dot notation.

from softqcos_sdk import QCOSClient

client = QCOSClient(
api_key: str = None, # Default: $QCOS_API_KEY
base_url: str = None, # Default: https://api.softquantus.com
timeout: float = 30.0, # Request timeout (seconds)
max_retries: int = 3, # Automatic retries with exponential backoff
)

Context Manager

with QCOSClient() as client:
result = client.jobs.execute(qasm, shots=1024)
# Connection auto-closed

Product APIs

AttributeClassMethodsDescription
client.jobsJobsAPI10Job management
client.circuitsCircuitsAPI9Circuit operations
client.backendsBackendsAPI26Backend management (BYOB + IBM + Azure + Braket)
client.benchBenchAPI10Benchmarking
client.calibrationCalibrationAPI13Calibration (GlassBox™)
client.billingBillingAPI11Billing (ROI Engine™)
client.networkNetworkAPI18Quantum networking (QuantumNet™)
client.qecQECAPI15Error correction (QEC Runtime™)
client.isolationIsolationAPI8Qubit isolation (ZoneGuard™)
client.driDRIAPI14Device readiness inspection
client.ledgerLedgerAPI14Metering & governance (QuantumLedger™)
client.navcoreNavCoreAPI48Quantum navigation (NavCore™)
client.acosACOSAPI8Certification (ACOS-ISA™)
client.macroMacroAPI4Macro analysis (Quantum Macro™)
client.adminAdminAPI10Platform administration
client.evidenceEvidenceAPI6Evidence management

Direct HTTP

response = client.get("/api/v2/jobs")
response = client.post("/api/v2/jobs", json={"qasm": "...", "shots": 1024})
response = client.put("/api/v2/backends/123", json={...})
response = client.delete("/api/v2/backends/123")

AsyncQCOSClient

Async version for concurrent operations:

from softqcos_sdk import AsyncQCOSClient
import asyncio

async def main():
async with AsyncQCOSClient() as client:
# Parallel submissions
results = await asyncio.gather(
client.jobs.submit(qasm1, shots=1024),
client.jobs.submit(qasm2, shots=1024),
client.jobs.submit(qasm3, shots=1024),
)

asyncio.run(main())

JobsAPI

client.jobs.submit(qasm, shots=1024, backend="aer_simulator", **kwargs)dict
client.jobs.get(job_id)dict
client.jobs.results(job_id)dict
client.jobs.list(**params)list[dict]
client.jobs.cancel(job_id)None
client.jobs.evidence(job_id)dict
client.jobs.bundle(job_id)dict
client.jobs.verify(job_id)dict
client.jobs.wait(job_id, *, timeout=300.0, poll_interval=2.0)dict
client.jobs.execute(qasm, shots=1024, backend="aer_simulator", **kwargs)dict

Example

from softqcos_sdk import QCOSClient

client = QCOSClient()

# Submit and wait (convenience)
result = client.jobs.execute(
qasm="OPENQASM 2.0; ...",
shots=1024,
backend="aer_simulator"
)
print(result["counts"]) # {"00": 512, "11": 512}

# Or step-by-step
job = client.jobs.submit(qasm, shots=4096)
completed = client.jobs.wait(job["job_id"], timeout=300)
results = client.jobs.results(job["job_id"])

# Evidence
evidence = client.jobs.evidence(job["job_id"])
verification = client.jobs.verify(job["job_id"])
print(f"Valid: {verification['valid']}")

CircuitsAPI

client.circuits.submit(qasm, **kwargs)dict
client.circuits.get(circuit_id)dict
client.circuits.list(**params)list[dict]
client.circuits.delete(circuit_id)None
client.circuits.validate(qasm)dict
client.circuits.convert(qasm, target_format="qiskit")dict
client.circuits.stats(circuit_id)dict
client.circuits.optimize(qasm, target_backend=None, **kwargs)dict
client.circuits.simulate(qasm, shots=1024, **kwargs)dict

Example

# Validate before submitting
validation = client.circuits.validate(qasm)
if validation["valid"]:
# Optimize for target backend
optimized = client.circuits.optimize(qasm, target_backend="ibm_brisbane")
print(f"Depth: {optimized['original_depth']}{optimized['optimized_depth']}")

# Simulate
sim = client.circuits.simulate(qasm, shots=1024)
print(sim["counts"])

BackendsAPI

User Backends (BYOB)

client.backends.providers()list[dict]
client.backends.list()list[dict]
client.backends.get(backend_id)dict
client.backends.add(**kwargs)dict
client.backends.update(backend_id, **kwargs)dict
client.backends.delete(backend_id)None
client.backends.validate(**kwargs)dict
client.backends.execute(**kwargs)dict
client.backends.all_backends()list[dict]

IBM Quantum

client.backends.ibm_backends()list[dict]
client.backends.ibm_estimate(**kwargs)dict
client.backends.ibm_execute(**kwargs)dict
client.backends.ibm_status(job_id)dict
client.backends.ibm_cancel(job_id)None

Azure Quantum

client.backends.azure_providers()list[dict]
client.backends.azure_targets()list[dict]
client.backends.azure_backends()list[dict]
client.backends.azure_estimate(**kwargs)dict
client.backends.azure_execute(**kwargs)dict
client.backends.azure_status(job_id)dict
client.backends.azure_cancel(job_id)None

AWS Braket

client.backends.braket_backends()list[dict]
client.backends.braket_estimate(**kwargs)dict
client.backends.braket_execute(**kwargs)dict
client.backends.braket_status(job_id)dict
client.backends.braket_cancel(job_id)None

BenchAPI

client.bench.run(backend, **kwargs)dict
client.bench.report(benchmark_id)dict
client.bench.download(benchmark_id)bytes
client.bench.suites(suite_id=None)list[dict]
client.bench.workloads()list[dict]
client.bench.verify(benchmark_id)dict
client.bench.health()dict
client.bench.selftest()dict
client.bench.metrics_coverage()dict
client.bench.metrics_kpis()dict

Example

# Run benchmark
report = client.bench.run(
backend="aer_simulator",
suite_id="standard",
shots=4096,
repetitions=5
)
print(f"Score: {report['score']}, Fidelity: {report['fidelity']}")

# Download PDF report
pdf = client.bench.download(report["benchmark_id"])
with open("benchmark_report.pdf", "wb") as f:
f.write(pdf)

CalibrationAPI (GlassBox™)

client.calibration.health()dict
client.calibration.info()dict
client.calibration.devices()list[dict]
client.calibration.device_state(device_name)dict
client.calibration.qubit(device_name, qubit_id)dict
client.calibration.compile(qasm, **kwargs)dict
client.calibration.compile_status(compilation_id)dict
client.calibration.evidence_create(**kwargs)dict
client.calibration.evidence_get(bundle_id)dict
client.calibration.evidence_verify(**kwargs)dict
client.calibration.evidence_sign(bundle_id)dict
client.calibration.evidence_finalize(bundle_id)dict
client.calibration.evidence_audit(bundle_id)dict

Example

# Check device calibration
devices = client.calibration.devices()
state = client.calibration.device_state("ibm_brisbane")
print(f"T1: {state['t1']}μs, T2: {state['t2']}μs")
print(f"Readout error: {state['readout_error']}")

# Check specific qubit
qubit = client.calibration.qubit("ibm_brisbane", 0)

BillingAPI (ROI Engine™)

client.billing.providers()list[dict]
client.billing.pricebook()dict
client.billing.plans()list[dict]
client.billing.calculate(**kwargs)dict
client.billing.scenarios(**kwargs)list[dict]
client.billing.compare_providers(**params)dict
client.billing.report_data(**kwargs)dict
client.billing.report_pdf(**kwargs)bytes
client.billing.report_latex(**kwargs)str
client.billing.v1_providers()list[dict]
client.billing.v1_calculate(**kwargs)dict

Example

# Cost estimate
estimate = client.billing.calculate(
provider="ibm",
backend="ibm_brisbane",
shots=10000,
circuits=5
)
print(f"Total: ${estimate['total_cost']:.4f}")

# Multi-scenario comparison
scenarios = client.billing.scenarios(
backends=["ibm_brisbane", "ionq_harmony"],
shots=[1000, 10000, 100000],
circuits=5
)

# Compare providers
comparison = client.billing.compare_providers(shots=10000)

NetworkAPI (QuantumNet™)

# Service
client.network.health()dict
client.network.status()dict
client.network.topology()dict
client.network.backends()list[dict]

# Quantum operations
client.network.entangle(**kwargs)dict
client.network.teleport(**kwargs)dict
client.network.remote_cnot(**kwargs)dict
client.network.barrier(**kwargs)dict

# Phase 0 research
client.network.ion_species()list[dict]
client.network.phase0_sweep(**kwargs)dict
client.network.phase0b_analyze(**kwargs)dict
client.network.phase0b_recommend(**kwargs)dict

# Network jobs
client.network.jobs()list[dict]
client.network.job_status(job_id)dict
client.network.job_result(job_id)dict
client.network.job_evidence(job_id)dict

# Evidence
client.network.evidence(evidence_id)dict
client.network.evidence_bundle(job_id)dict

QECAPI (QEC Runtime™)

client.qec.health()dict
client.qec.codes()list[dict]
client.qec.code(code_id)dict
client.qec.create_code(**kwargs)dict
client.qec.decode(**kwargs)dict
client.qec.syndrome(**kwargs)dict
client.qec.compile(**kwargs)dict
client.qec.pipeline(**kwargs)dict
client.qec.zones()list[dict]
client.qec.zone(zone_id)dict
client.qec.zone_create(**kwargs)dict
client.qec.zone_delete(zone_id)None
client.qec.certify(**kwargs)dict
client.qec.isolation_evidence(evidence_id)dict
client.qec.isolation_certificates()list[dict]

IsolationAPI (ZoneGuard™)

client.isolation.health()dict
client.isolation.crosstalk()dict
client.isolation.zones()list[dict]
client.isolation.zone(zone_id)dict
client.isolation.allocate(**kwargs)dict
client.isolation.execute(**kwargs)dict
client.isolation.delete(zone_id)None
client.isolation.evidence(evidence_id)dict

DRIAPI

# Assessment
client.dri.health()dict
client.dri.run(**kwargs)dict
client.dri.probe(**kwargs)dict
client.dri.list()list[dict]
client.dri.report(rating_id)dict
client.dri.summary(rating_id)dict
client.dri.evidence(bundle_id)dict

# Proof-of-Quantum
client.dri.proof_run(**kwargs)dict
client.dri.proof(test_id)dict
client.dri.proof_report(test_id)dict
client.dri.proof_certificate(test_id)bytes
client.dri.proof_compare(**kwargs)dict
client.dri.proof_compare_result(comparison_id)dict
client.dri.proof_compare_certificate(comparison_id)bytes

LedgerAPI (QuantumLedger™)

client.ledger.jobs(**params)list[dict]
client.ledger.job(job_id)dict
client.ledger.tenants(tenant_id=None)list[dict] | dict
client.ledger.tenant_create(**kwargs)dict
client.ledger.budgets(tenant_id=None)list[dict]
client.ledger.budget_create(**kwargs)dict
client.ledger.projects()list[dict]
client.ledger.project_create(**kwargs)dict
client.ledger.pricing()dict
client.ledger.estimate(**kwargs)dict
client.ledger.provenance(job_id)dict
client.ledger.usage()dict
client.ledger.audit()dict
client.ledger.chargeback(**kwargs)dict

# Core Navigation
client.navcore.status()dict
client.navcore.algorithms()list[dict]
client.navcore.navigate(**kwargs)dict
client.navcore.spoof_detect(**kwargs)dict
client.navcore.sensor_simulate(**kwargs)dict

# QRNG
client.navcore.qrng_bytes(**kwargs)dict
client.navcore.qrng_uuid()dict
client.navcore.qrng_nonce()dict

# PQC
client.navcore.pqc_keypair(**kwargs)dict
client.navcore.pqc_sign(**kwargs)dict
client.navcore.pqc_verify(**kwargs)dict

# RAIM
client.navcore.raim_status()dict
client.navcore.raim_threats()list[dict]
client.navcore.raim_process(**kwargs)dict
client.navcore.raim_exclude(**kwargs)dict
client.navcore.raim_statistics()dict
client.navcore.raim_quantum_verification()dict
client.navcore.raim_hybrid_fusion()dict

# Time
client.navcore.time_utc()dict
client.navcore.time_network()dict
client.navcore.time_sync(**kwargs)dict

# Standards & Compliance
client.navcore.sosa_profiles()list[dict]
client.navcore.sosa_validate(**kwargs)dict
client.navcore.victory_services()list[dict]
client.navcore.victory_publish(**kwargs)dict
client.navcore.face_status()dict
client.navcore.conformance_report()dict

# HAL
client.navcore.hal_sensors()list[dict]
client.navcore.hal_register(**kwargs)dict

# Quantum Processing
client.navcore.quantum_status()dict
client.navcore.quantum_process(**kwargs)dict
client.navcore.quantum_configure(**kwargs)dict
client.navcore.quantum_performance()dict
client.navcore.quantum_sequences()list[dict]
client.navcore.quantum_circuit_run(**kwargs)dict
client.navcore.noise_characterize(**kwargs)dict

# Kalman Filter
client.navcore.kalman_update(**kwargs)dict
client.navcore.kalman_predict(**kwargs)dict
client.navcore.kalman_state()dict
client.navcore.kalman_reset(**kwargs)dict

# OSNMA
client.navcore.osnma_status()dict
client.navcore.osnma_satellites()list[dict]
client.navcore.osnma_verify(**kwargs)dict

# NIS2 Compliance
client.navcore.nis2_status()dict
client.navcore.nis2_gaps()list[dict]
client.navcore.nis2_incident(**kwargs)dict
client.navcore.compliance_audit()dict
client.navcore.compliance_summary()dict

ACOSAPI (ACOS-ISA™)

client.acos.health()dict
client.acos.tiers()list[dict]
client.acos.tests()list[dict]
client.acos.certify(backend, tier="bronze", **kwargs)dict
client.acos.verify(certificate_id)dict
client.acos.certificates()list[dict]
client.acos.certificate(certificate_id)dict
client.acos.evidence(evidence_id)dict

Certification Tiers: bronzesilvergoldplatinum


MacroAPI (Quantum Macro™)

client.macro.health()dict
client.macro.market_sizing(**params)dict # TAM/SAM analysis
client.macro.energy_optimize(**kwargs)dict # kWh savings
client.macro.risk_analysis(**kwargs)dict # ROI/risk score

AdminAPI

client.admin.health_ready()dict
client.admin.health_live()dict
client.admin.tenants()list[dict]
client.admin.tenant_usage(tenant_id)dict
client.admin.metrics()dict
client.admin.rate_limits()dict
client.admin.circuit_breakers()dict
client.admin.circuit_breaker_reset(service_name)dict
client.admin.backends_status()dict
client.admin.backend_capabilities(backend_id)dict

EvidenceAPI

client.evidence.artifacts(job_id)list[dict]
client.evidence.artifact(job_id, artifact_name)dict
client.evidence.capabilities(job_id)dict
client.evidence.download(job_id, output_dir=".")str
client.evidence.verify(evidence_hash)dict
client.evidence.public_key()str # PEM format

Data Models

All models use Pydantic v2 with optional fields for forward/backward compatibility.

ModelKey Fields
JobResultjob_id, status, counts, backend, shots, created_at, completed_at, error
CircuitInfocircuit_id, name, qasm, num_qubits, depth, gate_count
ProviderInfoprovider, name, status, backends, region
BackendInfobackend_id, name, provider, num_qubits, status, queue_length, basis_gates
BenchmarkReportbenchmark_id, suite, backend, score, fidelity, depth_ratio
DeviceStatedevice_name, num_qubits, t1, t2, readout_error, gate_errors
EvidenceBundlebundle_id, job_id, hash (SHA-256), signature, finalized_at
PricebookEntryprovider, backend, price_per_shot, price_per_second, currency, tier
Certificatecertificate_id, backend, tier, score, valid, issued_at, expires_at
HealthStatusstatus (ok/degraded/down), service, version, uptime

JobResult Helpers

result = JobResult(**data)
result.is_complete() # True if COMPLETED
result.is_successful() # True if COMPLETED without error
result.get_probabilities() # Normalized counts as probabilities

Error Handling

from softqcos_sdk.exceptions import (
QCOSError,
AuthenticationError,
RateLimitError,
ValidationError,
JobNotFoundError,
ResourceNotFoundError,
ConflictError,
TimeoutError,
ServerError,
)

try:
result = client.jobs.execute(qasm, shots=1024)
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after}s")
except ValidationError as e:
print(f"Invalid input: {e.detail}")
except JobNotFoundError:
print("Job not found")
except ServerError:
print("Server error, try again later")
except QCOSError as e:
print(f"Error {e.status_code}: {e.detail}")

Automatic Retries

The SDK automatically retries on:

  • Connection errors
  • Read timeouts
  • HTTP 429 (Rate Limited)

Default: 3 retries with exponential backoff (1s → 2s → 4s).


© 2024-2026 SoftQuantus Innovative OÜ. All Rights Reserved.