Skip to main content

Protocols, URLs, and configuration

Environments​

EnvironmentHTTPS base URLHTTP API reference
Productionhttps://vista-gateway-api.dnv.comSwagger UI
Customer testhttps://vista-gateway-customer-test-api.dnv.comSwagger UI

Use the ingest API key for the customer + data provider connection in the same environment as the base URL. The tutorials use customer test and require customer-test keys.

HTTPS​

Routes​

All paths below are relative to the environment's base URL.

Method and pathPurpose
POST /ISO19848/Send a DataChannelList or TimeSeriesData JSON document. The asset is taken from Package.Header.ShipID.
GET /ISO19848/DataChannelList/{assetId}Read back recent DataChannelLists for an asset.
POST /experimental/{dataType}/{assetId}Send an experimental, registered JSON data type.
POST /attachment/{packageId}Upload a file linked to an existing package.

For the experimental data-type route, the optional typeVersion query parameter selects a version. See other data types. The {packageId} in the attachment route is the ID returned by the Gateway, not your external reference ID.

Headers​

HeaderRequiredValue
AuthorizationYesApiKey <your-ingest-api-key>
User-AgentYes for uploadsYour sending system and version, for example ExampleIngest/1.0
Content-TypeYes for uploadsapplication/json for JSON packages; the file's media type for attachments
X-Package-External-IdNoYour own package reference, for traceability
X-Package-Correlation-IdNoA reference shared by related requests
Content-LengthYes for attachmentsFile size in bytes; normally set by your HTTP client
X-Attachment-FilenameNo; recommended for attachmentsFilename including its extension, for example report.pdf

External and correlation IDs are metadata. Do not treat either as an idempotency key or assume they prevent duplicate ingest.

Successful responses​

JSON ingest returns 200 OK with a Gateway-assigned ID:

{
"packageId": "11111111-1111-4111-8111-111111111111"
}

Attachment upload returns 201 Created:

{
"attachmentPackageId": "22222222-2222-4222-8222-222222222222",
"parentPackageId": "11111111-1111-4111-8111-111111111111"
}

These IDs are illustrative. Store the actual response IDs for traceability and subsequent attachment uploads.

Error responses​

Errors can contain problem details and field-level validation messages.

StatusMeaning
400 Bad RequestInvalid headers, payload, asset, data type/version, or failed validation. Oversized JSON can also return this status.
401 UnauthorizedMissing or rejected ingest credentials, or an attachment's parent belongs to another ingest connection.
404 Not FoundThe route or referenced resource, such as an attachment's parent package, was not found.
413 Payload Too LargeThe request body exceeds the applicable size limit.
429 Too Many RequestsThe ingest connection's request rate is exceeded.
500 Internal Server ErrorAn unexpected server error occurred. Contact your DNV representative with the request details, excluding the API key.
Other 5xxA service or dependency failure occurred.

See request limits for thresholds and troubleshoot ingest for recovery steps.

MQTT​

MQTT ingest uses MQTT v5 over secure WebSockets, not a plain TCP connection.

EnvironmentWebSocket URL
Productionwss://vista-gateway-api.dnv.com/mqtt
Customer testwss://vista-gateway-customer-test-api.dnv.com/mqtt

Configure your connection and messages as follows:

SettingValue
Usernameconnection
PasswordYour ingest API key
QoS1 (at least once)
Retainfalse
Content typeapplication/json
Publish topicPayload
ISO19848ISO 19848 DataChannelList or TimeSeriesData; asset from Package.Header.ShipID
experimental/{dataType}/{assetId}Registered experimental JSON data type

Optional MQTT user properties are externalId, correlationId, and typeVersion (for generic data types). Use ISO19848 without a leading slash or asset suffix for ISO 19848 packages.

Check publish acknowledgements and handle rejected messages. QoS 1 does not guarantee exactly-once delivery. Upload attachments over HTTPS.