Last Updated: October 31, 2025
Production: https://api.qsurf.ai Local Dev: http://localhost:8080
GET /api/v1/health
curl -X POST https://api.qsurf.ai/api/v1/ftqc_standard_validation \
-F "syndromes_d3=@d3_detection_events.b8" \
-F "syndromes_d5=@d5_detection_events.b8" \
-F "syndromes_d7=@d7_detection_events.b8" \
-F "platform=google_willow" \
-F "rounds=10"
curl -X POST https://api.qsurf.ai/api/v1/hardware_quality \
-F "file=@detection_events.b8" \
-F "platform=google_willow" \
-F "distance=7" \
-F "rounds=50"
curl -X POST https://api.qsurf.ai/api/v1/ga_validation \
-F "syndromes=@detection_events.b8" \
-F "platform=google_willow" \
-F "distance=7" \
-F "rounds=50"
# Basic request (Free tier - edge detection + multi-criteria)
curl -X POST https://api.qsurf.ai/api/v1/analyze/discover-hypothesis \
-H "Content-Type: application/json" \
-d '{
"data": [[1.2, 3.4, ...], ...],
"enable_edge_detection": true,
"enable_multi_criteria": true,
"criteria": ["mdl", "bic", "aic"]
}'
# Full validation (Premium tier - includes bootstrap stability)
curl -X POST https://api.qsurf.ai/api/v1/analyze/discover-hypothesis \
-H "Content-Type: application/json" \
-d '{
"data": [[1.2, 3.4, ...], ...],
"enable_edge_detection": true,
"enable_multi_criteria": true,
"criteria": ["mdl", "bic", "aic"],
"enable_bootstrap": true,
"bootstrap_samples": 20
}'
# Health check
GET /api/v1/analyze/discover-hypothesis/health
Key Parameters:
- enable_edge_detection (bool, default: true) - Condition number & rank checks (~2ms)
- enable_multi_criteria (bool, default: false) - MDL/BIC/AIC consensus (~5ms)
- criteria (list, default: ["mdl", "bic", "aic"]) - Which criteria to use
- enable_bootstrap (bool, default: false, Premium only) - Stability validation (~500ms)
- bootstrap_samples (int, default: 20) - Number of bootstrap iterations
Tier Restrictions: - Free: Edge detection + multi-criteria evaluation - Premium: All features including bootstrap stability testing
Response Fields:
- suggestions[]: Ranked hypothesis candidates with scores
- metadata.edge_detection: Numerical stability checks
- metadata.multi_criteria: Criterion agreement analysis
- metadata.bootstrap_stability: Resampling validation (Premium only)
GET /api/v1/platforms
GET /api/v1/platforms/google_willow
curl -X POST https://api.qsurf.ai/api/v1/validate \
-F "file=@detection_events.b8" \
-F "platform=google_willow" \
-F "distance=3" \
-F "rounds=10"
🎯 Why This Matters (ELI5):
Imagine trying to tune a guitar by only knowing if each string is "too high" or "too low" (binary data). You can't tell HOW MUCH to adjust - you need the actual pitch values (continuous data).
The Problem: Quantum error correction systems output two types of data:
What Layer 0 Does: Automatically detects when you accidentally send binary data to an analysis that needs continuous values. Instead of wasting 30+ minutes on doomed calculations, it blocks the request in 20ms with a helpful error message explaining what data to request from your hardware provider.
How to Use It:
📖 Detailed Example: Read the Layer 0 blog post for the complete story of how binary syndrome data was the hidden problem that IT Gate missed.
Technical Details:
strict: Production use (entropy ≥5.0 bits, score ≥85)balanced (default): General use (entropy ≥4.0 bits, score ≥80)permissive: Exploratory analysis (entropy ≥3.0 bits, score ≥70)enable_layer0=trueExample error message (binary data detected):
{
"error": "LAYER0_BLOCK",
"blocked_reason": "Binary syndrome data detected (2 unique values)",
"recommendation": "Request pre-threshold soft syndrome data from hardware provider",
"educational_note": "Spectral mode analysis requires continuous detector values..."
}
0.15: Unstable (highly sample-dependent) 🚨
Sprint 12 addresses the "Illusion of Competence" problem where researchers trust automated model selection without validation. Read more: https://storage.googleapis.com/getqore-validation-data/blog/scientific-defensibility-hypothesis-discovery.html
platform: google_willow, stim, ibm_heron, ionq_fortedistance: 3, 5, 7 (surface code distance)rounds: Number of QEC cycles (10-50 typical)n_shots: Number of measurements (10K-50K typical)See: README.md in qcore_context/ or prod_v1/
Home | Blog | Contact Support