DeepUnity

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.

Last updated October 2026