API
Call the prediction and design services from Python, a spreadsheet macro or the command line.
Base URL: https://api.deep-unity.com/api
An interactive explorer generated by the backend is at api.deep-unity.com/docs.
Inputs are the 32 values described in Inputs and training ranges, in that order and in those units.
Health and model
GET /api/health → {"status": "healthy"}
GET /api/model/info → model type and architecture
Strength prediction
POST /api/predict
Content-Type: application/json
{ "parameters": [32 numbers] }
The response has one entry per element:
{
"element_config": { "count": 172, "types": [{ "code": "PIPE" }, { "code": "ELBOW" }] },
"unity_values": {
"unity1": [ ... ], // longitudinal unity per element
"unity2": [ ... ], // combined unity per element
"max_unity1": 1.557,
"max_unity2": 1.556,
"element_unity1_max": 105, // zero-based element index
"element_unity2_max": 105
}
}
Example in Python:
import requests
x = [17.41331, 27.11504, 36.47366, 51.46791, 35.68514, 27.11504, 14.18343,
69.30719, 247.14862, 4455.69991, 1103021.51327, 0.11458, 1.16667, 19.0,
-0.125, -0.125, -0.125, 0.01745, -0.01745, 0.0,
-0.125, 0.125, -0.125, -0.00873, 0.01745, 0.0,
-1.08352, 4.33086, 4.84862, -3.65337, -3.08466, 1.32476]
r = requests.post("https://api.deep-unity.com/api/predict", json={"parameters": x}, timeout=60)
u = r.json()["unity_values"]
print(max(u["max_unity1"], u["max_unity2"]))
Configuration design (v2)
Design searches run as jobs: submit, poll, then read the result.
POST /api/v2/design/jobs submit a search → {"job_id", "n_candidates"}
GET /api/v2/jobs/{job_id} status, progress, and the result when done
DELETE /api/v2/jobs/{job_id} cancel
GET /api/v2/jobs/{job_id}/configs/{id} full per-element arrays for one candidate
Request body:
{
"system_variables": [25 numbers, inputs 8 to 32],
"constraints": {
"span": 100, "hub_height_diff": 30, "seabed_relative_hub1": 15,
"belly_clearance": 5, "target_unity": 0.9
},
"cases": [1],
"increment": 5,
"include_extrapolated": false
}
With include_extrapolated false (the default) every candidate’s segment lengths lie inside the
training ranges. Set it to true to search beyond them; each result then carries
"extrapolated": true or false, and the summary reports how many are extrapolated.
Poll every one to two seconds until status is done, failed or cancelled. Finished jobs
are kept for two hours.
The v2 design endpoints go live with the next backend release. Until then the live API only has the original synchronous design route.
Fair use
The API is free for research and evaluation. Please keep to one request at a time and cache results you reuse. For heavier or commercial use, get in touch.