Sync nodes/edges

Required capabilities: dataModelsAcl:READ

Subscribe to changes for nodes and edges in a project, matching a supplied filter. This endpoint will always return a NextCursor. The sync specification mirrors the query interface, but sorting is not currently supported. For more information, see Query language.

Securityoidc-token or oauth2-client-credentials or oauth2-open-industrial-data or oauth2-auth-code
Request
Request Body schema: application/json
required

Change filter specification

required
object [ 1 .. 50 ] properties
object <= 50 properties

Cursors returned from the previous sync request. These cursors match the result set expressions you specified in the with clause for the sync.

required
object [ 1 .. 50 ] properties
object

Parameters to return

includeTyping
boolean (IncludeTyping)

Should we return property type information as part of the result?

allowExpiredCursorsAndAcceptMissedDeletes
boolean
Default: false

Sync cursors will expire after 3 days. This is because soft-deleted instances are cleaned up after this grace period, so a client using a cursor older than that risks missing deletes. If this option is set to true, the API will allow the use of expired cursors.

allowPartialResponse
boolean
Default: false

By default, every returned batch is full until the sync cursor is caught up to the latest instances (except between phases in two-phase sync). If this flag is true, allow returning non-full batches, or even empty batches, before the cursor is caught up. This can help to avoid timeouts if the cursor falls behind. Consult cursorCaughtUp in the query response for information as to whether there is actually more data available by following the sync cursor immediately.

object (DebugParameters)

Return query debug notices.

Responses
200

Matching nodes and edges

400

The response for a failed request.

post/models/instances/sync
Request samples
application/json
{
  • "with": {
    • "property1": {
      },
    • "property2": {
      }
    },
  • "cursors": {
    • "sync cursor reference1": "string",
    • "sync cursor reference2": "string"
    },
  • "select": {
    • "property1": {
      },
    • "property2": {
      }
    },
  • "parameters": {
    • "parameter-identifier1": "string",
    • "parameter-identifier2": "string"
    },
  • "includeTyping": false,
  • "allowExpiredCursorsAndAcceptMissedDeletes": false,
  • "allowPartialResponse": false,
  • "debug": {
    • "emitResults": true,
    • "timeout": 1,
    • "includeTranslatedQuery": true,
    • "includePlan": true,
    • "includeLlmPrompt": false,
    • "profile": false
    }
}
Response samples
application/json
{
  • "items": {
    • "result-expression1": [
      ],
    • "result-expression2": [
      ]
    },
  • "typing": {
    • "result-expression1": {
      },
    • "result-expression2": {
      }
    },
  • "nextCursor": {
    • "cursor-name1": "string",
    • "cursor-name2": "string"
    },
  • "cursorCaughtUp": {
    • "cursor-name1": true,
    • "cursor-name2": true
    },
  • "debug": {
    • "notices": [
      ],
    • "translatedQuery": {
      },
    • "plan": {
      },
    • "llmPrompt": "string"
    }
}