Analysis types¶
/analysis-types/ lists the analyses you can run on this team right now, each with a JSON Schema for its parameters. Read it before building a request rather than hard-coding choices: backends, compute tiers and released analyses change over time, and this endpoint always reflects what the server will accept.
List analysis types¶
GET /api/v1/teams/{team_id}/analysis-types/
Response 200: {"results": [analysis type, …]}, one entry per analysis available to you.
{
"results": [
{
"slug": "poresize",
"label": "Pore Size",
"contract_version": 1,
"expected_duration_seconds": 300,
"required_solution_keys": ["R", "pdf", "cdf"],
"parameters_schema": {
"type": "object",
"properties": {
"steps": {
"type": "integer",
"title": "Radius steps",
"description": "Number of evenly spaced radii used by the local thickness filter.",
"default": 25,
"minimum": 2
},
"queue_name": {
"type": "string",
"title": "Backend",
"default": "porespy",
"enum": ["porespy"]
}
},
"required": ["queue_name"],
"additionalProperties": false
}
}
]
}
The analysis type object¶
| Field | Meaning |
|---|---|
slug |
The analysis_type to send when submitting. |
label |
Human-readable name. |
contract_version |
Version of the analysis's input and output contract. |
expected_duration_seconds |
A typical run time. A job held up well beyond twice this is cancelled. See Job states. |
required_solution_keys |
Keys that are always present in this analysis's result solution. |
parameters_schema |
JSON Schema for parameters. |
Reading parameters_schema¶
- Send every property listed in
required, even if it has adefault. The default is what the app pre-fills in its form. The API doesn't fill in missing required fields. - Optional properties with a
defaulttake that value when you leave them out. - Some fields are required only in combination. Diffusivity and conductivity need
solver_tolerancefor Tortuosity.jl andmax_iterationsfor TauFactor. Network extraction needsboundary_width,accuracy,sigmaandr_maxwhenmethodissnow2,l_maxwhen it'smagnet, andn_walkersandstep_sizewhenthroat_areais on. A missing one comes back as a400naming the field. additionalProperties: false: unknown keys are ignored, and they are not stored with the job. A few keys the server sets itself are refused instead: radial density refusesbinsandlog, and pore size distribution refusessizes.- Backends.
queue_nameselects the backend. Itsenumlists the backends you can use now, by stable identifiers such asporespy,walberlaorkabs-taichi. Older names for the same backend are still accepted. - Compute tiers. For permeability, diffusivity and conductivity,
compute_tier.x-queue-tier-optionsmaps each backend to its tiers:key,display_name, memory, and the largest image (max_voxels) it takes. Send"auto"or one of the keys listed for the backend you chose. See Compute tiers. - Phase. Chord length distribution and radial density take an optional
phase,poreorsolid.
The parameter reference describes every analysis's parameters and what they change in the computation.
Availability¶
Some analyses are released gradually. Discovery lists only the analyses that are available to the key's owner (or the signed-in user) on this team, and only analyses the API can run. Image operations (segmenting, trimming, cleaning, converting, importing and exporting, noise filtering and resizing) run in the app and aren't in the API yet, so discovery never lists them. Network extraction and network validation are available to PoreStore staff only for now; results of network jobs you already ran stay readable.
A submission for an analysis that isn't available returns 403 with error.code: "analysis_unavailable". It happens before any job is created or work is dispatched. Already-submitted jobs and their results stay readable regardless.
The OpenAPI schema lists every analysis_type the API understands. It doesn't grant access. Use discovery to see what you can run.