{"info":{"name":"Simien Central API","description":"Generated from https://dev-central-api.simien.no/openapi.json. Set the collection variable apiKey to your API key; the guide is at https://dev-central-api.simien.no/.","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{apiKey}}","type":"string"}]},"variable":[{"key":"baseUrl","value":"https://dev-central-api.simien.no","type":"string"},{"key":"apiKey","value":"","type":"string","description":"Your API key (sk_live_...)"}],"item":[{"name":"health","item":[{"name":"Healthz","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/healthz","host":["{{baseUrl}}"],"path":["healthz"]},"description":"Comprehensive health check endpoint for Azure App Service.\n\nReturns service status, configuration, and performance metrics.\nUsed by Azure for health monitoring and load balancing.","auth":{"type":"noauth"}}}]},{"name":"sim","item":[{"name":"Run one simulation","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/simulate","host":["{{baseUrl}}"],"path":["api","v1","sim","simulate"]},"description":"Run a SIMIEN simulation and get the results.\n\nAccepts a .simx building file (a plaintext .sxi also works) and returns the result as a download.\n\nParameters:\n- file: Your .simx building file (a plaintext .sxi also works)\n- params: The simulation id to run, e.g. 'aarsim#23'. Exactly one - use /simulate-all to run every simulation in the file.\n- simien_version: SIMIEN core version - underscores or dots both work, e.g. '8_1_2_6' or '8.1.2.6'. SIMIEN 7 is not supported.\n- location: Climate location name (optional) - e.g. 'Oslo'. If provided, replaces the climate in your file. See GET /api/v1/sim/locations.\n- format: Output format (optional) - 'sxo' (default), 'catalog' (JSON catalog), or 'zip' (SXO + parsed exports)\n- simulatable_parameters: Optional. The document from POST /api/v1/sim/simulatable-parameters with your edits - change a u-value and re-run without the desktop tool.\n\nReturns:\nThe result as a download, named {file}_{version}_{sim}_{climate}_{timestamp}.\n\nResponse Headers:\n- X-Job-ID: Unique job identifier\n- X-Simien-Version: The SIMIEN version that was run\n- X-Climate: The climate the result used, when known\n- X-Simulatable-Parameters-Changed: How many values your edits changed, when simulatable_parameters was sent\n\nEditing simulatable parameters:\n1. POST /api/v1/sim/simulatable-parameters with your file\n2. Change numbers inside values, series or profile - nothing else\n3. Send the same file and the edited document back here as simulatable_parameters\n\nYou can send the whole document back, or only what you changed. A node is found by its id,\nso the shortest valid document is:\n\n    {\n      \"source\": {\"sha256\": \"7d7d041e...\"},\n      \"parameters\": [{\"id\": \"facade#1\", \"values\": {\"uvalue\": 0.10}}]\n    }\n\nOnly list what you change. source.sha256 ties the document to the exact file it was\nmade from, so submitting it with a different building is rejected with a 400\n(code PARAMETERS_WRONG_BUILDING). The document's JSON Schema is SimulatableParametersDocument,\nalso at /schemas/simulatable-parameters.schema.json.\n\nApplied changes: with format=catalog the result has a top-level applied_changes object; with\nformat=zip it contains _applied_changes.json. Both list every change as\n{address, attribute, old, new, label, active} (plus position for arrays, and replaced_by_measure when\nan accepted measure's copy of the object is simulated instead, so the edit has no effect on year/winter\nsimulations). A repairs list appears when the file was fixed before simulating (e.g. a repeated\nattribute removed). format=sxo only carries the X-Simulatable-Parameters-Changed count.\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: 1-5 s for format=sxo, 2-15 s for catalog, 5-40 s for zip; use a client timeout of at least 120 s","body":{"mode":"formdata","formdata":[{"key":"file","description":"Your building file: a .simx (encrypted, decrypted only inside the service). A plaintext .sxi also works.","type":"file","src":[]},{"key":"params","description":"Simulation id to run, e.g. 'aarsim#23' (exactly one)","type":"text","value":"aarsim#23","disabled":true},{"key":"simien_version","description":"SIMIEN core version - underscores or dots both work, e.g. '8_1_2_6' or '8.1.2.6'","type":"text","value":""},{"key":"location","description":"Climate location name (optional) - e.g., 'Oslo'. If omitted, the climate in the file is used.","type":"text","value":"","disabled":true},{"key":"format","description":"Output format (optional) - 'sxo' (default), 'catalog' (JSON catalog), or 'zip' (SXO + parsed exports)","type":"text","value":"sxo","disabled":true},{"key":"simulatable_parameters","description":"Optional edited simulatable-parameters document from POST /api/v1/sim/simulatable-parameters","type":"file","src":[],"disabled":true}]}}},{"name":"List climate locations","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/locations","host":["{{baseUrl}}"],"path":["api","v1","sim","locations"]},"description":"Get list of available climate locations.\n\nNo parameters - the list is the same for every SIMIEN version.\n\nReturns:\n- locations: List of available location names (sorted alphabetically), including\n  Norwegian names with ø/æ/å. Pass one as the location field of /simulate or /simulate-all.\n- count: Total number of locations\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Typical time: under 1 s"}},{"name":"List the SIMIEN versions that can be run","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/versions","host":["{{baseUrl}}"],"path":["api","v1","sim","versions"]},"description":"Get the SIMIEN core versions that can be run.\n\nNo parameters.\n\nReturns:\n- versions: Newest first. Each entry has:\n  - version: the value to pass as simien_version to /simulate (the dotted core_version works too)\n  - core_version: the same build in dotted form\n  - platform (x86, linux) and build_type (release, debug)\n- count: Number of versions\n\nSIMIEN 7 is not supported.\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Typical time: under 1 s"}},{"name":"Run every simulation in the file (ZIP)","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/simulate-all","host":["{{baseUrl}}"],"path":["api","v1","sim","simulate-all"]},"description":"Batch simulation endpoint - Runs every simulation found in the file and returns the results as a ZIP.\n\nThis endpoint:\n1. Finds every simulation in the uploaded file (yearsim, wintersim, evalsim, ...). Evaluations such as\n   energy label (energymark26) and profitability (profitsim) are not run here; run them one at a time\n   with /simulate.\n2. Uses the SIMIEN version you pass, or the one recorded in the file\n3. Runs the simulations concurrently\n4. Returns a ZIP with one file per simulation, plus a _results.json manifest\n\nParameters:\n- file: Your .simx building file (a plaintext .sxi also works)\n- location: Climate location name (optional) - e.g. 'Oslo'. If provided, replaces the climate in your file. See GET /api/v1/sim/locations.\n- simien_version: SIMIEN core version (optional) - e.g. '8_1_2_6' or '8.1.2.6'. If not provided, auto-detected from the file. An invalid version returns 400.\n- format: 'catalog' (default) for a JSON catalog per simulation, or 'sxo' for the raw .sxo per simulation. The response is always a ZIP.\n- simulatable_parameters: Optional. The document from POST /api/v1/sim/simulatable-parameters with your edits, applied before every simulation runs. See /simulate for the format.\n\nReturns:\napplication/zip named {file}_simulations.zip, containing one file per successful simulation\nand _results.json recording the status of each:\n\n    {\n      \"job_id\": \"...\",\n      \"sxi_file\": \"building.simx\",\n      \"simien_version\": \"8_1_2_6\",\n      \"climate\": \"Oslo\",\n      \"format\": \"catalog\",\n      \"applied_changes\": {\"changed\": 1, \"applied\": [...]},\n      \"simulation_count\": 4,\n      \"succeeded\": 4,\n      \"failed\": 0,\n      \"simulations\": [\n        {\"type\": \"yearsim\", \"id\": \"aarsim#23\", \"status\": \"success\", \"file\": \"...\", \"variable_count\": 200}\n      ]\n    }\n\nResponse Headers:\n- X-Job-ID: Unique job identifier\n- X-Simulation-Count: Number of simulations that succeeded\n- X-Failed-Count: Number of failed simulations\n- X-Simulatable-Parameters-Changed: How many values your edits changed, when simulatable_parameters was sent\n\nNotes:\n- A failed simulation does not sink the others; it is recorded in _results.json. The request only fails if every simulation failed.\n- Results are no longer merged into one catalog - each simulation keeps its own file.\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 20 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: a few seconds per simulation (they run in parallel)","body":{"mode":"formdata","formdata":[{"key":"file","description":"Your building file: a .simx (encrypted, decrypted only inside the service). A plaintext .sxi also works.","type":"file","src":[]},{"key":"location","description":"Climate location name (optional) - e.g., 'Oslo'. If omitted, the climate in the file is used.","type":"text","value":"","disabled":true},{"key":"simien_version","description":"SIMIEN core version (optional) - e.g. '8_1_2_6' or '8.1.2.6'. Auto-detected from the file if omitted.","type":"text","value":"","disabled":true},{"key":"format","description":"What goes inside the ZIP - 'catalog' (default, a JSON catalog per simulation) or 'sxo' (the raw .sxo per simulation)","type":"text","value":"catalog","disabled":true},{"key":"simulatable_parameters","description":"Optional edited simulatable-parameters document from POST /api/v1/sim/simulatable-parameters","type":"file","src":[],"disabled":true}]}}},{"name":"List the editable numbers in a building","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/simulatable-parameters","host":["{{baseUrl}}"],"path":["api","v1","sim","simulatable-parameters"],"query":[{"key":"download","value":"false","description":"Return the simulatable parameters as a .json file download instead of an inline response","disabled":true}]},"description":"Get the simulatable parameters (every editable number) of a .simx building file (a plaintext .sxi also works).\n\nThis is the first half of a parametric workflow: edit a number in the returned document,\nthen send it back with the same file to POST /api/v1/sim/simulate (or /simulate-all) as\nsimulatable_parameters. This is how a .simx is changed: it is decrypted only inside the service, never on your side.\n\nParameters:\n- file: Your .simx building file (a plaintext .sxi also works)\n- download: true to get the document as a .json file attachment (default: inline JSON)\n\nReturns:\n    {\n      \"source\": {\n        \"filename\": \"building.simx\",\n        \"sha256\": \"4bc4a1...\",         // hash of the file, ties the document to this building\n        \"simien_version\": \"8.1.0.29\",\n        \"schema_version\": \"8.1.2.16\",\n        \"schema_exact\": false,\n        \"job_id\": \"...\"\n      },\n      \"simulations\": [{\"id\": \"aarsim#12\", \"type\": \"yearsim\", \"name\": \"...\"}],\n      \"limits\": {\"facades\": {\"uvalue\": {\"min\": 0.05, \"max\": 6.0, \"unit\": \"W/m²K\"}}},\n      \"parameters\": {\n        \"facades\": [\n          {\"id\": \"fasade#3\", \"label\": \"Facade in zone 'a'\",\n           \"values\": {\"uvalue\": 0.18, \"thermal_cap\": 10.0}}\n        ],\n        \"usage_profiles\": [\n          {\"id\": \"internlaster#8/usage_person\", \"kind\": \"person\",\n           \"interval_minutes\": 15, \"unit\": \"percent\", \"profile\": [100.0, ...]}\n        ]\n      },\n      \"excluded\": {\"by_rule\": {\"geometry\": 42, \"date\": 4}, \"numeric_not_in_registry\": 310}\n    }\n\nNotes:\n- simulations lists every id you can pass as params to /simulate, including evaluations\n  (energy label, profitability).\n- An object an accepted measure replaces carries \"replaced_by_measure\": {\"measure\", \"measure_name\",\n  \"replacement\"}. Year and winter simulations use the replacement, so edit that object instead.\n- Only numbers inside values (series / profile for arrays) are editable. id and label are context.\n- Geometry (areas, orientations, inclinations) is deliberately not editable; see /simx-metadata.\n- excluded reports what was left out and why.\n\nResponse Headers:\n- X-Job-ID: Unique job identifier\n- X-Simulatable-Parameter-Objects: Number of editable objects in the document\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: under 1 s","body":{"mode":"formdata","formdata":[{"key":"file","description":"Your .simx building file (encrypted). A plaintext .sxi also works.","type":"file","src":[]}]}}},{"name":"Describe a building (.simx)","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/simx-metadata","host":["{{baseUrl}}"],"path":["api","v1","sim","simx-metadata"]},"description":"Decrypt a .simx file and return metadata extracted from the decrypted .sxi.\n\nParameters:\n- file: The encrypted .simx file\n\nReturns the metadata as a downloadable JSON file.\n\nResponse Headers:\n- X-Job-ID: Unique job identifier\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: under 1 s","body":{"mode":"formdata","formdata":[{"key":"file","description":"The encrypted .simx file to extract metadata from","type":"file","src":[]}]}}},{"name":"Parse a result (.sxo) into JSON and CSV (ZIP)","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/sxo/parse","host":["{{baseUrl}}"],"path":["api","v1","sim","sxo","parse"]},"description":"Parse a .sxo result and export everything in it.\n\nParameters:\n- file: A .sxo result file\n\nReturns:\nA ZIP with JSON files of the parsed data, CSV files of its tables, graphs, bar charts\nand hourly values, and the variable catalog. The same exports /simulate gives with format=zip.\n\nResponse Headers:\n- X-Export-Type: full\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: 5-40 s for a 10 MB result","body":{"mode":"formdata","formdata":[{"key":"file","description":"A .sxo result file, e.g. from /simulate with format=sxo","type":"file","src":[]}]}}},{"name":"Variable catalog of a result (.sxo)","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/sxo/catalog","host":["{{baseUrl}}"],"path":["api","v1","sim","sxo","catalog"]},"description":"Build the variable catalog of a .sxo result.\n\nParameters:\n- file: A .sxo result file\n\nReturns:\nThe catalog as a JSON download: every variable in the result with its metadata\n(name, type, source, zone, ...). The same catalog /simulate gives with format=catalog.\n\nResponse Headers:\n- X-Export-Type: catalog\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: 1-5 s for a 10 MB result","body":{"mode":"formdata","formdata":[{"key":"file","description":"A .sxo result file, e.g. from /simulate with format=sxo","type":"file","src":[]}]}}},{"name":"Structure and contents of a result (.sxo)","request":{"method":"POST","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/sxo/info","host":["{{baseUrl}}"],"path":["api","v1","sim","sxo","info"]},"description":"Describe what a .sxo result contains.\n\nParameters:\n- file: A .sxo result file\n\nReturns:\nA JSON download with the file's metadata (project, version, simulation type, ...),\nits zones with element counts, the lists of tables, graphs and charts, and error and\nwarning counts.\n\nResponse Headers:\n- X-Export-Type: info\n\nRequires valid API key authentication.\n\n**Limits**\n\n- Rate limit: 120 requests per minute per client IP\n- Files up to 50 MB (larger: 413 FILE_TOO_LARGE)\n- Typical time: 1-5 s for a 10 MB result","body":{"mode":"formdata","formdata":[{"key":"file","description":"A .sxo result file, e.g. from /simulate with format=sxo","type":"file","src":[]}]}}},{"name":"Simulation service health and SIMIEN versions","request":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/api/v1/sim/health","host":["{{baseUrl}}"],"path":["api","v1","sim","health"]},"description":"Get SIMIEN API health status and available versions.\n\nNo authentication required.","auth":{"type":"noauth"}}}]}]}