Aller au contenu principal

REST API

Everything the modeller does — validating a YAML model, generating NodeSet2.xml, reverse-engineering an existing nodeset — is available over HTTP. It is the same engine the web editor and the MCP server call.

Base URL

https://api.opcua-modeler.sterfive.io

Your first call​

Validation works without an account. Save a model as model.yaml:

model.yaml
namespaceUri: http://example.com/UA/Demo/
version: 1.0.0
publicationDate: "2026-01-01T00:00:00Z"

objectTypes:
- browseName: MyDeviceType
subtypeOf: ua:BaseObjectType

and post it:

curl -X POST https://api.opcua-modeler.sterfive.io/api/v1/validate \
-H "Content-Type: text/yaml" \
--data-binary @model.yaml

The body is the model itself, as text/yaml — not JSON with the YAML inside a field. You get back diagnostics with severities, codes and line numbers.

Anonymous validation is capped at 50 calls per day per IP. See Quotas and rate limits.

What you can call​

EndpointMethodBodyKey needed
/api/v1/validatePOSTtext/yamlno — 50/day per IP
/api/v1/dsl-referenceGET—no
/api/v1/companionsGET—no
/api/v1/openapiGET—no
/api/v1/generatePOSTtext/yamlyes
/api/v1/reversePOSTapplication/xmlyes
/api/v1/try-serverPOST · GET · DELETEJSONyes (or a browser session)

generate accepts ?include=docs to return the Markdown documentation alongside the NodeSet2 XML and symbols. reverse accepts ?ns=<namespaceUri> to pick which namespace of the source nodeset to convert.

validate, generate and reverse also accept text/plain, which is what several HTTP clients send by default.

Interactive reference​

Per-endpoint request and response schemas, with a Try It panel that runs against your own key, live in the app:

That page is generated from the OpenAPI document at /api/v1/openapi, so it always matches the deployed API. This section covers the parts a schema cannot express: how authentication behaves, what the quotas are, and what each error means.

Next​