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:
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
| Endpoint | Method | Body | Key needed |
|---|---|---|---|
/api/v1/validate | POST | text/yaml | no — 50/day per IP |
/api/v1/dsl-reference | GET | — | no |
/api/v1/companions | GET | — | no |
/api/v1/openapi | GET | — | no |
/api/v1/generate | POST | text/yaml | yes |
/api/v1/reverse | POST | application/xml | yes |
/api/v1/try-server | POST · GET · DELETE | JSON | yes (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
- Authentication and API keys — getting a key, and its 30-day lifecycle
- Quotas and rate limits — the canonical numbers
- Errors — every status code and what to do about it