All versions of this documentation
X

Linkurious

Linkurious - Get status

Get the status of the Linkurious server.

/api/status

Success 200

Field Type Description
code number

Status code of the server (100 : starting, 200 : OK, >400 : problem)

name string

Current server status

message string

Description of the current server status

uptime number

Seconds since the server is up

HTTP/1.1 200 OK
{
  "code": 200,
  "name": "initialized",
  "message": "Linkurious ready to go :)",
  "uptime": 122
}

Linkurious - Get version

Get Linkurious current version information.

/api/version

Success 200

Field Type Description
tag_name string

Version tag

name string

Version name

prerelease boolean

Whether this is a pre-release

HTTP/1.1 200 OK
{
  "tag_name": "v0.5.0",
  "name": "Nasty Nostradamus",
  "prerelease": true
}

Linkurious - Save an event

Save an event to the analytics log file. All events follow the Segment Spec.

/api/tm

Parameter

Field Type Description
type string

Type of message

Allowed values: "identify", "track", "page"

userId optional number

ID of the user

event optional string

Name of the action that the user has performed

name optional string

Name of the page that the user has seen

properties optional object

Free-form dictionary of properties of the event/page

traits optional object

Free-form dictionary of traits of the user

timestamp optional string

Timestamp when the message itself took place, defaulted to the current time, in ISO-8601 format

context optional object

Dictionary of extra information of the user

HTTP/1.1 204 No Content

Linkurious - Create a report

Collect all the analytics and log files in a compressed tarball and return it.

/api/admin/report

Permission: User action: admin.report

Parameter

Field Type Description
withConfiguration optional boolean

Whether to include the configuration within the tarball

HTTP/1.1 200 OK

Linkurious - Restart Linkurious

Restart Linkurious. Return the URL of Linkurious after the restart.

/api/admin/restart

Permission: User action: admin.config

Success 200

Field Type Description
url string

The url of Linkurious to connect to after the restart

HTTP/1.1 200 OK
{
  "url": "http://localhost:3000"
}

Linkurious - Get the list of custom files

List all custom files in the specified root directory.

/api/customFiles

Permission: authenticated  

Parameter

Field Type Description
root optional string

Root directory of the files to be listed

Default value: .

extensions optional string

Comma separated list of file extensions to filter the results (e.g: png,gif,jpg,jpeg)

Success 200

Field Type Description
results object[]

The list of custom files

  path string

The URL path of the file

  name string

The path to the file relative to root and separated by >

HTTP/1.1 200 OK
[
  {
    "path": "/myImages/ball.png",
    "name": "ball"
  },
  {
    "path": "/myImages/illustrations/Le_college_fou_fou_fou.jpg",
    "name": "illustrations > Le_college_fou_fou_fou"
  },
  {
    "path": "/myImages/illustrations/black-panther.jpg",
    "name": "illustrations > black-panther"
  },
  {
    "path": "/myImages/illustrations/house.png",
    "name": "illustrations > house"
  },
  {
    "path": "/myImages/illustrations/trump.jpg",
    "name": "illustrations > trump"
  }
]

DataSource

DataSource - Get data-sources status

Get the status of all the data-sources. Users can only see data-sources with at least one group belonging to that data-source. If a user has the "admin.connect" access right, it can also see all the disconnected data-sources.

/api/dataSources

Permission: guest user  

Parameter

Field Type Description
with_styles optional boolean

Whether to include the default styles of the data-sources

with_captions optional boolean

Whether to include the default captions of the data-sources

Success 200

Field Type Description
sources object[]

Data-sources

  name string

Name of the data-source

  configIndex number

Index of the data-source in the dataSources array in the configuration

  key string

Unique key of this data-source (it's null if the data-source is not connected)

  connected boolean

Whether the data-source is connected

  state string

Current state of the data-source

Allowed values: "offline", "connecting", "needIndex", "indexing", "ready"

  reason string

Explanation of the current state

  error optional string

The error that caused the current state, if any

  settings object

Settings of the data-source

    strictSchema object

Whether the schema is in strict mode

    propertyKeyAccessRights object

Whether Property Key Access Rights is enabled

    alternativeIds object

Current source alternative IDs

      node string

Alternative node ID

      edge string

Alternative edge ID

    latitudeProperty string

The default node property used for latitude

    longitudeProperty string

The default node property used for longitude

    skipEdgeIndexation boolean

Whether edges are not indexed for this source

    readOnly boolean

Whether the source is in readonly mode

  features object

Features of the data-source

    immutableNodeCategories boolean

Whether node categories are immutable

    maxNodeCategories number

Maximum number of categories for a node

    canCount boolean

Whether one among the graph or the index can count nodes and edges

    alerts boolean

Whether alerts are available

    dialects string[]

Dialects supported by the graph database

    supportNativeDates boolean

Whether the Graph database supports native dates

    nativeTemporalTypes string[]

Supported native temporal types (none if native dates are not supported).

Allowed values: "date", "datetime", "localdatetime"

    externalIndex boolean

Whether the search index is internal (e.g: elasticsearch) or external

    alternativeIds boolean

Whether alternative IDs can be used

    canIndexEdges boolean

Whether the search index can index edges

    searchHitsCount boolean

Whether the search result will contain 'totalHits' or 'moreResults'

  defaultStyles optional object

Default styles of the data-source

    node INodeStyle[]

Node IStyles

    edge IEdgeStyle[]

Edge IStyles

  defaultCaptions optional object

Default captions of the data-source

    nodes NodeCaption

Node ICaptions

    edges EdgeCaption

Edge ICaptions

  indexState optional object
    searchEnabled boolean

Whether the search is enabled or not

    visibilityConsistent boolean

Whether all searchable properties are indexed

    propertyTypeConsistent boolean

Whether all properties are indexed with the same type declared in the schema

    indexOptimized boolean

Whether no non-searchable properties are indexed

HTTP/1.1 200 OK
[
  {
    "name": "Database #0",
    "configIndex": 0,
    "key": "a2e3c50f",
    "connected": true,
    "state": "ready",
    "reason": "The data-source is ready.",
    "settings": {
      "strictSchema": false
      "alternativeIds": {
        "node": "name",
        "edge": "altEdgeID"
      },
      "skipEdgeIndexation": false,
      "readOnly": false
    },
    "features": {
      "immutableNodeCategories": false,
      "canCount": true,
      "alerts": true,
      "dialects": [
        "cypher"
      ],
      "externalIndex": false,
      "alternativeIds": true,
      "canIndexEdges": true,
      "searchHitsCount": true
    },
    "indexState": {
      "searchEnabled": true,
      "visibilityConsistent": true,
      "propertyTypeConsistent": true,
      "indexOptimized": true
    },
    "defaultPropertiesOrder": {
     "nodes": {
       "CITY": ["name", "size"],
       "COMPANY":  ["name", "country"]
     },
     "edges": {
       "INVESTED_IN": ["amount", "funded_month"]
     }
   }
  }, {
    "name": "Database #1",
    "configIndex": 1,
    "key": "ef984bb0",
    "connected": true,
    "state": "needIndex",
    "reason": "The data-source needs to be indexed.",
    "settings": {
      // ...
    },
    "features": {
      // ...
    },
    "defaultPropertiesOrder": {
     "nodes": {
       "CITY": ["name", "size"],
       "COMPANY":  ["name", "country"]
     },
     "edges": {
       "INVESTED_IN": ["amount", "funded_month"]
     }
   }
  }, {
    "name": "Database #2",
    "configIndex": 2,
    "key": null,
    "connected": false,
    "state": "offline",
    "reason": "Could not connect to graph database server.",
    "error": "Connection refused (check your username and password)",
    "settings": {
      // ...
    },
    "features": {
      // ...
    },
    "defaultPropertiesOrder": {
     "nodes": {
       "CITY": ["name", "size"],
       "COMPANY":  ["name", "country"]
     },
     "edges": {
       "INVESTED_IN": ["amount", "funded_month"]
     }
   }
  }
]
 HTTP/1.1 200 OK
[{
    "name": "Database #0",
    "configIndex": 0,
    "connected": true,
    "key": "4ee5973b",
    "state": "ready",
    "reason": "The data-source is ready.",
    "settings": {
      "readOnly": false,
      "strictSchema": false,
      "alternativeIds": {},
      "skipEdgeIndexation": true
    },
    "features": {
      "immutableNodeCategories": false,
      "canCount": false,
      "alerts": false,
      "dialects": [
        "cypher"
      ],
      "externalIndex": true,
      "alternativeIds": false,
      "canIndexEdges": false,
      "searchHitsCount": false,
      "canDryRun": false,
      "supportNativeDate": false
    },
    "indexState": {
      "searchEnabled": true,
      "visibilityConsistent": true,
      "propertyTypeConsistent": true,
      "indexOptimized": true
    },
    "defaultStyles": {
      "node": [{
        "index": 0,
        "type": "any",
        "style": {
          "color": {
            "type": "auto",
            "input": [
              "categories"
            ]
          }
        }
      }],
      "edge": []
    },
    "defaultCaptions": {
      "nodes": {
        "CITY": {
          "active": true,
          "displayName": true,
          "properties": [
            "name"
          ]
        },
        "COMPANY": {
          "active": true,
          "displayName": false,
          "properties": [
            "name",
            "country"
          ]
        }
      },
      "edges": {
        "INVESTED_IN": {
          "active": true,
          "displayName": true,
          "properties": [
            "funded_month"
          ]
        }
      }
    },
    "defaultPropertiesOrder": {
      "nodes": {
        "CITY": ["name", "size"],
        "COMPANY":  ["name", "country"]
      },
      "edges": {
        "INVESTED_IN": ["amount", "funded_month"]
      }
    }
 }]

DataSource - Set default styles and captions

Set default design styles and/or captions for the given data-source.

/api/admin/source/:sourceKey/setDefaults

Permission: User action: admin.styles

Parameter

Field Type Description
styles optional object

New default styles for the data-source

  node INodeStyle[]

Node styles

  edge IEdgeStyle[]

Edge styles

  edgeGroup IEdgeGroupStyle

Edge group styles

captions optional object

New default captions for the data-source

  nodes NodeCaption

Nodes captions

  edges EdgeCaption

Edges captions

propertiesOrder optional object

New default properties order for the data-source

  nodes NodesPropertiesOrder

Nodes properties order

  edges EdgesPropertiesOrder

Edges properties order

DataSource - Reset settings for new visualizations

Reset design and/or captions of all sandboxes of the given data-source to default values. If design is true, set design.palette and design.styles to default palette and defaultStyles of the data-source. If captions is true, set nodeFields.captions and edgeFields.captions to current defaultCaptions.nodes and defaultCaptions.edges of the data-source.

/api/admin/source/:sourceKey/resetDefaults

Permission: User action: admin.styles

Parameter

Field Type Description
design boolean

Whether to reset default design to default values

captions boolean

Whether to reset default captions to default values

DataSource - Connect a disconnected data-source

Connect a disconnected data-source.

/api/admin/source/:sourceIndex/connect

Permission: User action: admin.connect

Parameter

Field Type Description
sourceIndex optional number

Index of the data-source in the dataSources array in the configuration

ignoreStoreIdChange boolean

whether to connect even if the graph db store ID has changed (false if unspecified)

DataSource - Delete all data-source data

Delete all data of data-source (visualizations, access rights, widgets, full-text indexes). Optionally merge visualizations and widgets into another data-source instead of deleting them. Warning: when merging into another data-source, visualizations may break if node and edge IDs are not the same in the target data-source.

/api/admin/sources/data/:sourceKey

Permission: User action: admin.config

Parameter

Field Type Description
merge_into string

Key of the data-source to merge visualizations and widgets into

merge_replace boolean

Whether to Overwrite groups, graph schema and access-rights in target data-source

Success 200

Field Type Description
migrated boolean

True if the affected items have been migrated to another data-source, false if they have been deleted

affected object

Affected object counts

  favorite number

Number of migrated/deleted favorite items

  visualizations number

Number of migrated/deleted visualizations (with their widgets)

  folders number

Number of migrated/deleted visualization folders

  alerts number

Number of migrated/deleted alerts

  alertFolders number

Number of migrated/deleted alert folders

  cases number

Number of migrated/deleted cases

  graphQueries number

Number of migrated/deleted graph queries

  edgeTypes number

Number of migrated/deleted edge types

  edgeProperties number

Number of migrated/deleted edge properties

  nodeTypes number

Number of migrated/deleted node types

  nodeProperties number

Number of migrated/deleted node properties

  accessRights number

Number of migrated/deleted access rights

  customActions number

Number of migrated/deleted customActions

DataSource - Delete a data-source configuration

Delete a data-source configuration that has currently no connected data-source.

/api/admin/sources/config/:configIndex

Permission: User action: admin.config

Parameter

Field Type Description
configIndex number

Index of a data-source configuration

DataSource - Get all data-sources information

Get the admin info of all the data-sources, including:

  • a disconnected data-source configuration
  • a disconnected data-source state not configured anymore
  • a connected data-source (data-source configuration + state)

/api/admin/sources

Permission: User action: admin.config

Success 200

Field Type Description
sources object[]

Data-source information

  lastSeen string

Last time this data-source was seen online (ISO-8601 date)

  lastIndexed string

Last time this data-source was indexed (ISO-8601 date)

  lastSampled string

Last time this data-source was sampled (ISO-8601 date)

  key string

Key of the data-source (when is has been connected before, null otherwise)

  host string

Host of the data-source

  port string

Port of the data-source

  storeId string

Unique store identifier of the graph database (when it has been connected before, null otherwise)

  state string

State code if the data-source ("ready" , "offline" ...)

  visualizationCount number

Number of visualizations that exist for this data-source

  configIndex number

The index of the data-source's config (if the config still exists, null otherwise)

DataSource - Create a new data-source configuration

Create a new data-source configuration made of a graph database configuration and an index configuration. Return the configuration index of the new data-source.

/api/admin/sources/config

Permission: User action: admin.config

Parameter

Field Type Description
name optional string

The name of the data-source

sourceKey optional string

The source key of the data-source

readOnly optional boolean

Whether the data-source is read-only

graphdb object

The configuration options of the graph database, the expected object depends on the vendor field

  [neo4j] Neo4jConfig

vendor="neo4j" The configuration options for a Neo4j graph database

  [cosmosDb] CosmosDbConfig

vendor="cosmosDb" The configuration options for a Cosmos DB graph database

  [memgraph] MemgraphConfig

vendor="memgraph" The configuration options for a Memgraph graph database

  [neptune] NeptuneConfig

vendor="neptune" The configuration options for an AWS Neptune graph database

index object

The configuration options of the index, the expected object depends on the vendor field

  [elasticSearch] ElasticSearchConfig

vendor="elasticSearch" The configuration options for an Elasticsearch index

  [neo4jSearch] Neo4jSearchConfig

vendor="neo4jSearch" The configuration options for a Neo4j index

  [azureSearch] AzureSearchConfig

vendor="azureSearch" The configuration options for an Azure Search index

  [neptuneSearch] NeptuneSearchConfig

vendor="neptuneSearch" The configuration options for an AWS Neptune Search index

Config

Config - Get the configuration

Get the configuration of Linkurious.

/api/config

Parameter

Field Type Description
sourceIndex optional number

Index of the data-source in the dataSources array in the configuration of which the source field in the response will be about

Default value: 0

Success 200

Field Type Description
access object

Access configuration

  authRequired boolean

Whether authentication is required

  disableLocalAuth boolean

Whether log-in form is hidden (username+password)

  guestMode boolean

Whether the guest mode is enabled

  loginTimeout number

Seconds of inactivity after which a user is logged out

  dataEdition boolean

Whether it's possible to create, update and delete nodes and edges

  widget boolean

Whether the widget feature is enabled

  autoRefreshGroupMapping boolean

Whether access rights for an external user should be refreshed at every login

ogma object

Configuration of Ogma

domain string

The server domain

url string

The server url

ssoProvider string

The current SSO provider (or null if none)

setupAuthentication boolean

Whether authentication has to be set up (see the Setup authentication endpoint for more information)

license object

License information

  state string

Current status of the license (valid, expired or missing)

advanced object

Advanced data-source settings applied to all data-sources

  supernodeThreshold number

Number of connections a node must have to be a supernode

  dataSourceConnectionTimeout number

Number of seconds after which Linkurious gave up in connecting to a data-source

  dataSourceAutoReconnectInterval number

Number of seconds after which Linkurious will try to reconnect automatically to all offline data-sources

  pollInterval number

Number of seconds between "pings" to a data-source when connected

  indexationChunkSize number

Number of nodes/edges read at once from a data-source when indexing it

  expandThreshold number

Number of expanded nodes that will trigger the "limit expand to" popup

  rawQueryLimit number

Maximum number of nodes returned by a raw query

  searchAddAllThreshold number

Maximum number of added nodes using the "add all" in a search

  minSearchQueryLength number

Minimum number of characters in a search query before it is sent to the server

  rawQueryTimeout number

Timeout of pattern queries (cypher, gremlin, etc.) in milliseconds

  showBuiltinQueries boolean

Whether the builtin queries are shown or hidden

  sampledItemsPerType number

Number of nodes/edges per itemType to read while sampling the graph schema

  sampledVisualizationItems number

Number of nodes/edges to read to read from existing visualizations while sampling the graph schema

  layoutWorkers number
  defaultFuzziness number
  extraCertificateAuthorities string
  obfuscation string
leaflet object[]

Leaflet layer configuration

  name string

Name of the layer

  urlTemplate string

Tile-URL template for this layer

  attribution string

Copyright attribution text for this layer

  minZoom number

Minimum valid zoom of the layer

  maxZoom number

Maximum valid zoom of the layer

  thumbnail string

Path of this layer's thumbnail, relative to client root

  subdomains string

Subdomain letters to use in tile-URL template

  id string

Layer ID (needed for MapBox layers)

  accessToken string

Layer access token (user for MapBox layers)

  overlay string
db object

DB configuration (if admin)

server object

Server configuration (if admin)

alerts object

Alerts configuration

  enabled boolean

Whether alerts are enabled

  maxMatchesLimit number

The maximum and default number of matches stored for an alert model

  maxRuntimeLimit number

The maximum and default runtime limit for an alert update (in milliseconds)

auditTrail object

AuditTrail configuration (if admin)

defaultPreferences object

Default preferences of a newly created user (if admin)

guestPreferences object

Preferences of the guest user (if admin)

dataSource object

Data-source configuration (if admin)

  name string

Name of the current data-source

  readOnly boolean

Whether the current data-source is read-only

  graphdb object

Graph configuration of the current data-source

  index object

Index configuration of the current data-source

plugins object

Linkurious plugins configuration

   string

*.basePath A base path on which the plugin will be mounted

emailNotifications object

Linkurious email notifications configuration

needRestart boolean

Whether the Linkurious Server needs to be restarted

Config - Update the configuration

Update Linkurious configuration.

/api/config

Permission: User action: admin.config

Parameter

Field Type Description
path optional string

The configuration path to override (use dataSource.* to edit the current data-source configuration)

configuration optional any

The configuration value to set for the given path

sourceIndex optional number

Index of the data-source in the dataSources array in the configuration

Default value: 0

reset optional boolean

Whether to reset the configuration to default values (the configuration parameter will be ignored). If the path parameter is specified, only the configuration corresponding to the specified path will be reset

{
    "path": "dataSource.name",
    "configuration": "New data-source name",
    "sourceIndex": 2
}

License

License - Get license info

Get information about the currently saved license.

/api/license

Permission: User action: admin.config

HTTP/1.1 200 OK
{
  "state": "valid",
  "endDate": 1650629985
}

License - Save license if missing

Verify the submitted license and save it if it's valid and there is no saved license yet.

/api/license
HTTP/1.1 200 OK
{
  "state": "valid",
  "endDate": 1650629985
}
HTTP/1.1 400 Bad Request
{
  "key": "invalid_license",
  "message": "License is invalid."
}

License - Update license

Replace the saved license with the submitted one. Fails if submitted license is invalid.

/api/license

Permission: User action: admin.config

HTTP/1.1 200 OK
{
  "state": "valid",
  "endDate": 1650629985
}
HTTP/1.1 400 Bad Request
{
  "key": "invalid_license",
  "message": "License is invalid."
}

Auth

Auth - Login

Log a user in by e-mail or username and password and return it.

/api/auth/login

Parameter

Field Type Description
usernameOrEmail string

User e-mail or username

password string

User password

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "username": "Unique user",
  "email": "user@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "builtin": true,
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "admin.app",
      "admin.report",
      "admin.schema",
      "admin.schema.read",
      "admin.users.delete",
      "admin.config",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:45.730Z",
  "lastActiveDate": "2016-08-21T11:46:27.230Z"
}

Auth - Login and redirect

Log a user in by e-mail or username and password and redirect it to a given path.

/api/auth/loginRedirect

Parameter

Field Type Description
usernameOrEmail string

User e-mail or username

password string

User password

path optional string

Path to redirect to

Default value: /

errorPath optional string

Path to redirect to in case of error

Default value: path

HTTP/1.1 302 Redirect

Auth - Logout

Log the current user out.

/api/auth/logout
HTTP/1.1 204 No Content

Auth - Get current user

Get the profile of the current user.

/api/auth/me

Permission: guest user  

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "username": "Unique user",
  "email": "user@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "builtin": true,
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "admin.app",
      "admin.report",
      "admin.schema",
      "admin.schema.read",
      "admin.users.delete",
      "admin.config",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:45.730Z",
  "lastActiveDate": "2016-08-21T11:46:27.230Z"
}
HTTP/1.1 401 Unauthorized
{
  "key": "unauthorized",
  "message": "Unauthorized."
}

Auth - Setup authentication

Create and connect first user in order to setup local authentication. This action is allowed only if the setupAuthentication configuration flag is true, that is if all these conditions are true:

  • Authentication is enabled
  • There is no existing admin user account (without considering the Unique User built-in user account)
  • There is no configured LDAP/SSO provider and no external group mapping to the admin group

This action does not require to be authenticated. Instead, a Linkurious Enterprise license must be provided, as a proof of ownership of the Linkurious instance.

/api/auth/me

Parameter

Field Type Description
username string

Username of the user

email string

E-mail of the user

password string

Password of the user

license string

A valid license

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key. The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right. The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 201 Created
{
  "id": 1,
  "username": "admin",
  "email": "admin@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
    "actions": {
      "*": [
        "admin.config",
        "admin.users.delete",
        "admin.app",
        "admin.users",
        "admin.connect",
        "admin.index",
        "admin.schema",
        "admin.schema.read",
        "admin.styles",
        "admin.report",
        "admin.alerts",
        "rawWriteQuery",
        "rawReadQuery",
        "runQuery",
        "writeCustomAction",
        "runCustomAction"
     ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": [
          "*"
        ]
      },
      "edges": {
        "edit": [],
        "write": [
          "*"
        ]
      },
      "alerts": {
        "read": [
          "*"
        ]
      }
    }
  },
  "createdAt": "2022-02-21T14:47:00.643Z",
  "updatedAt": "2022-02-21T14:47:00.643Z"
}

Auth - Update current user

Update the current user.

/api/auth/me

Permission: authenticated  

Parameter

Field Type Description
username optional string

New username

email optional string

New e-mail

password optional string

New password

preferences optional object

New user preferences

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "username": "Unique user",
  "email": "user@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "builtin": true,
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "admin.app",
      "admin.report",
      "admin.schema",
      "admin.schema.read",
      "admin.users.delete",
      "admin.config",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:45.730Z",
  "lastActiveDate": "2016-08-21T11:46:27.230Z"
}

Auth - Login via OAuth2 or SAML2

Redirect the user to the OAuth2 or SAML2 provider for authorization.

/api/auth/sso/login

Parameter

Field Type Description
redirect_url optional string

The URL to redirect to after a successful login

HTTP/1.1 302 Redirect

Application

Application - Get all the applications

Get all the API applications.

/api/admin/applications

Permission: User action: admin.app

Success 200

Field Type Description
applications object[]

Applications

  id number

ID of the application

  name string

Name of the application

  apiKey string

Generated key (32 hexadecimal characters)

  enabled boolean

Whether the application is enabled

  rights string[]

Enabled actions for the application

  groups group[]

Groups the application can act on behalf of

  createdAt string[]

Creation date in ISO-8601 format

  updatedAt string[]

Last update date in ISO-8601 format

HTTP/1.1 200 OK
[
  {
    "id": 1,
    "enabled": true,
    "apiKey": "e3fadcbd39ddb21fe8ecb206dadff36d",
    "name": "test_app",
    "rights": [
      "visualization.create",
      "visualization.edit",
      "visualization.read",
      "visualization.delete"
    ],
    "groups": [
      {
        "id": 3,
        "name": "read and edit",
        "builtin": true,
        "sourceKey": "584f2569"
      }
    ],
    "createdAt": "2017-01-24T11:14:51.337Z",
    "updatedAt": "2017-01-24T11:31:13.769Z"
  },
  {
    "id": 2,
    "enabled": true,
    "apiKey": "738c9f3b66aad7218c69843a78905ccd",
    "name": "test_app_2",
    "rights": [
      "visualization.read"
    ],
    "groups": [
      {
        "id": 2,
        "name": "read",
        "builtin": true,
        "sourceKey": "584f2569"
      }
    ],
    "createdAt": "2017-01-24T11:16:02.417Z",
    "updatedAt": "2017-01-24T11:16:02.417Z"
  }
]

Application - Create an application

Add a new API application.

/api/admin/applications

Permission: User action: admin.app

Parameter

Field Type Description
name string

Name of the application

enabled optional boolean

Whether the application is enabled

Default value: true

groups number[]

IDs of the groups the application can act on behalf of

rights string[]

Enabled actions for the application

Allowed values: "visualization.read", "visualization.create", "visualization.edit", "visualization.delete", "visualization.list", "visualizationFolder.create", "visualizationFolder.edit", "visualizationFolder.delete", "visualizationShare.read", "visualizationShare.create", "visualizationShare.delete", "sandbox", "widget.read", "widget.create", "widget.edit", "widget.delete", "graphItem.read", "graphItem.create", "graphItem.edit", "graphItem.delete", "graphItem.search", "savedGraphQuery.read", "savedGraphQuery.create", "savedGraphQuery.edit", "savedGraphQuery.delete", "alert.read", "alert.doAction", "schema", "admin.index"

Success 200

Field Type Description
id number

ID of the application

name string

Name of the application

apiKey string

Generated key (32 hexadecimal characters)

enabled boolean

Whether the application is enabled

rights string[]

Enabled actions for the application

groups group[]

Groups the application can act on behalf of

createdAt string[]

Creation date in ISO-8601 format

updatedAt string[]

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "enabled": true,
  "apiKey": "76554081e5b0a2d7852deec4990ebc58",
  "name": "test_app",
  "rights": [
    "visualization.create",
    "visualization.edit",
    "visualization.read",
    "visualization.delete"
  ],
  "groups": [
    {
      "id": 3,
      "name": "read and edit",
      "builtin": true,
      "sourceKey": "584f2569"
    }
  ],
  "createdAt": "2017-01-24T11:16:03.445Z",
  "updatedAt": "2017-01-24T11:16:03.445Z"
}

Application - Update an application

Update an API application.

/api/admin/applications/:id

Permission: User action: admin.app

Parameter

Field Type Description
id string

ID of the application

name optional string

Name of the application

enabled optional boolean

Whether the application is enabled

Default value: true

groups optional number[]

IDs of the groups the application can act on behalf of

rights optional string[]

Enabled actions for the application

Allowed values: "visualization.read", "visualization.create", "visualization.edit", "visualization.delete", "visualization.list", "visualizationFolder.create", "visualizationFolder.edit", "visualizationFolder.delete", "visualizationShare.read", "visualizationShare.create", "visualizationShare.delete", "sandbox", "widget.read", "widget.create", "widget.edit", "widget.delete", "graphItem.read", "graphItem.create", "graphItem.edit", "graphItem.delete", "graphItem.search", "savedGraphQuery.read", "savedGraphQuery.create", "savedGraphQuery.edit", "savedGraphQuery.delete", "alert.read", "alert.doAction", "schema"

Success 200

Field Type Description
id number

ID of the application

name string

Name of the application

apiKey string

Generated key (32 hexadecimal characters)

enabled boolean

Whether the application is enabled

rights string[]

Enabled actions for the application

groups group[]

Groups the application can act on behalf of

createdAt string[]

Creation date in ISO-8601 format

updatedAt string[]

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "enabled": true,
  "apiKey": "76554081e5b0a2d7852deec4990ebc58",
  "name": "test_app",
  "rights": [
    "visualization.create",
    "visualization.edit",
    "visualization.read",
    "visualization.delete"
  ],
  "groups": [
    {
      "id": 3,
      "name": "read and edit",
      "builtin": true,
      "sourceKey": "584f2569"
    }
  ],
  "createdAt": "2017-01-24T11:16:03.445Z",
  "updatedAt": "2017-01-24T11:16:03.445Z"
}

Query

Query - Get a graph query

Get a graph query owned by the current user or shared with it.

/api/:sourceKey/graph/query/:id

Permission: guest user   , User action: runQuery API right: savedGraphQuery.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the graph query

Success 200

Field Type Description
id number

ID of the graph query

sourceKey string

Key of the data-source

name string

Name of the graph query

content string

Content of the graph query

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

description string

Description of the graph query

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

write boolean

Whether the query may write the database

graphInput optional string

Type of inputs to the template query (if type="template")

Allowed values: "none", "1-node", "2-nodes", "nodeset"

templateFields optional object

Parsed template fields (if type="template")

type string

Type of the graph query

Allowed values: "static", "template"

right string

Current user's right on the query

Allowed values: "owner", "read"

builtin boolean

Whether the query is builtin

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": -137301277,
  "sourceKey": "e31dc474",
  "name": "Expand non-leaf nodes",
  "content": "MATCH (a)-[]-(b)-[]-(c) WHERE id(a) = {{\"Source\":node}} and a <> c RETURN distinct b",
  "dialect": "cypher",
  "description": "Expand non-leaf nodes.",
  "sharing": "source",
  "type": "template",
  "templateFields": [{
    "key": "Source","type":"node"
  }],
  "graphInput": "1-node",
  "write": false,
  "builtin": true,
  "right": "read"
}

Query - Get all graph queries

Get all the graph queries owned by the current user or shared with it.

/api/:sourceKey/graph/query

Permission: guest user   , User action: runQuery API right: savedGraphQuery.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

type string

Type of the graph queries

Allowed values: "static", "template"

Success 200

Field Type Description
queries object[]

List of queries

  id number

ID of the graph query

  sourceKey string

Key of the data-source

  name string

Name of the graph query

  content string

Content of the graph query

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description string

Description of the graph query

  sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

  sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

  write boolean

Whether the query may write the database

  graphInput optional string

Type of inputs to the template query (if type="template")

Allowed values: "none", "1-node", "2-nodes", "nodeset"

  templateFields optional object

Parsed template fields (if type="template")

  type string

Type of the graph query

Allowed values: "static", "template"

  right string

Current user's right on the query

Allowed values: "owner", "read"

  builtin boolean

Whether the query is builtin

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
[
  {
    "id": -137301277,
    "sourceKey": "e31dc474",
    "name": "Expand non-leaf nodes",
    "content": "MATCH (a)-[]-(b)-[]-(c) WHERE id(a) = {{\"Source\":node}} and a <> c RETURN distinct b",
    "dialect": "cypher",
    "description": "Expand non-leaf nodes.",
    "sharing": "source",
    "type": "template",
    "templateFields": [{
      "key": "Source","type":"node"
    }],
    "graphInput": "1-node",
    "write": false,
    "builtin": true,
    "right": "read"
  }
]

Query - Create a graph query

Create a graph query for the current user.

/api/:sourceKey/graph/query

Permission: User action: raw(Read|Write)Query API right: savedGraphQuery.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

name string

Name of the graph query

content string

Content of the graph query

dialect optional string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

description optional string

Description of the graph query

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the graph query

sourceKey string

Key of the data-source

name string

Name of the graph query

content string

Content of the graph query

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

description string

Description of the graph query

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

write boolean

Whether the query may write the database

graphInput optional string

Type of inputs to the template query (if type="template")

Allowed values: "none", "1-node", "2-nodes", "nodeset"

templateFields optional object

Parsed template fields (if type="template")

type string

Type of the graph query

Allowed values: "static", "template"

right string

Current user's right on the query

Allowed values: "owner", "read"

builtin boolean

Whether the query is builtin

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": -137301277,
  "sourceKey": "e31dc474",
  "name": "Expand non-leaf nodes",
  "content": "MATCH (a)-[]-(b)-[]-(c) WHERE id(a) = {{\"Source\":node}} and a <> c RETURN distinct b",
  "dialect": "cypher",
  "description": "Expand non-leaf nodes.",
  "sharing": "source",
  "type": "template",
  "templateFields": [{
    "key": "Source","type":"node"
  }],
  "graphInput": "1-node",
  "write": false,
  "builtin": true,
  "right": "read"
}

Query - Update a graph query

Update a graph query owned by the current user.

/api/:sourceKey/graph/query/:id

Permission: owner   , User action: raw(Read|Write)Query API right: savedGraphQuery.edit

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the graph query

name optional string

New name of the graph query

content optional string

New content of the graph query

dialect optional string

New dialect of the graph query

Allowed values: "cypher", "gremlin"

description optional string

New description of the graph query

sharing optional string

New sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the graph query

sourceKey string

Key of the data-source

name string

Name of the graph query

content string

Content of the graph query

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

description string

Description of the graph query

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

write boolean

Whether the query may write the database

graphInput optional string

Type of inputs to the template query (if type="template")

Allowed values: "none", "1-node", "2-nodes", "nodeset"

templateFields optional object

Parsed template fields (if type="template")

type string

Type of the graph query

Allowed values: "static", "template"

right string

Current user's right on the query

Allowed values: "owner", "read"

builtin boolean

Whether the query is builtin

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": -137301277,
  "sourceKey": "e31dc474",
  "name": "Expand non-leaf nodes",
  "content": "MATCH (a)-[]-(b)-[]-(c) WHERE id(a) = {{\"Source\":node}} and a <> c RETURN distinct b",
  "dialect": "cypher",
  "description": "Expand non-leaf nodes.",
  "sharing": "source",
  "type": "template",
  "templateFields": [{
    "key": "Source","type":"node"
  }],
  "graphInput": "1-node",
  "write": false,
  "builtin": true,
  "right": "read"
}

Query - Delete a graph query

Delete a graph query owned by the current user.

/api/:sourceKey/graph/query/:id

Permission: owner   , API right: savedGraphQuery.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the graph query

HTTP/1.1 204 No Content

Query - Check a graph query

Check that the given graph query is syntactically correct. Parse the query if it's a template.

/api/:sourceKey/graph/check/query

Permission: User action: rawReadQuery API right: savedGraphQuery.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

query string

The graph query

dialect optional string

Dialect of the graph query (defaults to the first supported dialect of the data-source)

Allowed values: "cypher", "gremlin"

isCaseAttributesQuery optional boolean

Determines if we are validating a caseAttributes query or not (defaults to false)

Success 200

Field Type Description
type string

Type of the graph query

Allowed values: "static", "template"

write boolean

Whether the query may write the database

graphInput optional string

Type of inputs to the template query (if type="template")

Allowed values: "none", "1-node", "2-nodes", "nodeset"

templateFields optional object

Parsed template fields (if type="template")

missingOutputFields optional boolean

Indicates whether the expected output fields are missing from the query or not (defined only if expectedOutputFields is defined)

HTTP/1.1 200 OK
{
  "write": false,
  "graphInput": "2-nodes",
  "templateFields": [
    {
      "key": "src",
      "type": "node"
    },
    {
      "key": "dst",
      "type": "node"
    }
  ],
  "type": "template"
}

Query - Execute a graph query

Get all the nodes and edges matching the given graph query. A subgraph made of all the nodes and the edges from each subgraph matching the graph query is returned.

/api/:sourceKey/graph/run/query

Permission: User action: raw(Read|Write)Query API right: graph.runQuery

Parameter

Field Type Description
sourceKey string

Key of the data-source

edgesTo optional string[]

IDs of nodes that are already visible (they won't be included in the result, but their adjacent edges will be included in the edges field if the other nodes are in nodes)

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

dialect optional string

Dialect of the graph query (defaults to the first supported dialect of the data-source)

Allowed values: "cypher", "gremlin"

limit optional number

Maximum number of matched subgraphs

timeout optional number

Maximum execution time in milliseconds

templateData optional object

Key/value pair data to be filled in the template

query string

The graph query

Success 200

Field Type Description
truncatedByLimit boolean

Whether the response was filtered out because too big

truncatedByAccess boolean

Whether the response was filtered out by access rights

nodes object[]
  id string

ID of the node

  data object
    categories string

Categories of the node

    properties object

Properties of the node

    geo IGeoData

Coordinates of the node

    statistics optional object

Statistics of the node

      supernode optional boolean

Whether the node is a supernode

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

      supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

      supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

    readAt number

Read timestamp in epoch time

edges object[]
  id string

ID of the edge

  source string

ID of the source node

  target string

ID of the target node

  data object
    type string

Type of the edge

    properties object

Properties of the edge

    readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "truncatedByLimit": false,
  "truncatedByAccess": true,
  "nodes": [
    {
      "id": "1",
      "data": {
        "categories": ["Person"],
        "properties": {
          "name": "David"
        },
        "geo": {},
        "statistics": {
          "supernode": false,
          "digest": [
            {
              "nodeCategories": [
                "Company"
              ],
              "edgeType": "works_for",
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    }
  ],
  "edges": [
    {
      "id": "1",
      "source": "1",
      "target": "2",
      "data": {
        "type": "works_for",
        "properties": {
          "since": "2016-05-09"
        },
        "readAt": 692362800000
      }
    }
  ]
}

Query - Execute a graph query by ID

Get all the nodes and edges matching the given saved graph query by ID. A subgraph made of all the nodes and the edges from each subgraph matching the graph query is returned.

/api/:sourceKey/graph/run/query/:id

Permission: guest user   , User action: runQuery API right: graph.runQuery

Parameter

Field Type Description
sourceKey string

Key of the data-source

edgesTo optional string[]

IDs of nodes that are already visible (they won't be included in the result, but their adjacent edges will be included in the edges field if the other nodes are in nodes)

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

dialect optional string

Dialect of the graph query (defaults to the first supported dialect of the data-source)

Allowed values: "cypher", "gremlin"

limit optional number

Maximum number of matched subgraphs

timeout optional number

Maximum execution time in milliseconds

templateData optional object

Key/value pair data to be filled in the template

id number

ID of the graph query

Success 200

Field Type Description
truncatedByLimit boolean

Whether the response was filtered out because too big

truncatedByAccess boolean

Whether the response was filtered out by access rights

nodes object[]
  id string

ID of the node

  data object
    categories string

Categories of the node

    properties object

Properties of the node

    geo IGeoData

Coordinates of the node

    statistics optional object

Statistics of the node

      supernode optional boolean

Whether the node is a supernode

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

      supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

      supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

    readAt number

Read timestamp in epoch time

edges object[]
  id string

ID of the edge

  source string

ID of the source node

  target string

ID of the target node

  data object
    type string

Type of the edge

    properties object

Properties of the edge

    readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "truncatedByLimit": false,
  "truncatedByAccess": true,
  "nodes": [
    {
      "id": "1",
      "data": {
        "categories": ["Person"],
        "properties": {
          "name": "David"
        },
        "geo": {},
        "statistics": {
          "supernode": false,
          "digest": [
            {
              "nodeCategories": [
                "Company"
              ],
              "edgeType": "works_for",
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    }
  ],
  "edges": [
    {
      "id": "1",
      "source": "1",
      "target": "2",
      "data": {
        "type": "works_for",
        "properties": {
          "since": "2016-05-09"
        },
        "readAt": 692362800000
      }
    }
  ]
}

Node

Node - Get a node

Get a node of the graph. A subgraph made of the single node is returned.

/api/:sourceKey/graph/nodes/:id

Permission: guest user   , API right: graphItem.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

edgesTo optional string[]

IDs of nodes that are already visible (they won't be included in the result, but their adjacent edges will be included in the edges field if the other nodes are in nodes)

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

id string

ID of the node

Success 200

Field Type Description
nodes object[]
  id string

ID of the node

  data object
    categories string

Categories of the node

    properties object

Properties of the node

    geo IGeoData

Coordinates of the node

    statistics optional object

Statistics of the node

      supernode optional boolean

Whether the node is a supernode

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

      supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

      supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

    readAt number

Read timestamp in epoch time

edges object[]
  id string

ID of the edge

  source string

ID of the source node

  target string

ID of the target node

  data object
    type string

Type of the edge

    properties object

Properties of the edge

    readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "nodes": [
    {
      "id": "1",
      "data": {
        "categories": ["Person"],
        "properties": {
          "name": "David"
        },
        "geo": {},
        "statistics": {
          "supernode": false,
          "digest": [
            {
              "nodeCategories": [
                "Company"
              ],
              "edgeType": "works_for",
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    }
  ],
  "edges": [
    {
      "id": "1",
      "source": "1",
      "target": "2",
      "data": {
        "type": "works_for",
        "properties": {
          "since": "2016-05-09"
        },
        "readAt": 692362800000
      }
    }
  ]
}

Node - Create a node

Add a node to the graph.

/api/:sourceKey/graph/nodes

Permission: API right: graphItem.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

categories string[]

Categories of the node

properties optional object

Properties of the node

Success 200

Field Type Description
id string

ID of the node

data object
  categories string

Categories of the node

  properties object

Properties of the node

  geo IGeoData

Coordinates of the node

  statistics optional object

Statistics of the node

    supernode optional boolean

Whether the node is a supernode

    digest optional LkDigestItem[]

Statistics of the neighborhood of the node

    degree optional number

Number of neighbors of the node readable by the current user

    supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

    supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

  readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "id": "1",
  "data": {
    "categories": ["Person"],
    "properties": {
      "name": "David"
    },
    "geo": {},
    "statistics": {
      "supernode": false,
      "digest": [
        {
          "nodeCategories": [
            "Company"
          ],
          "edgeType": "works_for",
          "nodes": 1,
          "edges": 1
        }
      ]
    },
    "readAt": 692362800000
  }
}

Node - Update a node

Update a subset of properties and categories of a node. Keep every other property and category of the node unchanged.

/api/:sourceKey/graph/nodes/:id

Permission: API right: graphItem.edit

Parameter

Field Type Description
sourceKey string

Key of the data-source

id string

ID of the node to update

addedCategories optional string[]

Categories of the node to add

deletedCategories optional string[]

Categories of the node to delete

properties optional object

Properties to update or create

deletedProperties optional string[]

Properties to delete

readAt optional number

Read timestamp in epoch time

Success 200

Field Type Description
id string

ID of the node

data object
  categories string

Categories of the node

  properties object

Properties of the node

  geo IGeoData

Coordinates of the node

  statistics optional object

Statistics of the node

    supernode optional boolean

Whether the node is a supernode

    digest optional LkDigestItem[]

Statistics of the neighborhood of the node

    degree optional number

Number of neighbors of the node readable by the current user

    supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

    supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

  readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "id": "1",
  "data": {
    "categories": ["Person"],
    "properties": {
      "name": "David"
    },
    "geo": {},
    "statistics": {
      "supernode": false,
      "digest": [
        {
          "nodeCategories": [
            "Company"
          ],
          "edgeType": "works_for",
          "nodes": 1,
          "edges": 1
        }
      ]
    },
    "readAt": 692362800000
  }
}

Node - Delete a node

Delete a node and its adjacent edges from the graph.

/api/:sourceKey/graph/nodes/:id

Permission: API right: graphItem.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id string

ID of the node to delete

HTTP/1.1 204 No Content

Node - Get nodes count

Get the number of nodes in the graph.

/api/:sourceKey/graph/nodes/count

Permission: guest user  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
   number

The number of nodes

HTTP/1.1 200 OK
42

Node - Get statistics of adjacent nodes

Get the digest (the number of adjacent nodes and edges grouped by node categories and edge types) and/or the degree of a given subset of nodes. You can't get aggregated statistics of a subset of nodes containing one or more supernodes. To get the statistics of a supernode invoke the API with only its node ID.

/api/:sourceKey/graph/neighborhood/statistics

Permission: guest user   , API right: graphItem.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

ids string[]

IDs of the nodes to retrieve the statistics for

withDigest optional boolean

Whether to get the adjacency digest

withDegree optional boolean

Whether to get the degree

Success 200

Field Type Description
digest optional LkDigestItem[]

Statistics of the neighborhood of the nodes

degree optional number

Number of neighbors of the nodes readable by the current user

HTTP/1.1 200 OK
{
  "digest": [
    {
      "edgeType": "ACTED_IN",
      "nodeCategories": [
        "TheMatrix",
        "Movie"
      ],
      "nodes": 1,
      "edges": 1
    }
  ],
  "degree": 1
}

Node - Get adjacent nodes and edges

Get all the adjacent nodes and edges to one or more source nodes. A subgraph made of the items that matched the expand query and the edges between them is returned.

/api/:sourceKey/graph/nodes/expand

Permission: guest user   , API right: graphItem.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

edgesTo optional string[]

IDs of nodes that are already visible (they won't be included in the result, but their adjacent edges will be included in the edges field if the other nodes are in nodes)

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

ids string[]

IDs of the nodes to retrieve the neighbors for

nodeCategories optional string

Exclusive list of node categories to restrict the result

edgeTypes optional string

Exclusive list of edge types to restrict the result

limit optional number

Maximum number of returned nodes

limitType optional string

Order direction used to limit the result

Default value: id

Allowed values: "id", "highestDegree", "lowestDegree"

Success 200

Field Type Description
nodes object[]
  id string

ID of the node

  data object
    categories string

Categories of the node

    properties object

Properties of the node

    geo IGeoData

Coordinates of the node

    statistics optional object

Statistics of the node

      supernode optional boolean

Whether the node is a supernode

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

      supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

      supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

    readAt number

Read timestamp in epoch time

edges object[]
  id string

ID of the edge

  source string

ID of the source node

  target string

ID of the target node

  data object
    type string

Type of the edge

    properties object

Properties of the edge

    readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "nodes": [
    {
      "id": "1",
      "data": {
        "categories": ["Person"],
        "properties": {
          "name": "David"
        },
        "geo": {},
        "statistics": {
          "supernode": false,
          "digest": [
            {
              "nodeCategories": [
                "Company"
              ],
              "edgeType": "works_for",
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    }
  ],
  "edges": [
    {
      "id": "1",
      "source": "1",
      "target": "2",
      "data": {
        "type": "works_for",
        "properties": {
          "since": "2016-05-09"
        },
        "readAt": 692362800000
      }
    }
  ]
}

Edge

Edge - Get an edge

Get an edge of the graph. A subgraph made of the edge and its extremities is returned.

/api/:sourceKey/graph/edges/:id

Permission: guest user   , API right: graphItem.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

edgesTo optional string[]

IDs of nodes that are already visible (they won't be included in the result, but their adjacent edges will be included in the edges field if the other nodes are in nodes)

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

id string

ID of the edge

Success 200

Field Type Description
nodes object[]
  id string

ID of the node

  data object
    categories string

Categories of the node

    properties object

Properties of the node

    geo IGeoData

Coordinates of the node

    statistics optional object

Statistics of the node

      supernode optional boolean

Whether the node is a supernode

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

      supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

      supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

    readAt number

Read timestamp in epoch time

edges object[]
  id string

ID of the edge

  source string

ID of the source node

  target string

ID of the target node

  data object
    type string

Type of the edge

    properties object

Properties of the edge

    readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "nodes": [
    {
      "id": "1",
      "data": {
        "categories": ["Person"],
        "properties": {
          "name": "David"
        },
        "geo": {},
        "statistics": {
          "supernode": false,
          "digest": [
            {
              "nodeCategories": [
                "Company"
              ],
              "edgeType": "works_for",
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    }
  ],
  "edges": [
    {
      "id": "1",
      "source": "1",
      "target": "2",
      "data": {
        "type": "works_for",
        "properties": {
          "since": "2016-05-09"
        },
        "readAt": 692362800000
      }
    }
  ]
}

Edge - Create an edge

Add an edge to the graph.

/api/:sourceKey/graph/edges

Permission: API right: graphItem.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

source string

ID of the source node

target string

ID of the target node

type string

Type of the edge

properties optional object

Properties of the edge

Success 200

Field Type Description
id string

ID of the edge

source string

ID of the source node

target string

ID of the target node

data object
  type string

Type of the edge

  properties object

Properties of the edge

  readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "id": "1",
  "source": "1",
  "target": "2",
  "data": {
    "type": "works_for",
    "properties": {
      "since": "2016-05-09"
    },
    "readAt": 692362800000
  }
}

Edge - Update an edge

Update a subset of properties of an edge. Keep every other property of the edge unchanged. It's not possible to update the type of an edge.

/api/:sourceKey/graph/edges/:id

Permission: API right: graphItem.edit

Parameter

Field Type Description
sourceKey string

Key of the data-source

id string

ID of the edge to update

properties optional object

Properties to update or create

deletedProperties optional string[]

Properties to delete

readAt optional number

Read timestamp in epoch time

Success 200

Field Type Description
id string

ID of the edge

source string

ID of the source node

target string

ID of the target node

data object
  type string

Type of the edge

  properties object

Properties of the edge

  readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
{
  "id": "1",
  "source": "1",
  "target": "2",
  "data": {
    "type": "works_for",
    "properties": {
      "since": "2016-05-09"
    },
    "readAt": 692362800000
  }
}

Edge - Delete an edge

Delete an edge from the graph.

/api/:sourceKey/graph/edges/:id

Permission: API right: graphItem.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id string

ID of the edge to delete

HTTP/1.1 204 No Content

Edge - Get edges count

Get the number of edges in the graph.

/api/:sourceKey/graph/edges/count

Permission: guest user  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
   number

The number of edges

HTTP/1.1 200 OK
42

Schema

Schema - Start the schema sampling

Start the schema sampling.

/api/admin/:sourceKey/schema/sampling/start

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

reset optional boolean

Whether to start with an empty schema

HTTP/1.1 204 No Content

Schema - Get the schema sampling status

Get the schema sampling status.

/api/:sourceKey/schema/sampling/status

Permission: guest user   , API right: schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
status string

The status of the schema sampling

Allowed values: "ongoing", "done", "error"

progress optional string

Percentage of the schema sampling

message optional string

A human readable string describing the schema sampling status

lastSampled optional string

Last time the data-source was sampled was executed in ISO-8601 format

HTTP/1.1 200 OK
{
  "status": "ongoing",
  "progress": "22.22",
  "message": "Sampling nodes with type: \"CITY\"",
  "lastSampled": "2019-05-16T08:23:35.730Z"
}

Schema - Stop the schema sampling

Stop the schema sampling.

/api/admin/:sourceKey/schema/sampling/stop

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

HTTP/1.1 204 No Content

Schema - Update the graph schema settings

Update the strict schema settings of the data-source.

/api/admin/:sourceKey/graph/schema/settings

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

strictSchema boolean

Whether the graph schema is in strict mode

HTTP/1.1 204 No Content

Schema - Create a new graph schema type

Add a new type to the graph schema.

/api/admin/:sourceKey/graph/schema/:entityType/types

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Allowed values: "node", "edge"

itemType string

Name of the graph schema type

visibility optional string

Whether the type can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

Success 200

Field Type Description
itemType string

Name of the graph schema type

properties string[]

Empty list of properties

visibility string

Whether the type can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

HTTP/1.1 200 OK
{
  "itemType": "country",
  "properties": [],
  "visibility": "searchable"
}

Schema - Update a graph schema type

Update an existing graph schema type.

/api/admin/:sourceKey/graph/schema/:entityType/types

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Allowed values: "node", "edge"

itemType string

Name of the graph schema type

visibility optional string

Whether the type can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

HTTP/1.1 204 No Content

Schema - Create a new graph schema property

Add a new property for a type on the graph schema.

/api/admin/:sourceKey/graph/schema/:entityType/properties

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Allowed values: "node", "edge"

itemType string

Name of the graph schema type

propertyKey string

Name of the property

visibility string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

propertyType object
  name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

  options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

    values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

    format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

    timezone optional boolean

Whether to store a date-time value with a timezone, when set to false, a Neo4j LocalDateTime object will be used instead of a DateTime object (only applicable when propertyType is "datetime")

Allowed values: false

required boolean

Whether the property is required on data edition

Success 200

Field Type Description
propertyKey string

Name of the property

visibility string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

propertyType object
  name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

  options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

    values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

    format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

    timezone optional string

Timezone (format: "[+-]HH:MM | Z") (only applicable when propertyType is "datetime")

required boolean

Whether the property is required on data edition

propertyTypeConsistent boolean

Whether the property is indexed with the same type declared in the schema

indexed boolean

Whether the property is indexed or not

HTTP/1.1 200 OK
{
  "propertyKey": "nutri-score",
  "propertyType": {
    "name": "string",
    "options": {
      "values": ["A", "B", "C", "D", "E"]
    }
  },
  "visibility": "searchable",
  "required": true,
  "indexed": true,
  "propertyTypeConsistent": true
}

Schema - Update a graph schema property

Update an existing graph schema property.

/api/admin/:sourceKey/graph/schema/:entityType/properties

Permission: User action: admin.schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Allowed values: "node", "edge"

itemType string

Name of the graph schema type

propertyKey string

Name of the property

visibility optional string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

propertyType optional object
  name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

  options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

    values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

    format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

    timezone optional boolean

Whether to store a date-time value with a timezone, when set to false, a Neo4j LocalDateTime object will be used instead of a DateTime object (only applicable when propertyType is "datetime")

Allowed values: false

required optional boolean

Whether the property is required on data edition

Success 200

Field Type Description
propertyKey string

Name of the property

visibility string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

propertyType object
  name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

  options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

    values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

    format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

    timezone optional string

Timezone (format: "[+-]HH:MM | Z") (only applicable when propertyType is "datetime")

required boolean

Whether the property is required on data edition

propertyTypeConsistent boolean

Whether the property is indexed with the same type declared in the schema

indexed boolean

Whether the property is indexed or not

HTTP/1.1 200 OK
{
  "propertyKey": "nutri-score",
  "propertyType": {
    "name": "string",
    "options": {
      "values": ["A", "B", "C", "D", "E"]
    }
  },
  "visibility": "searchable",
  "required": true,
  "indexed": true,
  "propertyTypeConsistent": true
}

Schema - Get the full graph schema

List all the types and properties of a data-source.

/api/admin/:sourceKey/graph/schema/:entityType/types

Permission: User action: admin.schema.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Success 200

Field Type Description
results object[]

All existing types in the graph schema

  itemType string

Name of the graph schema type

  visibility string

Whether the type can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

  properties object[]

Properties of itemType

    propertyKey string

Name of the property

    visibility string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

    propertyTypeConsistent boolean

Whether the property is indexed with the same type declared in the schema

    indexed boolean

Whether the property is indexed or not

    propertyType object
      name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

      options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

        values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

        format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

        timezone optional boolean

Whether to store a date-time value with a timezone, when set to false, a Neo4j LocalDateTime object will be used instead of a DateTime object (only applicable when propertyType is "datetime")

Allowed values: false

    required boolean

Whether the property is required on data edition

HTTP/1.1 200 OK
{
  "results": [
    {
      "itemType": "country",
      "visibility": "searchable",
      "properties": [
        {
          "propertyKey": "GDP",
          "propertyType": {"name": "number"},
          "visibility": "searchable",
          "required": false,
          "indexed": true,
          "propertyTypeConsistent": true
        },
        {
          "propertyKey": "capital city",
          "propertyType": {"name": "string"},
          "visibility": "searchable",
          "required": true,
          "indexed": true,
          "propertyTypeConsistent": true
        }
      ]
    }
  ]
}

Schema - Get the readable graph schema with access rights

List all the readable types and properties of a data-source.

/api/:sourceKey/graph/schema/:entityType/types

Permission: guest user   , API right: schema

Parameter

Field Type Description
sourceKey string

Key of the data-source

entityType string

"node" or "edge"

Success 200

Field Type Description
any object
  access string

Default access level

Allowed values: "read", "edit", "write", "none"

results object[]

All readable types in the graph schema

  access string

Access level of the graph schema type

Allowed values: "read", "edit", "write"

  itemType string

Name of the graph schema type

  properties object[]

Properties of itemType

    visibility string

Whether the property can be searched, visualized or it is hidden

Allowed values: "visible", "searchable", "none"

    indexed boolean

Whether the property is indexed or not

    propertyType object
      name string

Data type of the property

Allowed values: "auto", "boolean", "date", "datetime", "number", "string"

      options optional object

Additional propertyType information (required when propertyType.name is "date" or "datetime")

        values optional string[]

A list of values to restrict the value of the property (only applicable when propertyType is "string")

        format optional string

Storage format (required and only applicable when propertyType is "date" or "datetime")

Allowed values: "native", "iso", "dd/mm/yyyy", "mm/dd/yyyy", "timestamp", "timestamp-ms"

        timezone optional boolean

Whether to store a date-time value with a timezone, when set to false, a Neo4j LocalDateTime object will be used instead of a DateTime object (only applicable when propertyType is "datetime")

Allowed values: false

    required boolean

Whether the property is required on data edition

    access optional string

Access level of the property (if property key access rights are enabled)

Allowed values: "read", "edit"

HTTP/1.1 200 OK
{
  "any": {
    "access": "none"
  },
  "results": [
    {
      "name": "Movie",
      "access": "edit",
      "properties": [
        {
          "propertyKey": "released",
          "propertyType": {
            "name": "date",
            "options": {
              "format": "iso"
            }
          },
          "visibility": "searchable",
          "required": false,
          "indexed": true,
          "access": "read"
        },
        {
          "propertyKey": "title",
          "propertyType": "string",
          "visibility": "searchable",
          "required": true,
          "indexed": true,
          "access": "read"
        }
      ]
    }
  ]
}

Visualization

Visualization - Get visualizations count

Get the total number of visualizations in this data-source.

/api/:sourceKey/visualizations/count

Permission: guest user  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
count number

Visualization - Get a visualization

Get a visualization by id.

/api/:sourceKey/visualizations/:id

Permission: API right: visualization.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the visualization

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

Success 200

Field Type Description
visualization object

The visualization

  id number

ID of the visualization

  title string

Title of the visualization

  folder number

Parent visualizationFolder ID (-1 for root folder)

  nodes object[]

Nodes in this visualization

    id string

ID of the node (native or alternative ID)

    nodelink number

The node position (in "nodelink" mode)

      x number

X coordinate of the node

      y number

Y coordinate of the node

    geo number

The node position (in "geo" mode)

      latitude optional number

Latitude of the node (decimal format)

      longitude optional number

Longitude of the node (decimal format)

      latitudeDiff number

Latitude diff (if the node has been dragged)

      longitudeDiff number

Longitude diff (if the node has been dragged)

    selected boolean

Whether the node is selected

    data optional object

Properties of the node

    categories optional string[]

Categories of the node

    statistics optional object

Statistics of the node

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

    readAt number

Read timestamp in epoch time

  edges object[]

Edges in this visualization

    id string

ID of the edge (native or alternative ID)

    selected boolean

Whether the edge is selected

    type optional string

Type of the edge

    data optional object

Properties of the edge

    source optional string

Source of the edge

    target optional string

Target of the edge

    readAt number

Read timestamp in epoch time

  design object

Design

    styles object

Style mappings

      node INodeStyle[]

Node Styles

      edge IEdgeStyle[]

Edge Styles

    palette object

Color and icon palette

  mode string

The current interaction mode

Allowed values: "nodelink", "geo"

  layout object

The last used layout

    algorithm string

Layout algorithm name ("force", "hierarchical")

    mode string

Layout algorithm mode (depends on the algorithm)

    incremental optional string

Whether the layout is incremental (only for "force" algorithm)

  geo object

Geographical info

    latitudeProperty optional string

Property name containing the latitude

    layers string[]

Names of enabled leaflet tile layers

  alternativeIds object

Used to reference nodes or edges by a property instead of their database ID

    node optional string

Node property to use as identifier instead of database ID

    edge optional string

Edge property to use as identifier instead of database ID

  filters object

Filters

    node Selector[]

Nodes filter rules

    edge Selector[]

Edges filter rules

  sourceKey string

Key of the data-source

  user object

Owner of the visualization

  userId number

ID of the owner of the visualization

  widgetKey string

Key of the widget (null if the no widget exists)

  sandbox boolean

Whether the visualization is the sandbox

  right string

Right on the visualization of the current user

  nodeFields object

ICaptions and fields options

    captions NodeCaption

ICaption descriptions indexed by node category

  edgeGrouping object

Key value pairs representing the edge type that should be grouped

    [edge-type] boolean

Whether the edge type should be grouped or not

  edgeFields object

ICaptions and fields options

    captions EdgeCaption

ICaption descriptions indexed by edge type

  timeline optional object

Visualization timeline

    edge object

Edge

    node object

Node

    zoomLevel optional string

Zoom level of visualization timeline

Allowed values: "years", "months", "days", "hours", "minutes", "seconds"

    range optional IRangeValues

Range values for timeline

  lastLockedByUser object

The last person who acquired an exclusive edit lock on the visualization

  lastEditedByUser object

The last person who modified the visualization

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "visualization": {
    "id": 2,
    "title": "Viz name",
    "folder": -1,
    "nodes": [
      {
        "id": 1,
        "nodelink": {
          "x": 10.124,
          "y": 12.505
        },
        "geo": {
          "latitudeDiff": 0,
          "longitudeDiff": 0
        },
        "selected": true,
        "data": {
          "firstName": "David"
        },
        "categories": [
          "Person"
        ],
        "statistics": {
          "digest": [
            {
              "edgeType": "worksAt",
              "nodeCategories": [
                "Company"
              ],
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      },
      {
        "id": 2,
        "nodelink": {
          "x": -6.552,
          "y": -8.094
        },
        "geo": {
          "latitudeDiff": 0,
          "longitudeDiff": 0
        },
        "data": {
          "name": "Linkurious"
        },
        "categories": [
          "Company"
        ],
        "statistics": {
          "digest": [
            {
              "edgeType": "worksAt",
              "nodeCategories": [
                "Person"
              ],
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    ],
    "edges": [
      {
        "id": 0,
        "type": "worksAt",
        "data": {},
        "source": 1,
        "target": 2,
        "readAt": 692362800000
      }
    ],
    "nodeFields": {
      "captions": {
        "Person": {
          "active": true,
          "displayName": true,
          "properties": []
        },
        "Company": {
          "active": true,
          "displayName": true,
          "properties": []
        },
        "No category": {
          "active": true,
          "displayName": true,
          "properties": []
        }
      }
    },
    "edgeFields": {
      "captions": {
        "worksAt": {
          "name": "worksAt",
          "active": true,
          "displayName": true,
          "properties": []
        }
      }
    },
    "design": {
      // ...
    },
    "filters": {
       "node": [{
         "type": "any",
         "itemType": "Person",
         "input": ["properties", "firstName"],
         "value": "David"
       }],
       "edge": []
    },
    "edgeGrouping": {
      "Transaction": true,
      "Has_BankAccount": false
    },
    "sourceKey": "860555c4",
    "user": {
      "id": 1,
      "username": "Unique user",
      "email": "user@linkurio.us",
      "source": "local",
      "preferences": {
        "pinOnDrag": false,
        "locale": "en-US",
        "incrementalLayout": false
      }
    },
    "lastLockedByUser": {
      "username": "Unique user",
      "email": "user@linkurio.us",
    },
    "lastEditedByUser": {
      "username": "Unique user",
      "email": "user@linkurio.us",
    },
    "userId": 1,
    "sandbox": false,
    "createdAt": "2017-06-01T12:30:40.397Z",
    "updatedAt": "2017-06-01T12:30:55.389Z",
    "alternativeIds": {},
    "mode": "nodelink",
    "layout": {
      "incremental": false,
      "algorithm": "force",
      "mode": "fast"
    },
    "geo": {
      "layers": []
    },
    "right": "owner",
    "widgetKey": null
  }
}

Visualization - Create a visualization

Create a new visualization.

/api/:sourceKey/visualizations

Permission: API right: visualization.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

spaceId optional number

Space ID

title string

Title of the new visualization

folder optional number

ID of the folder to save the visualization in. (-1 for root)

Default value: -1

nodes object[]

Nodes in this visualization

  id string

Identifier of the node (native ID or alternative ID, see alternativeIds)

  attributes object

The node position information (in "nodelink" mode)

    x number

X coordinate of the node

    y number

Y coordinate of the node

    selected optional boolean

Whether the node is selected

    layoutable boolean

Whether the node is layoutable

  data object

The node position information

    geo optional object

The geographic position information of node (in "geo" mode)

      original optional object

Original position of node (decimal format)

      current optional object

Current position of node (decimal format)

      latitude number

Latitude value

      longitude number

Longitude value

      latitude number

Latitude value

      longitude number

Longitude value

edges object[]

Edges in this visualization

  id string

Identifier of the edge (native ID or alternative ID, see alternativeIds)

  attributes object

Edge attributes

    selected optional boolean

Whether the edge is selected

alternativeIds optional object

If nodes and/or edges should be referenced by a property instead of their database ID

  node optional string

Node property to use as identifier instead of database ID

  edge optional string

Edge property to use as identifier instead of database ID

layout optional object

The last layout used

  algorithm optional string

Layout algorithm

Allowed values: "force", "hierarchical"

  mode optional string

Layout algorithm mode (depends on algorithm)

  incremental optional boolean

Whether the layout is incremental (only for "force" algorithm)

mode optional string

The current interaction mode

Default value: nodelink

Allowed values: "nodelink", "geo"

geo optional object

Geographical info

  layers string[]

Names of used leaflet tile layers

design optional object

Design

  styles object

Color, size and icon mapping

    node INodeStyle[]

Node IStyles

    edge IEdgeStyle[]

Edge IStyles

  palette object

Color and icon palette

filters optional object

Filters

  node optional Selector[]

Nodes filter rules

  edge optional Selector[]

Edges filter rules

nodeFields object

ICaptions and fields options

  captions NodeCaption

ICaption descriptions indexed by node-category

nodeGroupingRuleIds optional number[]

The ids of the node grouping rules

edgeFields object

ICaptions and fields options

  captions EdgeCaption

ICaption descriptions indexed by edge-type

timeline optional object

Visualization timeline

  edge object

Edge

  node object

Node

  zoomLevel optional string

Zoom level of visualization timeline

Allowed values: "years", "months", "days", "hours", "minutes", "seconds"

  range optional IRangeValues

Range values for timeline

Success 200

Field Type Description
visualization object

The visualization object

  id number

ID of the visualization

  title string

Title of the visualization

  folder number

Parent visualizationFolder ID (null for root folder)

  nodes object[]

Nodes in this visualization

    id string

Identifier of the node (native ID or alternative ID, see alternativeIds)

    selected boolean

Whether the node is selected

    nodelink number

The node position information (in "nodelink" mode)

      x number

X coordinate of the node

      y number

Y coordinate of the node

      fixed boolean

Whether the node position has been locked

    geo number

The node position information (in "geo" mode)

      latitude number

Latitude of the node (decimal format)

      longitude number

Longitude of the node (decimal format)

      latitudeDiff number

Latitude diff (if the node has been dragged)

      longitudeDiff number

Longitude diff (if the node has been dragged)

  edges object[]

Edges in this visualization

    id string

Identifier of the edge (native ID or alternative ID, see alternativeIds)

    selected boolean

Whether the edge is selected

  alternativeIds object

Used to reference nodes or edges by a property instead of their database ID

    node string

Node property to use as identifier instead of database ID

    edge string

Edge property to use as identifier instead of database ID

  layout object

The last used layout

    algorithm string

Layout algorithm name ("force", "hierarchical")

    mode string

Layout algorithm mode (depends on algorithm)

    incremental string

Whether the layout is incremental (only for "force" algorithm)

  geo object

Geographical info

    latitudeProperty string

Node property containing the latitude

    longitudeProperty string

Node property containing the longitude

    layers string[]

Names of enabled leaflet tile layers

  mode string

The current interaction mode

Allowed values: "nodelink", "geo"

  design object

Design

    styles object

Style mappings

      node INodeStyle[]

Node IStyles

      edge IEdgeStyle[]

Edge IStyles

    palette object

Color and icon palette

  filters object[]

Filters

    node Selector[]

Node filter rules

    edge Selector[]

Edge filter rules

  nodeFields object

ICaptions and fields options

    captions NodeCaption

ICaption descriptions indexed by node-category

  edgeGrouping object

Key value pairs representing the edge type that should be grouped

    [edge-type] boolean

Whether the edge type should be grouped or not

  edgeFields object

ICaptions and fields options

    captions EdgeCaption

ICaption descriptions indexed by edge-type

  timeline optional object

Visualization timeline

    edge object

Edge

    node object

Node

    zoomLevel optional string

Zoom level of visualization timeline

Allowed values: "years", "months", "days", "hours", "minutes", "seconds"

    range optional IRangeValues

Range values for timeline

Visualization - Duplicate a visualization

Duplicate a visualization. Return the id of the copy.

/api/:sourceKey/visualizations/:id/duplicate

Permission: API right: visualization.duplicate

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

The id of the visualization to duplicate

title optional string

Name of the created visualization (defaults to "Copy of [source title]")

folder optional number

ID of the folder to duplicate the visualization to (defaults to the source visualization's folder)

Success 200

Field Type Description
result object
  visualizationId number

The id of the visualization copy

Visualization - Delete a visualization

Delete the visualization selected by id.

/api/:sourceKey/visualizations/:id

Permission: API right: visualization.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID

HTTP/1.1 204 No Content

Visualization - Update a visualization

Update the visualization selected by id.

  • It is mandatory to read the visualization via the "getVisualization" API before updating it.
  • You can use the "forceLock" option to bypass this restriction.

/api/:sourceKey/visualizations/:id

Permission: API right: visualization.edit

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID

visualization object

The visualization object. Only passed fields will be updated

forceLock optional boolean

Take the edit-lock by force (in case the current user doesn't own it)

doLayout optional boolean

Do a server-side layout of the visualization graph

Visualization - Release edit lock

Release the exclusive edit lock on a visualization.

  • You obtain the lock automatically when opening the visualization via the "getVisualization" API
  • The lock expires after 5 minutes of inactivity on the visualization
  • You can release the lock earlier using this API

/api/:sourceKey/visualizations/:id/release-edit-lock

Permission: API right: visualization.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

The ID of the visualization

HTTP/1.1 204 No Content

Visualization - Get visualizations shared with current user

Get all visualizations shared with the current user.

/api/:sourceKey/visualizations/shared

Permission: API right: visualization.list

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
title string

Title of the visualization

visualizationId number

ID of the visualization

ownerId number

ID of the user that owns the visualization

sourceKey string

Key of the data-source the visualization is related to

lastLockedByUser object

The last person who acquired an exclusive edit lock on the visualization

lastEditedByUser object

The last person who modified the visualization

Visualization - Create a visualization folder

Create a visualization folder.

/api/:sourceKey/visualizations/folder

Permission: API right: visualizationFolder.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

title string

Folder title

parent number

Parent folder id

spaceId number

space id

Visualization - Update a visualization folder

Update a visualization folder.

/api/:sourceKey/visualizations/folder/:id

Permission: API right: visualizationFolder.edit

Parameter

Field Type Description
sourceKey string

Key of the data-source

title optional string

Title

parent optional number

ID of the parent visualization folder

id number

ID of the visualization folder

Visualization - Delete a visualization folder

Delete a visualization folder.

/api/:sourceKey/visualizations/folder/:id

Permission: API right: visualizationFolder.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

visualization folder ID

Visualization - Get the visualization tree

Get the visualizations and the visualization folders in a tree structure.

/api/:sourceKey/visualizations/tree

Permission: API right: visualization.list

Parameter

Field Type Description
sourceKey string

Key of the data-source

spaceId optional number

Space ID

Success 200

Field Type Description
response object
  tree object[]
    type string

"visu" or "folder"

    id number

visualization or folder ID

    title string

visualization or folder title

    lastLockedByUser object

The last person who acquired an exclusive edit lock on the visualization

    lastEditedByUser object

The last person who modified the visualization

    children optional object[]

children visualizations and folders (mandatory when type is "folder")

    shareCount optional number

number of users a visualization is shared with (mandatory type is "visu")

    widgetKey optional string

widgetKey of the widget created for this visualization (possible if type is "visu")

HTTP/1.1 200 OK
{
  "tree": [
   {
     "id": 1,
     "type": "folder",
     "title": "Toto",
     "children": [
       {
         "id": 2,
         "type": "folder",
         "title": "Titi",
         "children": [
           {
             "id": 3,
             "type": "visu",
             "title": "vis. three",
             "shareCount": 0,
             "widgetKey": "aef3ce",
             "lastLockedByUser": {
                "username": "Unique user",
                "email": "user@linkurio.us",
              },
              "lastEditedByUser": {
                "username": "Unique user",
                "email": "user@linkurio.us",
              },
           }
         ]
       },
       {
         "id": 1,
         "type": "visu",
         "title": "a",
         "shareCount": 0,
         "lastLockedByUser": {
           "username": "Unique user",
           "email": "user@linkurio.us",
         },
         "lastEditedByUser": {
           "username": "Unique user",
           "email": "user@linkurio.us",
         },
       },
       {
         "id": 2,
         "type": "visu",
         "title": "vis. two",
         "shareCount": 0,
         "lastLockedByUser": {
           "username": "Unique user",
           "email": "user@linkurio.us",
         },
         "lastEditedByUser": {
           "username": "Unique user",
           "email": "user@linkurio.us",
         },
       }
     ]
   },
   {
     "id": 4,
     "type": "visu",
     "title": "vis. four",
     "shareCount": 0,
     "lastLockedByUser": {
       "username": "Unique user",
       "email": "user@linkurio.us",
     },
     "lastEditedByUser": {
       "username": "Unique user",
       "email": "user@linkurio.us",
     },
   }
 ]
}

Visualization - Get the visualization sandbox

Get the visualization sandbox of the current user for a given data-source

/api/:sourceKey/sandbox

Permission: guest user   , API right: sandbox

# Visualization by ID
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=visualizationId&item_id=123"

# Node by ID
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=nodeId&item_id=123"

# Edge by ID
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=edgeId&item_id=456"

# Node by ID + neighbors
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=expandNodeId&item_id=123"

# Nodes by search query
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=searchNodes&search_query=paris&search_fuzziness=0.2"

# Edges by search query
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=searchEdges&search_query=has_city"

# Nodes and/or edges by pattern query
curl -i "http://localhost:3000/api/e4b5d8/sandbox?populate=pattern&pattern_dialect=cypher&pattern_query=MATCH+(n1)-%5Be%5D-(n2)+WHERE+ID(n1)%3D10+RETURN+e"

Parameter

Field Type Description
sourceKey string

Key of the data-source

spaceId optional number

ID of space to attach this sandbox to

populate optional string

Describes how the sandbox should be populated

Allowed values: "visualizationId", "expandNodeId", "nodeId", "edgeId", "searchNodes", "searchEdges", "pattern", "caseId"

itemId optional string

ID of the node, edge or visualization to load (when populate is one of ["visualizationId", "nodeId", "edgeId", "expandNodeId"])

caseId optional number

ID of alert case to load (when populate is "caseId")

searchQuery optional string

Search query to search for nodes or edges (when populate is one of ["searchNodes", "searchEdges"])

searchFuzziness optional number

Search query fuzziness (when populate is one of ["searchNodes", "searchEdges"])

Default value: 0.1

Size range: 0-1

patternQuery optional string

Pattern query to match nodes and/or edges (when populate is "pattern")

doLayout optional boolean

Whether to do a server-side layout of the graph

patternDialect optional string

Pattern dialect (when populate is "pattern")

Allowed values: "cypher", "gremlin"

withDigest optional boolean

Whether to include the adjacency digest in the returned nodes

withDegree optional boolean

Whether to include the degree in the returned nodes

Visualization - Update the visualization sandbox

Update the sandbox of the current user for a given data-source.

/api/:sourceKey/sandbox

Permission: API right: sandbox

Parameter

Field Type Description
sourceKey string

Key of the data-source

design optional object

Visualization design object

nodeFields optional object

Node fields of visualization

edgeFields optional object

Edge fields of visualization

geo optional object

Geographical params of visualization

Visualization - Get visualization share rights

Get all share rights on a visualization

/api/:sourceKey/visualizations/:id/shares

Permission: API right: visualizationShare.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID

Success 200

Field Type Description
res object

result object

  owner object

Owner of the shares

    id number

Owner's user id

    source boolean

Owner's source ('local', 'ldap', 'oauth', etc.)

    username string

Owner's username

    email string

Owner's email

  shares object[]

Description of all shares defined by owner

    userId number

ID of the target user of this share

    username string

Username of the target user of this share

    email string

Email of the target user of this share

    visualizationId number

ID of the shared visualization

    right string

type of right granted to target user ("read", "write" or "owner")

Visualization - Share a visualization

Set the share right of a user on a visualization.

/api/:sourceKey/visualizations/:id/share/:userId

Permission: API right: visualizationShare.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID to grant access to

userId number

User ID to grant access to

right string

Granted access level

Allowed values: "read", "write"

Success 200

Field Type Description
visualizationId number

ID of the shared visualization

userId number

ID of the user the visualization has been shared with

right string

Name of the right ("none", "read", "write" or "owner")

createdAt string

Date the visualization has been shared

updatedAt string

Date at which the share has been updated

Visualization - Un-share a visualization

Remove a share right of a user on a visualization.

/api/:sourceKey/visualizations/:id/share/:userId

Permission: API right: visualizationShare.delete

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID to revoke access from

userId number

User ID to revoke access of

Visualization - Share a visualization with multiple users

Update the list of users and access level a visualization is shared with.

/api/:sourceKey/visualizations/:id/share

Permission: API right: visualizationShare.create

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

Visualization ID to grant access to

shares object[]

The list of users and access level the visualization is shared with

  userId number

User ID to grant access to

  right string

Granted access level

Allowed values: "read", "write", "owner"

HTTP/1.1 204 No Content

Visualization - Get a widget

Get a visualization widget's data by key.

/api/widget/:widgetKey

Permission: API right: widget.read

Parameter

Field Type Description
widgetKey string

the key of a widget

Success 200

Field Type Description
title string

the title of the visualization used to generate this widget

widgetKey string

the key of this widget

userId number

the owner ID of the visualization used to generate this widget

visualizationId number

the ID of the visualization used to generate this widget

password boolean

Whether password protection is enabled

content object

the content of the widget, as sent while generating this widget

HTTP/1.1 200 OK

{
  "title": "Foo Bar",
  "widgetKey": "key",
  "userId": 12,
  "password": false,
  "visualizationId": 3,
  "content": {
     "widgetKey": "value"
  }
}

Visualization - Create a widget

Create a widget for a visualization.

/api/widget

Permission: API right: widget.create

Parameter

Field Type Description
visualizationId number

The visualization id

options optional object

The configuration of the user interface elements

  search optional boolean

Whether the search bar is shown

  share optional boolean

The the share button is shown

  fullscreen optional boolean

Whether the full-screen button is shown

  zoom optional boolean

Whether to zoom-in and zoom-out controllers are shown

  legend optional boolean

Whether the graph legend is shown

  geo optional boolean

Whether the geo-mode toggle button is visible. Ignored if the nodes don't have geo coordinates

  password optional string

Optional password to protect the widget

Success 200

Field Type Description
widgetKey string

The key of the created widget

Visualization - Update a widget

Update the widget of a visualization.

/api/widget

Permission: API right: widget.edit

Parameter

Field Type Description
visualizationId number

The visualization id

options optional object

The configuration of the user interface elements

  search optional boolean

Whether the search bar is shown

  share optional boolean

The the share button is shown

  fullscreen optional boolean

Whether the full-screen button is shown

  zoom optional boolean

Whether to zoom-in and zoom-out controllers are shown

  legend optional boolean

Whether the graph legend is shown

  geo optional boolean

Whether the geo-mode toggle button is visible. Ignored if the nodes don't have geo coordinates

  password optional string

Optional password to protect the widget

Success 200

Field Type Description
widgetKey string

The key of the updated widget

Visualization - Delete a widget

Delete the widget of a visualization.

/api/widget/:widgetKey

Permission: API right: widget.delete

Parameter

Field Type Description
widgetKey string

the key of the widget to delete

Visualization

Create a visualization comment.

/api/:sourceKey/visualizations/:visualizationId/comments

Permission: API right: visualization.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

visualizationId number

The visualization id

content string

The content of the visualization comment

Success 200

Field Type Description
id number

the id of the visualization comment

content string

the content of the visualization comment

createdAt string

the creation date of the visualization comment in ISO-8601 format

user object

the author of the visualization comment

  username string

the username of the visualization comment author

  email string

the email of the visualization comment author

  hasAccess boolean

whether the comment author has access to the visualization or not

metadata object

the metadata of the visualization comment

  mentions object[]

mentioned users metadata in the visualization comment

    position number

the position in the comment where the mention starts

    length number

the length of the mention

  user object

the mentioned user

    username string

the username of the mentioned user

    email string

the email of the mentioned user

    hasAccess boolean

whether the mentioned user has access to the visualization or not

  HTTP/1.1 200 OK

{
   "id":1,
   "content":"this is a viz comment",
   "createdAt":"2023-05-16T08:23:35.730Z",
   "user":{
      "username":"user1",
      "email":"user1@linkurio.us",
      "hasAccess":true
   },
   "metadata":{
      "mentions":[
         {
            "position":6,
            "length":19,
            "user":{
               "username":"cheick",
               "email":"cheick@linkurio.us",
               "hasAccess":true
            }
         },
         {
            "position":8,
            "length":20,
            "user":{
               "username":"mahmoud",
               "email":"mahmoud@linkurio.us",
               "hasAccess":false
            }
         }
      ]
   }
}

Visualization

Get visualization comments.

/api/:sourceKey/visualizations/:visualizationId/comments

Permission: API right: visualization.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

visualizationId number

The visualization id

offset number

The Offset from the first result

limit number

The size of the returned results

Success 200

Field Type Description
totalCount number

the number of visualization comments

items object[]

the visualization comments

  id number

the id of the visualization comment

  content string

the content of the visualization comment

  createdAt string

the creation date of the visualization comment in ISO-8601 format

  user object

the author of the visualization comment

    username string

the username of the visualization comment author

    email string

the email of the visualization comment author

    hasAccess boolean

whether the comment author has access to the visualization or not

metadata object

the metadata of the visualization comment

  mentions object[]

mentioned users metadata in the visualization comment

    position number

the position in the comment where the mention starts

    length number

the length of the mention

  user object

the mentioned user

    username string

the username of the mentioned user

    email string

the email of the mentioned user

    hasAccess boolean

whether the mentioned user has access to the visualization or not

  HTTP/1.1 200 OK
{
   "totalCount":2,
   "items":[
      {
         "id":1,
         "content":"this is a viz comment",
         "createdAt":"2023-05-16T08:23:35.730Z",
         "user":{
            "username":"user1",
            "email":"user1@linkurio.us",
            "hasAccess":true,
            "metadata":{
               "mentions":[
                  {
                     "position":6,
                     "length":19,
                     "user":{
                        "userName":"cheick",
                        "email":"cheick@linkurio.us",
                        "hasAccess":true
                     }
                  },
                  {
                     "position":8,
                     "length":20,
                     "user":{
                        "userName":"mahmoud",
                        "email":"mahmoud@linkurio.us",
                        "hasAccess":false
                     }
                  }
               ]
            }
         }
      },
      {
         "id":2,
         "content":"this is another viz comment",
         "createdAt":"2023-05-16T08:23:35.730Z",
         "user":{
            "username":"user2",
            "email":"user2@linkurio.us",
            "hasAccess":false,
            "metadata":{
               "mentions":[]
            }
         }
      }
   ]
}

Visualization - Delete a visualization comment

Delete a visualization comment.

/api/:sourceKey/visualizations/comments/:commentId

Permission: API right: visualization.read

Parameter

Field Type Description
commentId number

ID of the visualization comment to delete

sourceKey string

Key of the data-source

HTTP/1.1 204 No Content

Spaces

Spaces - Create a space

Add a new space.

/api/admin/:sourceKey/spaces

Permission: User action: admin.spaces

Parameter

Field Type Description
sourceKey string

Key of the data-source

title string

Title of the space

description optional string

Description of the space

sharedWithGroups number[]

List of the group with whom the space is shared

Success 200

Field Type Description
id number

ID of the space

sourceKey string

Key of the data-source

title string

Title of the space

description optional string

Description of the space

sharedWithGroups number[]

List of the group with whom the space is shared

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 42,
  "sourceKey": "e31dc474",
  "title": "My space",
  "description": "This is my first space",
  "sharedWithGroups": [2, 8],
  "createdAt": "2019-06-14T15:41:26.995Z",
  "updatedAt": "2019-06-14T15:41:26.995Z"
}

Spaces - Update a space

Update a space.

/api/admin/:sourceKey/spaces/:id

Permission: User action: admin.spaces

Parameter

Field Type Description
id number

ID of the space

sourceKey string

Key of the data-source

title string

Title of the space

description optional string

Description of the space

sharedWithGroups number[]

List of the group with whom the space is shared

Success 200

Field Type Description
id number

ID of the space

sourceKey string

Key of the data-source

title string

Title of the space

description optional string

Description of the space

sharedWithGroups number[]

List of the group with whom the space is shared

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 42,
  "sourceKey": "e31dc474",
  "title": "My space",
  "description": "This is my first space",
  "sharedWithGroups": [2, 8],
  "createdAt": "2019-06-14T15:41:26.995Z",
  "updatedAt": "2019-06-14T15:41:26.995Z"
}

Spaces - Delete a space

Delete a space.

/api/admin/:sourceKey/spaces/:id

Permission: User action: admin.spaces

Parameter

Field Type Description
id number

ID of the space

sourceKey string

Key of the data-source

HTTP/1.1 204 No Content
HTTP/1.1 409 Conflict
{
  "key": "space_deletion_failed",
  "message":
    'Cannot delete a space that is not empty, ' +
    'move or delete the content before deleting the space.'
}

Spaces - List all spaces

List all spaces (including the ones that are not shared with the current user), for a given data-source.

/api/admin/:sourceKey/spaces

Permission: User action: admin.spaces

Parameter

Field Type Description
sourceKey string

Key of the data-source

offset optional number

Offset from the first result

limit optional number

Page size (maximum number of returned spaces)

sortBy optional string

Column used to sort the spaces

Default value: id

Allowed values: "id", "title"

sortDirection optional string

Direction used to sort the spaces

Default value: asc

Allowed values: "asc", "desc"

Success 200

Field Type Description
totalCount number

Total number of spaces

items object[]

Spaces

  id number

ID of the space

  sourceKey string

Key of the data-source

  title string

Title of the space

  description optional string

Description of the space

  sharedWithGroups number[]

List of the group with whom the space is shared

  isEmpty boolean

True if the space contains no visualisation or folder.

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  totalCount: 2,
  items: [
    {
      "id": 42,
      "sourceKey": "e31dc474",
      "title": "My space",
      "description": "This is my first space",
      "sharedWithGroups": [2, 8],
      "isEmpty": true,
      "createdAt": "2019-06-14T15:41:26.995Z",
      "updatedAt": "2019-06-14T15:41:26.995Z"
    },
    {
      "id": 64,
      "sourceKey": "e31dc474",
      "title": "Another space",
      "description": "This is my second space",
      "sharedWithGroups": [1, 4, 9],
      "isEmpty": false,
      "createdAt": "2022-09-22T17:12:35.763Z",
      "updatedAt": "2022-09-22T17:12:35.763Z"
    }
  ]
}

Spaces - List the spaces shared with the current user

List the spaces shared with the current user, for a given data-source.

/api/:sourceKey/spaces

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
items object[]

Spaces

  id number

ID of the space

  sourceKey string

Key of the data-source

  title string

Title of the space

  description optional string

Description of the space

  sharedWithGroups number[]

List of the group with whom the space is shared

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
[
  {
    "id": 42,
    "sourceKey": "e31dc474",
    "title": "My space",
    "description": "This is my first space",
    "sharedWithGroups": [2, 8],
    "createdAt": "2019-06-14T15:41:26.995Z",
    "updatedAt": "2019-06-14T15:41:26.995Z"
  },
  {
    "id": 64,
    "sourceKey": "e31dc474",
    "title": "Another space",
    "description": "This is my second space",
    "sharedWithGroups": [1, 4, 9],
    "createdAt": "2022-09-22T17:12:35.763Z",
    "updatedAt": "2022-09-22T17:12:35.763Z"
  }
]

Spaces - Get the visualization tree of each space shared with the current user

List the spaces shared with the current user, for a given data-source, with the corresponding visualization tree attached to each space.

/api/:sourceKey/spaces/tree

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
items object[]

Spaces with tree

  id number

ID of the space

  sourceKey string

Key of the data-source

  title string

Title of the space

  description optional string

Description of the space

  sharedWithGroups number[]

List of the group with whom the space is shared

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

  tree object

Visualisation tree of the space

    type string

"visu" or "folder"

    id number

visualization or folder ID

    title string

visualization or folder title

    lastLockedByUser object

The last person who acquired an exclusive edit lock on the visualization

    lastEditedByUser object

The last person who modified the visualization

    children optional object[]

children visualizations and folders (mandatory when type is "folder")

    shareCount optional number

number of users a visualization is shared with (mandatory type is "visu")

    widgetKey optional string

widgetKey of the widget created for this visualization (possible if type is "visu")

HTTP/1.1 200 OK
{
  "items": [
    {
      "id": 42,
      "sourceKey": "e31dc474",
      "title": "My space",
      "description": "This is my first space",
      "sharedWithGroups": [2, 8],
      "createdAt": "2019-06-14T15:41:26.995Z",
      "updatedAt": "2019-06-14T15:41:26.995Z"
      "tree": {
        "id": -1,
        "type": "folder",
        "title": "root",
        "children": []
      }
    },
    {
      "id": 64,
      "sourceKey": "e31dc474",
      "title": "Another space",
      "description": "This is my second space",
      "sharedWithGroups": [1, 4, 9],
      "createdAt": "2022-09-22T17:12:35.763Z",
      "updatedAt": "2022-09-22T17:12:35.763Z"
      "tree": {
        "id": -1,
        "type": "folder",
        "title": "root",
        "children": [
          {
            "id": 42,
            "type": "visu",
            "title": "A viz in the space",
            "shareCount": 0,
            "widgetKey": "aef3ce",
            "lastLockedByUser": {
              "username": "Unique user",
              "email": "user@linkurio.us",
            },
            "lastEditedByUser": {
              "username": "Unique user",
              "email": "user@linkurio.us",
            },
          }
        ]
      }
    }
  ]
}

Alert

- Create an alert

Create a new alert.

/api/admin/:sourceKey/alerts

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

title string

Title of the alert

description optional string

Description of the alert

queries optional object[]

Array of Graph queries that will run periodically

  query string

Graph query

  name string

Name of the query.

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description optional string

Description of the graph query

caseAttributesQuery optional string

The query used to extract the attributes from the generated cases

enabled boolean

When an alert is disabled, its queries are no longer run periodically to detect new results

folder optional number

ID of the alert folder (-1 for root folder)

columns object[]

Columns among the returned values of the case attributes query to save in a case as scalar values (maximum 40)

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

cron string

CRON expression representing the frequency with which the query runs

target optional string

The alert's target

sharing string

Sharing policy of the alert

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the alert is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the alert

folder number

ID of the alert folder (-1 for root folder)

title string

Title of the alert

description optional string

Description of the alert

sourceKey string

Key of the data-source

queries optional object[]

Array of Graph queries that will run periodically

  id number

Id of the query

  query string

Graph query

  name string

Name of the query.

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description optional string

Description of the graph query

  modelKey string

The model key of the query

  deleted boolean

Whether the query is deleted or not

  updatedAt string

Last update date in ISO-8601 format

target string

Target of the alert

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

enabled boolean

Whether the query will run periodically or not

columns object[]

Columns among the returned values of the query to save in a case as scalar values

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

cron string

CRON expression representing the frequency with which the query runs

caseAttributesQuery optional string

The query used to extract the attributes from the generated cases

lastRun optional string

Last time the query was executed in ISO-8601 format

lastRunProblem optional object[]

Object representing the problems in the last run

  error string

Error that identifies the last run problem

  partial boolean

Whether the last run was at least partially executed

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

nextRun optional string

Date when the alert will be executed next in ISO-8601 format

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

sharedWithUsers optional number[]

IDs of the users the graph query is shared with (if sharing="users")

openAndUnAssignedCasesCount number

The number of open and unassigned cases

resultsConsistent boolean

Whether the results of the last run are consistent with the current changes made on the alert

status string

Indicates if the alert is running or idle

  HTTP/1.1 201 Created
  {
  "id": 46,
  "folder": -1,
  "title": "New Alert",
  "description": "Match nodes with category \"PERSON\"",
  "sourceKey": "finc0100",
  "queries": [
    {
      "id": 63,
      "query": "match(n:PERSON) return n limit 100",
      "name": "model1",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "60cc8570-cb32-4bf3-92dd-c2ba96e6b40d",
      "updatedAt": "2023-08-03T14:13:57.387Z"
    },
    {
      "id": 64,
      "query": "match(n:PERSON)-[e:HAS_ADDRESS]->(m:ADDRESS) where m.country=\"Italy\" return n,m,e",
      "name": "model2",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "107f655a-cecf-4c6d-a0d9-2d7a33e1d8df",
      "updatedAt": "2023-08-03T14:13:57.388Z"
    }
  ],
  "enabled": true,
  "columns": [
    {
      "columnName": "name",
      "type": "string",
      "columnTitle": "name"
    }
  ],
  "cron": "0 0 * * *",
  "createdAt": "2023-08-03T14:13:57.383Z",
  "updatedAt": "2023-08-03T14:13:57.383Z",
  "target": "n",
  "sharing": "source",
  "openAndUnAssignedCasesCount": 0,
  "caseAttributesQuery": "match(n) where id(n) in {{\"target\":nodeset}} return n.name as name",
  "status": "idle",
  "resultsConsistent": true,
  "nextRun": "Thu Aug 03 2023"
}

- Update an alert

Update the alert selected by id. Updating an alert query will results in all the previous detected cases deleted.

/api/admin/:sourceKey/alerts/:id

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert

title optional string

Title of the alert, (undefined = no change, "" = deletion)

description optional string

Description of the alert, (undefined = no change, "" = deletion)

queries optional object[]

Array of Graph queries that will run periodically

  query string

Graph query

  id number

Id of the graph query

  name string

Name of the query

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description optional string

Description of the graph query

  operation optional string

Update operation to perform on the query

Allowed values: "create", "update", "delete"

caseAttributesQuery optional string

The query used to extract the attributes from the generated cases, (undefined = no change, "" = deletion)

enabled optional boolean

When an alert is disabled, its queries are no longer run periodically to detect new results

folder optional number

ID of the alert folder (-1 for root folder)

columns optional object[]

Columns among the returned values of the case attributes query to save in a case as scalar values (maximum 40), (undefined = no change, [] = deletion)

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

cron optional string

CRON expression representing the frequency with which the query runs

target optional string

The alert's target (undefined = no change, "" = deletion)

sharing optional string

Sharing policy of the alert

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the alert is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the alert

folder number

ID of the alert folder (-1 for root folder)

title string

Title of the alert

description optional string

Description of the alert

sourceKey string

Key of the data-source

queries optional object[]

Array of Graph queries that will run periodically

  id number

Id of the query

  query string

Graph query

  name string

Name of the query.

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description optional string

Description of the graph query

  modelKey string

The model key of the query

  deleted boolean

Whether the query is deleted or not

  updatedAt string

Last update date in ISO-8601 format

target string

Target of the alert

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

enabled boolean

Whether the query will run periodically or not

columns object[]

Columns among the returned values of the query to save in a case as scalar values

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

cron string

CRON expression representing the frequency with which the query runs

caseAttributesQuery optional string

The query used to extract the attributes from the generated cases

lastRun optional string

Last time the query was executed in ISO-8601 format

lastRunProblem optional object[]

Object representing the problems in the last run

  error string

Error that identifies the last run problem

  partial boolean

Whether the last run was at least partially executed

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

nextRun optional string

Date when the alert will be executed next in ISO-8601 format

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

sharedWithUsers optional number[]

IDs of the users the graph query is shared with (if sharing="users")

openAndUnAssignedCasesCount number

The number of open and unassigned cases

resultsConsistent boolean

Whether the results of the last run are consistent with the current changes made on the alert

status string

Indicates if the alert is running or idle

 HTTP/1.1 200 OK
{
  "id": 46,
  "folder": -1,
  "title": "New Alert",
  "description": "Match nodes with category \"PERSON\"",
  "sourceKey": "finc0100",
  "queries": [
    {
      "id": 63,
      "query": "match(n:PERSON) return n limit 100",
      "name": "model1",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "60cc8570-cb32-4bf3-92dd-c2ba96e6b40d",
      "updatedAt": "2023-08-03T14:13:57.387Z"
    },
    {
      "id": 64,
      "query": "match(n:PERSON)-[e:HAS_ADDRESS]->(m:ADDRESS) where m.country=\"Italy\" return n,m,e",
      "name": "model2",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "107f655a-cecf-4c6d-a0d9-2d7a33e1d8df",
      "updatedAt": "2023-08-03T14:13:57.388Z"
    }
  ],
  "enabled": true,
  "columns": [
    {
      "columnName": "name",
      "type": "string",
      "columnTitle": "name"
    }
  ],
  "cron": "0 0 * * *",
  "createdAt": "2023-08-03T14:13:57.383Z",
  "updatedAt": "2023-08-03T14:13:57.383Z",
  "target": "n",
  "sharing": "source",
  "openAndUnAssignedCasesCount": 0,
  "caseAttributesQuery": "match(n) where id(n) in {{\"target\":nodeset}} return n.name as name",
  "status": "idle",
  "resultsConsistent": true,
  "nextRun": "Thu Aug 03 2023"
}

- Delete an alert

Delete the alert by id and all its cases.

/api/admin/:sourceKey/alerts/:id

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert to delete

HTTP/1.1 204 No Content

- Execute an alert

Execute an alert.

/api/admin/:sourceKey/alerts/:id/run

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert to execute

waitForRun optional boolean

Wait for the alert to finish running and retrieves the alert run problems if there are any.

Success 200

Field Type Description
alreadyRunning boolean

Indicates if the alert was already running or not.

HTTP/1.1 200

- Create an alert folder

Create an alert folder.

/api/admin/:sourceKey/alerts/folder

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

title string

Title of the alert folder

Success 200

Field Type Description
id number

ID of the alert folder

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

title string

Title of the alert folder

parent -1

ID of the parent alert folder

HTTP/1.1 201 OK
{
  "id": 1,
  "createdAt": "2019-06-14T15:41:26.995Z",
  "updatedAt": "2019-06-14T15:41:26.995Z",
  "title": "My alert folder",
  "parent": -1
}

- Update an alert folder

Update an alert folder.

/api/admin/:sourceKey/alerts/folder/:id

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert folder

title string

Title

Success 200

Field Type Description
id number

ID of the alert folder

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

title string

Title of the alert folder

parent -1

ID of the parent alert folder

HTTP/1.1 201 OK
{
  "id": 1,
  "createdAt": "2019-06-14T15:41:26.995Z",
  "updatedAt": "2019-06-14T15:41:26.995Z",
  "title": "My alert folder",
  "parent": -1
}

- Delete an alert folder

Delete an alert folder.

/api/admin/:sourceKey/alerts/folder/:id

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert folder to delete

HTTP/1.1 204 No Content

- Get the alert tree

Get the alerts and the alert folders in a tree structure.

/api/:sourceKey/alerts/tree

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
id number

ID of the root alert folder (always -1)

type string

Type of the item

Allowed values: "folder"

title string

Title of the root alert folder

children object[]

An array of alert folders or alerts

HTTP/1.1 200 OK
{
  "id": -1,
  "title": "root",
  "type": "folder",
  "children": [
    {
      "id": 1,
      "title": "my alert folder",
      "type": "folder",
      "children": [
        {
          "id": 8,
          "folder": 4,
          "title": "alert_title",
          "sourceKey": "584f2569",
          "query": "MATCH (n1)-[r:DIRECTED]-(n2) RETURN n1, n1.score",
          "dialect": "cypher",
          "enabled": true,
          "columns": [
            {"type": "number", "columnName": "n1.score", "columnTitle": "Score"},
            {"type": "number", "columnName": "n1.totalLoans", "columnTitle": "Total Loans", "currencyOptions": {"type": "currency", "symbol": "$", "format": "[Symbol] #,###.##"}},
          ],
          "cron": "0 0 * * *",
          "maxMatches": 20,
          "openAndUnAssignedCasesCount": 13,
          "userId": 1,
          "updatedAt": "2016-05-16T08:23:35.730Z",
          "createdAt": "2016-05-16T08:23:35.730Z",
          "nextRun": "2016-08-15T00:00:00.000Z"
        }
      ]
    }
  ]
}

- Get all alerts users

Get the list of users for all the alerts accessible to the current user If the mutualAlertIds filter is specified in the params then we return only the users That can access all the alerts provided in the filter list

/api/:sourceKey/alerts/users/

Permission: API right: alert.read

Parameter

Field Type Description
mutualAlertIds optional number[]

Retrieves only the users that have access to all the ids in the list (e.g. 1, 2, 3)

Success 200

Field Type Description
users object[]

Alerts users

  id string

ID of the alert user

  username string

Name of the alert user

  email string

Email of the alert user

HTTP/1.1 200 OK
[
 {
   "id": 2;
   "username": "Perriero";
   "email": "perriero@linkurio.us"
 },
 {
   "id": 7;
   "username": "Pellegrini";
   "email": "s.pellegrini@linkurio.us"
 }
]

- Get an alert

Get an alert by id.

/api/:sourceKey/alerts/:id

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the alert

Success 200

Field Type Description
id number

ID of the alert

folder number

ID of the alert folder (-1 for root folder)

title string

Title of the alert

description optional string

Description of the alert

sourceKey string

Key of the data-source

queries optional object[]

Array of Graph queries that will run periodically

  id number

Id of the query

  query string

Graph query

  name string

Name of the query.

  dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

  description optional string

Description of the graph query

  modelKey string

The model key of the query

  deleted boolean

Whether the query is deleted or not

  updatedAt string

Last update date in ISO-8601 format

target string

Target of the alert

dialect string

Dialect of the graph query

Allowed values: "cypher", "gremlin"

enabled boolean

Whether the query will run periodically or not

columns object[]

Columns among the returned values of the query to save in a case as scalar values

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

cron string

CRON expression representing the frequency with which the query runs

caseAttributesQuery optional string

The query used to extract the attributes from the generated cases

lastRun optional string

Last time the query was executed in ISO-8601 format

lastRunProblem optional object[]

Object representing the problems in the last run

  error string

Error that identifies the last run problem

  partial boolean

Whether the last run was at least partially executed

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

nextRun optional string

Date when the alert will be executed next in ISO-8601 format

sharing string

Sharing policy of the graph query

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the graph query is shared with (if sharing="groups")

sharedWithUsers optional number[]

IDs of the users the graph query is shared with (if sharing="users")

openAndUnAssignedCasesCount number

The number of open and unassigned cases

resultsConsistent boolean

Whether the results of the last run are consistent with the current changes made on the alert

status string

Indicates if the alert is running or idle

 HTTP/1.1 200 OK
  {
  "id": 46,
  "folder": -1,
  "title": "New Alert",
  "description": "Match nodes with category \"PERSON\"",
  "sourceKey": "finc0100",
  "queries": [
    {
      "id": 63,
      "query": "match(n:PERSON) return n limit 100",
      "name": "model1",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "60cc8570-cb32-4bf3-92dd-c2ba96e6b40d",
      "updatedAt": "2023-08-03T14:13:57.387Z"
    },
    {
      "id": 64,
      "query": "match(n:PERSON)-[e:HAS_ADDRESS]->(m:ADDRESS) where m.country=\"Italy\" return n,m,e",
      "name": "model2",
      "deleted": false,
      "dialect": "cypher",
      "modelKey": "107f655a-cecf-4c6d-a0d9-2d7a33e1d8df",
      "updatedAt": "2023-08-03T14:13:57.388Z"
    }
  ],
  "enabled": true,
  "columns": [
    {
      "columnName": "name",
      "type": "string",
      "columnTitle": "name"
    }
  ],
  "cron": "0 0 * * *",
  "createdAt": "2023-08-03T14:13:57.383Z",
  "updatedAt": "2023-08-03T14:13:57.383Z",
  "target": "n",
  "sharing": "source",
  "openAndUnAssignedCasesCount": 0,
  "caseAttributesQuery": "match(n) where id(n) in {{\"target\":nodeset}} return n.name as name",
  "status": "idle",
  "resultsConsistent": true,
  "nextRun": "Thu Aug 03 2023"
}

- Search for the values of a column of a case

Search for the values of a column of a case.

/api/:sourceKey/alerts/:alertId/cases/values

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

 HTTP/1.1 200
['value1', 'value2']

- Get a case

Get a case by id.

/api/:sourceKey/alerts/:alertId/cases/:caseId

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

caseId number

ID of the case

Success 200

Field Type Description
id number

ID of the case

sourceKey string

Key of the data-source

alertId number

ID of the alert

hash string

Hash of the case

status string

Status of the case

Allowed values: "unconfirmed", "in-progress", "confirmed", "dismissed"

user optional object

Last user that changed the status

  id number

ID of the user

  username string

Username of the user

  email string

E-mail of the user

viewers object[]

Users that viewed the case (ordered by date in decreasing order)

  id number

ID of the user

  username string

Username of the user

  email string

E-mail of the user

  date string

Date of the view in ISO-8601 format

nodes string[]

IDs of the nodes of the case

edges string[]

IDs of the edges of the case

columns string[]

Scalar value for a given column by index defined in the alert

assignedUser optional object

The user assigned to the case

  id number

ID of the assigned user

  username string

Username of the assigned user

  email string

E-mail of the assigned user

visualization object

The case visualization

  nodes object[]

Nodes in this visualization

    id string

ID of the node (native or alternative ID)

    nodelink number

The node position (in "nodelink" mode)

      x number

X coordinate of the node

      y number

Y coordinate of the node

    geo number

The node position (in "geo" mode)

      latitude optional number

Latitude of the node (decimal format)

      longitude optional number

Longitude of the node (decimal format)

      latitudeDiff number

Latitude diff (if the node has been dragged)

      longitudeDiff number

Longitude diff (if the node has been dragged)

    selected boolean

Whether the node is selected

    data optional object

Properties of the node

    categories optional string[]

Categories of the node

    statistics optional object

Statistics of the node

      digest optional LkDigestItem[]

Statistics of the neighborhood of the node

      degree optional number

Number of neighbors of the node readable by the current user

    readAt number

Read timestamp in epoch time

  edges object[]

Edges in this visualization

    id string

ID of the edge (native or alternative ID)

    selected boolean

Whether the edge is selected

    type optional string

Type of the edge

    data optional object

Properties of the edge

    source optional string

Source of the edge

    target optional string

Target of the edge

    readAt number

Read timestamp in epoch time

  design object

Design

    styles object

Style mappings

      node INodeStyle[]

Node Styles

      edge IEdgeStyle[]

Edge Styles

    palette object

Color and icon palette

  mode string

The current interaction mode

Allowed values: "nodelink", "geo"

  layout object

The last used layout

    algorithm string

Layout algorithm name ("force", "hierarchical")

    mode string

Layout algorithm mode (depends on the algorithm)

    incremental optional string

Whether the layout is incremental (only for "force" algorithm)

  geo object

Geographical info

    latitudeProperty optional string

Property name containing the latitude

    layers string[]

Names of enabled leaflet tile layers

  alternativeIds object

Used to reference nodes or edges by a property instead of their database ID

    node optional string

Node property to use as identifier instead of database ID

    edge optional string

Edge property to use as identifier instead of database ID

  filters object

Filters

    node Selector[]

Nodes filter rules

    edge Selector[]

Edges filter rules

  nodeFields object

ICaptions and fields options

    captions NodeCaption

ICaption descriptions indexed by node category

  edgeGrouping object

Key value pairs representing the edge type that should be grouped

    [edge-type] boolean

Whether the edge type should be grouped or not

  edgeFields object

ICaptions and fields options

    captions EdgeCaption

ICaption descriptions indexed by edge type

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "sourceKey": "584f2569",
  "alertId": 2,
  "hash": "897f54ff366922a4077c78955c77bcdd",
  "status": "unconfirmed",
  "viewers": [],
  "nodes": ["5971", "5974"],
  "edges": ["523"],
  "columns": [
    1999
  ],
  "assignedUser": {
     "id": 2,
     "username": "Pellegrini",
     "email": "s.pellegrini@linkurio.us"
   },
  "visualization": {
    "nodes": [
      {
        "id": 1,
        "nodelink": {
          "x": 10.124,
          "y": 12.505
        },
        "geo": {
          "latitudeDiff": 0,
          "longitudeDiff": 0
        },
        "selected": true,
        "data": {
          "firstName": "David"
        },
        "categories": [
          "Person"
        ],
        "statistics": {
          "digest": [
            {
              "edgeType": "worksAt",
              "nodeCategories": [
                "Company"
              ],
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      },
      {
        "id": 2,
        "nodelink": {
          "x": -6.552,
          "y": -8.094
        },
        "geo": {
          "latitudeDiff": 0,
          "longitudeDiff": 0
        },
        "data": {
          "name": "Linkurious"
        },
        "categories": [
          "Company"
        ],
        "statistics": {
          "digest": [
            {
              "edgeType": "worksAt",
              "nodeCategories": [
                "Person"
              ],
              "nodes": 1,
              "edges": 1
            }
          ]
        },
        "readAt": 692362800000
      }
    ],
    "edges": [
      {
        "id": 0,
        "type": "worksAt",
        "data": {},
        "source": 1,
        "target": 2,
        "readAt": 692362800000
      }
    ],
    "nodeFields": {
      "captions": {
        "Person": {
          "active": true,
          "displayName": true,
          "properties": []
        },
        "Company": {
          "active": true,
          "displayName": true,
          "properties": []
        },
        "No category": {
          "active": true,
          "displayName": true,
          "properties": []
        }
      }
    },
    "edgeFields": {
      "captions": {
        "worksAt": {
          "name": "worksAt",
          "active": true,
          "displayName": true,
          "properties": []
        }
      }
    },
    "design": {
      // ...
    },
    "filters": {
       "node": [{
         "type": "any",
         "itemType": "Person",
         "input": ["properties", "firstName"],
         "value": "David"
       }],
       "edge": []
    },
    "alternativeIds": {},
    "mode": "nodelink",
    "layout": {
      "incremental": false,
      "algorithm": "force",
      "mode": "fast"
    },
    "geo": {
      "layers": []
    },
    "right": "owner",
    "widgetKey": null
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:35.730Z"
}

- Assign cases

Assign one or more cases to a user.

/api/:sourceKey/alerts/:alertId/cases/assignments

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

caseIds number[]

ID of the cases to assign

userID number

ID of the user to be assigned, can be set to -1 to remove the assignment

HTTP/1.1 204 No Content

- Assign cases in bulk from different alerts to a user.

Assign one or more cases from different alerts to a user.

/api/:sourceKey/alerts/cases/assignments

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

casesPerAlert optional object

Specify which cases of which alert to assign, alert id is key and an array of case ids is the value (e.g {'1':[1,2,3], '2':[4,5,6]})

assignedUserId optional number

ID of the assignee user

HTTP/1.1 204 No Content

- Update a case

Update a case.

/api/:sourceKey/alerts/:alertId/cases/:caseId

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

caseId number

ID of the case

nodes object[]

Nodes in this visualization

  id string

Identifier of the node (native ID or alternative ID, see alternativeIds)

  attributes object

The node position information (in "nodelink" mode)

    x number

X coordinate of the node

    y number

Y coordinate of the node

    selected optional boolean

Whether the node is selected

    layoutable boolean

Whether the node is layoutable

  data object

The node position information

    geo optional object

The geographic position information of node (in "geo" mode)

      original optional object

Original position of node (decimal format)

      current optional object

Current position of node (decimal format)

      latitude number

Latitude value

      longitude number

Longitude value

      latitude number

Latitude value

      longitude number

Longitude value

edges object[]

Edges in this visualization

  id string

Identifier of the edge (native ID or alternative ID, see alternativeIds)

  attributes object

Edge attributes

    selected optional boolean

Whether the edge is selected

alternativeIds object

If nodes and/or edges should be referenced by a property instead of their database ID

  node optional string

Node property to use as identifier instead of database ID

  edge optional string

Edge property to use as identifier instead of database ID

layout object

The last layout used

  algorithm optional string

Layout algorithm

Allowed values: "force", "hierarchical"

  mode optional string

Layout algorithm mode (depends on algorithm)

  incremental optional boolean

Whether the layout is incremental (only for "force" algorithm)

mode string

The current interaction mode

Allowed values: "nodelink", "geo"

geo object

Geographical info

  layers string[]

Names of used leaflet tile layers

design object

Design

  styles object

Color, size and icon mapping

    node INodeStyle[]

Node IStyles

    edge IEdgeStyle[]

Edge IStyles

  palette object

Color and icon palette

filter object

Filters

  node optional Selector[]

Nodes filter rules

  edge optional Selector[]

Edges filter rules

nodeFields object

ICaptions and fields options

  captions NodeCaption

ICaption descriptions indexed by node-category

edgeFields object

ICaptions and fields options

  captions EdgeCaption

ICaption descriptions indexed by edge-type

HTTP/1.1 204 No Content

- Get all the cases of an alert

Get all the cases of an alert.

/api/:sourceKey/alerts/:alertId/cases

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID the alert

offset optional string

Offset from the first result

Default value: 0

limit optional string

Page size (maximum number of returned cases)

Default value: 20

sort_direction optional string

Direction used to sort

Default value: desc

Allowed values: "asc", "desc"

sort_by optional string

Sort by date or a given column

Default value: date

Allowed values: "date", "0", "1", "2", "3", "4"

status optional string

Filter by case status

Allowed values: "unconfirmed", "confirmed", "dismissed"

assignedUserId optional number

Filter by case assignee

Success 200

Field Type Description
cases object[]

List of cases

  id number

ID of the case

  sourceKey string

Key of the data-source

  alertId number

ID of the alert

  hash string

Hash of the case

  status string

Status of the case

Allowed values: "unconfirmed", "in-progress", "confirmed", "dismissed"

  user optional object

Last user that changed the status

    id number

ID of the user

    username string

Username of the user

    email string

E-mail of the user

  viewers object[]

Users that viewed the case (ordered by date in decreasing order)

    id number

ID of the user

    username string

Username of the user

    email string

E-mail of the user

    date string

Date of the view in ISO-8601 format

  nodes string[]

IDs of the nodes of the case

  edges string[]

IDs of the edges of the case

  columns string[]

Scalar value for a given column by index defined in the alert

  assignedUser optional object

The assignee of the case

    id number

ID of the assigned user

    username string

Username of the assigned user

    email string

E-mail of the assigned user

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
{
  "counts": {
    "unconfirmed": 1,
    "in-progress": 0,
    "confirmed": 1,
    "dismissed": 0
  },
  "cases": [
    {
      "id": 1,
      "sourceKey": "584f2569",
      "alertId": 2,
      "hash": "897f54ff366922a4077c78955c77bcdd",
      "status": "unconfirmed",
      "viewers": [],
      "nodes": ["5971", "5974"],
      "edges": ["523"],
      "columns": [
        1999
      ],
      "assignedUser": {
        "id": 2,
        "username": "Pellegrini",
        "email": "s.pellegrini@linkurio.us"
      }
      "createdAt": "2016-05-16T08:23:35.730Z",
      "updatedAt": "2016-05-16T08:23:35.730Z"
    }
  ]
}

- Get all the actions of a case

Get all the actions of a case ordered by creation date.

/api/:sourceKey/alerts/:alertId/cases/:caseId/actions

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

caseId number

ID of the case

offset optional number

Offset for the pagination

limit optional number

Maximum number of case actions to be returned

action string[]

The types of actions to be returned

Allowed values: "confirm", "unconfirm", "in-progress", "dismiss", "open", "comment", "assign"

Success 200

Field Type Description
caseActions object[]

Actions

  id number

ID of the action

  caseId number

ID of the case

  user object

User that did the action

    id number

ID of the user

    username string

Username of the user

    email string

E-mail of the user

  action CaseActionType

The action performed

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 200 OK
[
  {
    "id": 10,
    "caseId": 3,
    "action": "comment",
    "createdAt": "2016-06-14T08:25:25.730Z",
    "updatedAt": "2016-06-14T08:25:25.730Z",
    "user": {
        "id": 1,
        "username": "alice",
        "email": "alice@example.us"
    },
    "comment": "test 1",
    "metadata":{"mentions":[]}
  },
  {
    "id": 9,
    "caseId": 3,
    "action": "dismiss",
    "createdAt": "2016-06-16T08:22:35.730Z",
    "updatedAt": "2016-06-16T08:22:35.730Z",
    "user": {
      "id": 1,
      "username": "alice",
      "email": "alice@example.com"
    },
    "comment": "test 2",
    "metadata":{"mentions":[]}
  },
  {
    "id": 8,
    "caseId": 4,
    "action": "open",
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z",
    "user": {
      "id": 2,
      "username": "bob",
      "email": "bob@example.com"
    },
    "comment": "Hello @user@linkurio.us, I am assigning you to this case.",
    "metadata":{
        "mentions":[
           {
              "position":6,
              "length":19,
              "user":{
                 "userName":"user",
                 "email":"user@linkurio.us",
                 "hasAccess":true
              }
           }
        ]
     }
  }
]

- Do an action on a case

Do an action (open, dismiss, confirm, comment) on a case.

/api/:sourceKey/alerts/:alertId/cases/:caseId/action

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

caseId number

ID of the case

comment optional string

Text of the comment

body

Field Type Description
action string

The action to perform

Allowed values: "confirm", "dismiss", "open", "comment"

  HTTP/1.1 201
 {
   "id": 1,
   "caseId": 1,
   "action": "comment",
   "createdAt": "2021-03-30T12:44:26.731Z",
   "updatedAt": "2021-03-30T12:44:26.731Z",
   "user": {
       "id": 1,
       "username": "Unique user",
       "email": "user@linkurio.us"
   },
   "comment": "Test comment",
   "metadata":{"mentions":[]}
}

- Delete a case comment

Delete a case comment.

/api/:sourceKey/alert/case/comment/:commentId

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

commentId number

ID of the comment

HTTP/1.1 204 No Content

- Create a case extract

Collect all the case list information of a given alert in an Excel file and return it.

/api/:sourceKey/alerts/:alertId/cases/extract

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

HTTP/1.1 200 OK

- Create a case extract

Collect all the case list information for given alerts in an Excel file and return it.

/api/:sourceKey/alerts/cases/extract

Permission: API right: alert.doAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

limit optional number

Maximum amount of returned cases

Default value: 30

offset optional number

Offset of the first returned case

Default value: 0

sortBy FullCaseListSortBy[]

Properties and direction to sort cases by, as an array of objects with "by" and "direction" properties (e.g. [{"by":"alertName", "direction":"desc"}]) encoded as JSON

alertIdsFilter optional number[]

Filter by a list of alert ids passed as comma separated values (e.g. 1, 2, 3)

alertQueryModelKeysFilter optional string[]

Filter by a list of alert queries model keys passed as comma separated values (e.g. "2a33f631-2733-4123-8f15-efb1c309a3cc,9ac929d5-4747-4756-83f4-f2a09f41a5bd" )

assignedUserIdsFilter optional number[]

Filter by a list of assigned user ids passed as comma separated values (e.g. 1, 2, 3)

caseStatusesFilter optional CaseStatus[]

Filter by a list of case statuses passed as comma separated values (e.g. confirmed, unconfirmed)

caseColumnsFilter optional CaseColumnsFilter[]

Filter by a list of column filters, as an array of objects with "index" and "value" properties (e.g. [{"index":"0", "value":"paris"}]) encoded as JSON

HTTP/1.1 200 OK

- Preview an alert

Get all the nodes and edges matching the given graph query. An array of subgraphs, one for each subgraph matching the graph query, is returned.

/api/:sourceKey/graph/alertPreview

Permission: User action: admin.alerts API right: admin.alerts

Parameter

Field Type Description
sourceKey string

Key of the data-source

query string

The graph query

dialect optional string

Dialect of the graph query (defaults to the first supported dialect of the data-source)

Allowed values: "cypher", "gremlin"

columns optional object[]

Columns among the returned values of the query to return as scalar values

  type string

Type of the column

Allowed values: "number", "string"

  columnName optional string

Name of the column in the query

  columnTitle string

Name of the column for the UI

  currencyOptions optional object

Additional field to set the "currency" information for the "number" type

    type string

Type always set to "currency" in order to identify the currency number type

Allowed values: "currency"

    symbol string

Symbol of the Currency

    format string

Format of the Currency

Allowed values: "[Symbol] #,###.##", "#.###,## [Symbol]", "# ###,## [Symbol]"

limit optional number

Maximum number of matched subgraphs

timeout optional number

Maximum execution time in milliseconds

target string

The alert's target

Success 200

Field Type Description
cases object[]

List of cases

  columns string/number[]

Scalar values of the case

  nodes object[]
    id string

ID of the node

    data object
      categories string

Categories of the node

      properties object

Properties of the node

      geo IGeoData

Coordinates of the node

      statistics optional object

Statistics of the node

        supernode optional boolean

Whether the node is a supernode

        digest optional LkDigestItem[]

Statistics of the neighborhood of the node

        degree optional number

Number of neighbors of the node readable by the current user

        supernodeDigest optional LkEdgeDigestItem[]

Simplified statistics of the neighborhood of the node (alternative to digest for supernodes)

        supernodeDegree optional number

Number of adjacent edges of the node (alternative to degree for supernodes)

      readAt number

Read timestamp in epoch time

  edges object[]
    id string

ID of the edge

    source string

ID of the source node

    target string

ID of the target node

    data object
      type string

Type of the edge

      properties object

Properties of the edge

      readAt number

Read timestamp in epoch time

HTTP/1.1 200 OK
[
  {
    "columns": ['David'],
    "nodes": [
      {
        "id": "1",
        "data": {
          "categories": ["Person"],
          "properties": {
            "name": "David"
          },
          "geo": {},
          "statistics": {
            "supernode": false,
            "digest": [
              {
                "nodeCategories": [
                  "Company"
                ],
                "edgeType": "works_for",
                "nodes": 1,
                }
            ]
          },
          "readAt": 692362800000
        }
      }
    ],
    "edges": [
      {
        "id": "1",
        "source": "1",
        "target": "2",
        "data": {
          "type": "works_for",
          "properties": {
            "since": "2016-05-09"
          },
          "readAt": 692362800000
        }
      }
    ]
  }
]

- Get alert users

Get the list of users that can process a given alert.

/api/:sourceKey/alerts/:alertId/users

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

Success 200

Field Type Description
users object[]

Alert users

  id string

ID of the alert user

  username string

Name of the alert user

  email string

Email of the alert user

  hasAssignedCases boolean

Whether the user has one or more case assigned to them

HTTP/1.1 200 OK
[
 {
   "id": 2;
   "username": "Perriero";
   "email": "perriero@linkurio.us"
   "hasAssignedCases": false
 },
 {
   "id": 7;
   "username": "Pellegrini";
   "email": "s.pellegrini@linkurio.us"
   "hasAssignedCases": true
 }
]

- Get all the cases of alerts that a user can access

Get all the cases of alerts that a user can access.

/api/:sourceKey/alerts/cases

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

limit optional number

Maximum amount of returned cases

Default value: 30

offset optional number

Offset of the first returned case

Default value: 0

sortBy FullCaseListSortBy[]

Properties and direction to sort cases by, as an array of objects with "by" and "direction" properties (e.g. [{"by":"alertName", "direction":"desc"}]) encoded as JSON

alertIdsFilter optional number[]

Filter by a list of alert ids passed as comma separated values (e.g. 1, 2, 3)

alertQueryModelKeysFilter optional string[]

Filter by a list of alert queries model keys passed as comma separated values (e.g. "2a33f631-2733-4123-8f15-efb1c309a3cc,9ac929d5-4747-4756-83f4-f2a09f41a5bd" )

assignedUserIdsFilter optional number[]

Filter by a list of assigned user ids passed as comma separated values (e.g. 1, 2, 3)

caseStatusesFilter optional CaseStatus[]

Filter by a list of case statuses passed as comma separated values (e.g. confirmed, unconfirmed)

caseColumnsFilter optional CaseColumnsFilter[]

Filter by a list of column filters, as an array of objects with "index" and "value" properties (e.g. [{"index":"0", "value":"paris"}]) encoded as JSON

Success 200

Field Type Description
totalCasesCount number

Total number of cases of alerts that a user can access

fullCaseList object[]

List of cases

  id number

ID of the case

  alertName string

alert name

  alertId number

alert ID

  alertFolder string

alert folder name

  alertDescription string

alert description

  creationDate string

case creation date in ISO-8601 format

  statusChangedOn string

case last status change date in ISO-8601 format

  status string

Status of the case case status

Allowed values: "unconfirmed", "in-progress", "confirmed", "dismissed"

  statusChangedBy object

Last user that changed the status

    id number

Id of the Last user that changed the status

    username string

Username of the Last user that changed the status

    email string

E-mail of the Last user that changed the status

  assignedUser object

The assigned user

    id number

Id of the assigned user

    username string

Username of the assigned user

    email string

E-mail of the assigned user

HTTP/1.1 200 OK
{
  "totalCasesCount": 1,
  "fullCaseList":
  [
    {
      "id": 1,
      "alertName": "alert1",
      "alertId": 1,
      "alertFolder": "alertFolder1",
      "alertDescription": "alert number 1",
      "creationDate": "2016-05-16T08:23:35.730Z",
      "status": "unconfirmed",
      "statusChangedBy": {"id":1, "username":"user1", "email":"user1@linkurio.us"},
      "statusChangedOn": "2016-05-16T08:23:35.730Z",
      "assignee": {"id":2, "username":"user2", "email":"user2@linkurio.us"}
    }
  ]
}

- Get a case preview by id

Get a case preview by id.

/api/:sourceKey/alerts/:alertId/cases/:caseId/preview

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

alertId number

ID of the alert

caseId number

ID of the case

Success 200

Field Type Description
id number

ID of the case

alertName string

alert name

alertId number

alert ID

alertFolder string

alert folder name

alertDescription string

alert description

creationDate string

case creation date in ISO-8601 format

status string

Status of the case case status

Allowed values: "unconfirmed", "in-progress", "confirmed", "dismissed"

assignedUser object

The assigned user

  id number

Id of the assigned user

  username string

Username of the assigned user

  email string

E-mail of the assigned user

attributes object[]

Case attributes columns

  type string

Type of the attribute

Allowed values: "string", "number"

  columnTitle string

Title of the attribute column

  columnValue string

Value of the attribute column

commentsCount number

Total number of comments in the case

lastCommentDate string

last comment date in the case in ISO-8601 format

HTTP/1.1 200 OK
{
  "totalCasesCount": 1,
  "fullCaseList":
  [
    {
      "id": 1,
      "alertName": "alert1",
      "alertId": 1,
      "alertFolder": "alertFolder1",
      "alertDescription": "alert number 1",
      "creationDate": "2016-05-16T08:23:35.730Z",
      "status": "unconfirmed",
      "assignee": {"id":2, "username":"user2", "email":"user2@linkurio.us"},
      "attributes": [
          {
              "type": "string",
              "columnValue": "Paris",
              "columnTitle": "City name"
          }
      ],
      "commentsCount": 2,
      "lastCommentDate": "2016-05-16T08:23:35.730Z"
    }
  ]
}

- Get the preferences of the user for the unified case list in the specified source

Get the preferences of the user for the unified case list in the specified source.

/api/:sourceKey/alerts/cases/list/preferences

Permission: API right: alert.read

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
userId number

The ID of the user attached to the preferences

sourceKey string

The key of the data-source

filters FullCaseListFilters

Filters to apply to the case list

sortBy FullCaseListSortBy[]

Properties and direction to sort cases by, as an array of objects with "by" and "direction" properties (e.g. [{"by":"alertName", "direction":"desc"}]) encoded as JSON

offset number

Offset of the first returned case

HTTP/1.1 200 OK
{
  "userId": 3,
  "sourceKey": "2md8orv6",
  "filters": {
    "alertIds": [1, 3, 4],
    "assignedUserIds": [3]
  },
  "sortBy": [
    {
      "by": "id",
      "direction": "desc"
    }
  ],
  "offset": 20
}

- Set the preferences of the user for the unified case list in the specified source

Set the preferences of the user for the unified case list in the specified source.

/api/:sourceKey/alerts/cases/list/preferences

Permission: API right: alert.read

Parameter

Field Type Description
preferences object

The preferences to save

  filters FullCaseListFilters

Filters to apply to the case list

  sortBy FullCaseListSortBy[]

Properties and direction to sort cases by, as an array of objects with "by" and "direction" properties (e.g. [{"by":"alertName", "direction":"desc"}]) encoded as JSON

  offset number

Offset of the first returned case

sourceKey string

Key of the data-source

HTTP/1.1 204 No Content

User

User - Get a user

Get a user by id.

/api/admin/users/:id

Permission: User action: admin.users

Parameter

Field Type Description
id number

ID of the user

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "username": "Unique user",
  "email": "user@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "builtin": true,
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "admin.app",
      "admin.report",
      "admin.schema",
      "admin.schema.read",
      "admin.users.delete",
      "admin.config",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:45.730Z",
  "lastActiveDate": "2016-08-21T11:46:27.230Z"
}

User - Get users

Get all the users or filter them by username, e-mail or group id.

/api/admin/users

Permission: User action: admin.users

Parameter

Field Type Description
starts_with optional string

Return only users which username or e-mail starts with this

contains optional string

Return only users which username or e-mail contains this

group_id optional number

Return only users belongings to this group

offset optional number

Offset from the first result

limit optional number

Page size (maximum number of returned users)

Default value: 10

sort_by optional string

Sort by id, username or e-mail

Default value: id

Allowed values: "id", "username", "email"

sort_direction optional string

Direction used to sort the users

Default value: asc

Allowed values: "asc", "desc"

Success 200

Field Type Description
found number

Number of hits

results object[]

Users

  id number

ID of the user

  username string

Username of the user

  email string

E-mail of the user

  source string

Source of the user ("local", "ldap", "oauth2", etc.)

  groups group[]

Groups the user belongs to

  preferences preferences

Preferences of the user

  actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

  visCount number

Number of visualization owned by the user

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

  lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "found": 2,
  "results": [
    {
      "id": 1,
      "username": "Unique user",
      "email": "user@linkurio.us",
      "source": "local",
      "groups": [
        {
          "id": 1,
          "name": "admin",
          "builtin": true,
          "sourceKey": "*"
        }
      ],
      "preferences": {
        "pinOnDrag": false,
        "locale": "en-US",
        "incrementalLayout": false
      },
      "actions": {
        "*": [
          "admin.users",
          "admin.alerts",
          "admin.connect",
          "admin.index",
          "admin.app",
          "admin.report",
          "admin.users.delete",
          "admin.config",
          "rawReadQuery",
          "rawWriteQuery"
        ]
      },
      "accessRights": {
        "*": {
          "nodes": {
            "edit": [],
            "write": ["*"]
          },
          "edges": {
            "edit": [],
            "write": ["*"]
          },
          "alerts": {
            "read": ["*"]
          }
        }
      },
      "visCount": 2,
      "createdAt": "2016-05-16T08:23:35.730Z",
      "updatedAt": "2016-05-16T08:23:35.730Z",
      "lastActiveDate": "2016-05-17T08:23:35.730Z"
    },
    {
      "id": 2,
      "username": "newUser",
      "email": "new@linkurio.us",
      "source": "local",
      "groups": [
        {
          "id": 2,
          "name": "source manager",
          "builtin": true,
          "sourceKey": "584f2569"
        }
      ],
      "preferences": {
        "pinOnDrag": false,
        "locale": "en-US",
        "incrementalLayout": false
      },
      "actions": {
        "*": [],
        "584f2569": [
          "admin.users",
          "admin.alerts",
          "admin.connect",
          "admin.index",
          "rawReadQuery",
          "rawWriteQuery"
        ]
      },
      "accessRights": {
        "*": {
          "nodes": {
            "edit": [],
            "write": []
          },
          "edges": {
            "edit": [],
            "write": []
          },
          "alerts": {
            "read": []
          }
        },
        "584f2569": {
          "nodes": {
            "edit": [],
            "write": ["*"]
          },
          "edges": {
            "edit": [],
            "write": ["*"]
          },
          "alerts": {
            "read": ["*"]
          }
        }
      },
      "visCount": 0,
      "createdAt": "2016-05-16T08:23:35.730Z",
      "updatedAt": "2016-05-16T08:23:35.730Z",
      "lastActiveDate": "2016-05-17T08:23:35.730Z"
    }
  ]
}

User - List data-source users

Get the list of users based on an e-mail filter in a data-source.

/api/:sourceKey/users

Permission: authenticated  

Parameter

Field Type Description
contains optional string

Return only users which e-mail contains this

sourceKey number

Return only users who has access to this source key.

offset optional number

Offset from the first result

Default value: 0

limit optional number

Page size (maximum number of returned users)

Default value: 10

excludedUserIds optional number[]

A number array containing the users ids that we want to exclude from our search

Success 200

Field Type Description
found number

Number of hits

results object[]

Users

  id number

ID of the user

  username string

Username of the user

  email string

E-mail of the user

HTTP/1.1 200 OK
{
  "found": 2,
  "results": [
    {
      "id": 1,
      "username": "Unique user",
      "email": "user@linkurio.us"
    },
    {
      "id": 2,
      "username": "newUser",
      "email": "new@linkurio.us"
    }
  ]
}

User - Create a user

Add a new user.

/api/admin/users

Permission: User action: admin.users

Parameter

Field Type Description
username string

Username of the user

email string

E-mail of the user

password string

Password of the user

groups optional number[]

IDs of the groups the user belong to

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key. The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right. The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

HTTP/1.1 201 Created
{
  "id": 2,
  "username": "newUser",
  "email": "new@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 2,
      "name": "source manager",
      "builtin": true,
      "sourceKey": "584f2569"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [],
    "584f2569": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": []
      },
      "edges": {
        "edit": [],
        "write": []
      },
      "alerts": {
        "read": []
      }
    },
    "584f2569": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:35.730Z"
}

User - Update a user

Update a user.

/api/admin/users/:id

Permission: User action: admin.users

Parameter

Field Type Description
id number

ID of the user

username optional string

New username of the user

email optional string

New e-mail of the user

password optional string

New password of the user

preferences optional preferences

New preferences of the user

addedGroups optional number[]

IDs of the groups to add to the user

removedGroups optional number[]

IDs of the groups to remove from the user

Success 200

Field Type Description
id number

ID of the user

username string

Username of the user

email string

E-mail of the user

source string

Source of the user ("local", "ldap", "oauth2", etc.)

groups group[]

Groups the user belongs to

preferences preferences

Preferences of the user

actions object

Arrays of authorized actions indexed by data-source key The special key "*" lists actions authorized on all the data-sources

accessRights object

Arrays of authorized node categories and edge types indexed by data-source key, by type and by right The special key "*" lists access rights authorized on all the data-sources

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

lastActiveDate string

Last active date in ISO-8601 format

HTTP/1.1 200 OK
{
  "id": 1,
  "username": "Unique user",
  "email": "user@linkurio.us",
  "source": "local",
  "groups": [
    {
      "id": 1,
      "name": "admin",
      "builtin": true,
      "sourceKey": "*"
    }
  ],
  "preferences": {
    "pinOnDrag": false,
    "locale": "en-US",
    "incrementalLayout": false
  },
  "actions": {
    "*": [
      "admin.users",
      "admin.alerts",
      "admin.connect",
      "admin.index",
      "admin.app",
      "admin.report",
      "admin.schema",
      "admin.schema.read",
      "admin.users.delete",
      "admin.config",
      "rawReadQuery",
      "rawWriteQuery"
    ]
  },
  "accessRights": {
    "*": {
      "nodes": {
        "edit": [],
        "write": ["*"]
      },
      "edges": {
        "edit": [],
        "write": ["*"]
      },
      "alerts": {
        "read": ["*"]
      }
    }
  },
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:45.730Z",
  "lastActiveDate": "2016-08-21T11:46:27.230Z"
}

User - Delete a user

Delete a user.

/api/admin/users/:id

Permission: User action: admin.users.delete

Parameter

Field Type Description
id number

ID of the user

migrateAssetsTo number

ID of the target user for asset migration

HTTP/1.1 204 No Content

User - Get a group

Get a group.

/api/admin/:sourceKey/groups/:id

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the group

Success 200

Field Type Description
id number

ID of the group

name string

Name of the group

builtin boolean

Whether the group was created internally by Linkurious

sourceKey string

Key of the data-source

userCount number

Number of users in the group

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

accessRights object[]

List of access rights

  type string

Type of the right

Allowed values: "read", "write", "edit", "do", "none"

  targetType string

Type of the target

Allowed values: "nodeCategory", "edgeType", "alert", "action"

  targetName string

Name of the target (node category, edge type, alert id or action name)

HTTP/1.1 200 OK
{
  "id": 30,
  "name": "customGroup",
  "builtin": false,
  "sourceKey": "584f2569",
  "userCount": 2,
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:35.730Z",
  "accessRights": [
    {
      "type": "edit",
      "targetType": "nodeCategory",
      "targetName": "Movie"
    },
    {
      "type": "read",
      "targetType": "nodeCategory",
      "targetName": "Person"
    },
    {
      "type": "read",
      "targetType": "edgeType",
      "targetName": "ACTED_IN"
    },
    {
      "type": "do",
      "targetType": "actions",
      "targetName": "admin.connect"
    }
  ]
}

User - Get all groups

Get all the groups within a data-source.

/api/admin/:sourceKey/groups

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
groups object[]

List of groups

  id number

ID of the group

  name string

Name of the group

  builtin boolean

Whether the group was created internally by Linkurious

  sourceKey string

Key of the data-source

  userCount number

Number of users in the group

  createdAt string

Creation date in ISO-8601 format

  updatedAt string

Last update date in ISO-8601 format

  accessRights object[]

List of access rights

    type string

Type of the right

Allowed values: "read", "write", "edit", "do", "none"

    targetType string

Type of the target

Allowed values: "nodeCategory", "edgeType", "alert", "action"

    targetName string

Name of the target (node category, edge type, alert id or action name)

HTTP/1.1 200 OK
[
  {
    "id": 1,
    "name": "admin",
    "builtin": true,
    "sourceKey": "*",
    "userCount": 1,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  },
  {
    "id": 2,
    "name": "read",
    "builtin": true,
    "sourceKey": "584f2569",
    "userCount": 1,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  },
  {
    "id": 3,
    "name": "read and edit",
    "builtin": true,
    "sourceKey": "584f2569",
    "userCount": 0,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  },
  {
    "id": 4,
    "name": "read, edit and delete",
    "builtin": true,
    "sourceKey": "584f2569",
    "userCount": 0,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  },
  {
    "id": 5,
    "name": "source manager",
    "builtin": true,
    "sourceKey": "584f2569",
    "userCount": 0,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  },
  {
    "id": 6,
    "name": "custom group",
    "builtin": false,
    "sourceKey": "584f2569",
    "userCount": 0,
    "createdAt": "2016-05-16T08:23:35.730Z",
    "updatedAt": "2016-05-16T08:23:35.730Z"
  }
]

User - Get group names

Get the names of groups that can perform a given action on the data-source.

/api/:sourceKey/groups

Permission: authenticated  

Parameter

Field Type Description
action optional string

Action to filter on

User - Create a group

Add a new group.

/api/admin/:sourceKey/groups

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

name string

Name of the group

Success 200

Field Type Description
id number

ID of the group

name string

Name of the group

builtin boolean

Whether the group was created internally by Linkurious

sourceKey string

Key of the data-source

userCount number

Number of users in the group

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

accessRights object[]

List of access rights

  type string

Type of the right

Allowed values: "read", "write", "edit", "do", "none"

  targetType string

Type of the target

Allowed values: "nodeCategory", "edgeType", "alert", "action"

  targetName string

Name of the target (node category, edge type, alert id or action name)

HTTP/1.1 201 Created
{
  "id": 31,
  "name": "newGroup",
  "builtin": false,
  "sourceKey": "584f2569",
  "userCount": 0,
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:35.730Z",
  "accessRights": [
    {
      "type": "none",
      "targetType": "nodeCategory",
      "targetName": "Movie"
    },
    {
      "type": "none",
      "targetType": "nodeCategory",
      "targetName": "Person"
    },
    {
      "type": "none",
      "targetType": "edgeType",
      "targetName": "ACTED_IN"
    }
  ]
}

User - Rename a group

Rename a group.

/api/admin/:sourceKey/groups/:id

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the group

name string

Name of the group

Success 200

Field Type Description
id number

ID of the group

name string

Name of the group

builtin boolean

Whether the group was created internally by Linkurious

sourceKey string

Key of the data-source

userCount number

Number of users in the group

createdAt string

Creation date in ISO-8601 format

updatedAt string

Last update date in ISO-8601 format

accessRights object[]

List of access rights

  type string

Type of the right

Allowed values: "read", "write", "edit", "do", "none"

  targetType string

Type of the target

Allowed values: "nodeCategory", "edgeType", "alert", "action"

  targetName string

Name of the target (node category, edge type, alert id or action name)

HTTP/1.1 200 OK
{
  "id": 30,
  "name": "customGroup",
  "builtin": false,
  "sourceKey": "584f2569",
  "userCount": 2,
  "createdAt": "2016-05-16T08:23:35.730Z",
  "updatedAt": "2016-05-16T08:23:35.730Z",
  "accessRights": [
    {
      "type": "edit",
      "targetType": "nodeCategory",
      "targetName": "Movie"
    },
    {
      "type": "read",
      "targetType": "nodeCategory",
      "targetName": "Person"
    },
    {
      "type": "read",
      "targetType": "edgeType",
      "targetName": "ACTED_IN"
    },
    {
      "type": "do",
      "targetType": "actions",
      "targetName": "admin.connect"
    }
  ]
}

User - Delete a group

Delete a group.

/api/admin/:sourceKey/groups/:id

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the group

HTTP/1.1 204 No Content

User - Transfer visualizations, queries and custom actions between users

Transfer all the visualizations, queries and custom actions from a source user to a target user.

/api/admin/users/mergeUsers

Permission: User action: admin.users

Parameter

Field Type Description
from number

ID of the source user

to number

ID of the target user

HTTP/1.1 204 No Content

User - Get eligible users for asset share

Get users with equivalent access rights to a user for asset sharing.

/api/admin/users/:id/sharedAssets/eligibleUsers

Permission: User action: admin.users

Parameter

Field Type Description
id number

Return only users which have equivalent access rights to this user

HTTP/1.1 200 OK
[
    {
      "id": 1,
      "username": "Unique user",
      "email": "user@linkurio.us",
      "source": "local",
      "groups": [
        {
          "id": 1,
          "name": "admin",
          "builtin": true,
          "sourceKey": "*"
        }
      ],
      "preferences": {
        "pinOnDrag": false,
        "locale": "en-US",
        "incrementalLayout": false
      },
      "actions": {
        "*": [
          "admin.users",
          "admin.alerts",
          "admin.connect",
          "admin.index",
          "admin.app",
          "admin.report",
          "admin.users.delete",
          "admin.config",
          "rawReadQuery",
          "rawWriteQuery"
        ]
      },
      "accessRights": {
        "*": {
          "nodes": {
            "edit": [],
            "write": ["*"]
          },
          "edges": {
            "edit": [],
            "write": ["*"]
          },
          "alerts": {
            "read": ["*"]
          }
        }
      },
      "createdAt": "2016-05-16T08:23:35.730Z",
      "updatedAt": "2016-05-16T08:23:35.730Z",
      "lastActiveDate": "2016-05-17T08:23:35.730Z"
    },
    {
      "id": 2,
      "username": "newUser",
      "email": "new@linkurio.us",
      "source": "local",
      "groups": [
        {
          "id": 2,
          "name": "source manager",
          "builtin": true,
          "sourceKey": "584f2569"
        }
      ],
      "preferences": {
        "pinOnDrag": false,
        "locale": "en-US",
        "incrementalLayout": false
      },
      "actions": {
        "*": [],
        "584f2569": [
          "admin.users",
          "admin.alerts",
          "admin.connect",
          "admin.index",
          "rawReadQuery",
          "rawWriteQuery"
        ]
      },
      "accessRights": {
        "*": {
          "nodes": {
            "edit": [],
            "write": []
          },
          "edges": {
            "edit": [],
            "write": []
          },
          "alerts": {
            "read": []
          }
        },
        "584f2569": {
          "nodes": {
            "edit": [],
            "write": ["*"]
          },
          "edges": {
            "edit": [],
            "write": ["*"]
          },
          "alerts": {
            "read": ["*"]
          }
        }
      },
      "createdAt": "2016-05-16T08:23:35.730Z",
      "updatedAt": "2016-05-16T08:23:35.730Z",
      "lastActiveDate": "2016-05-17T08:23:35.730Z"
    }
]

User - Get the counts of user's shared assets

Get the counts of user's shared assets in all data-sources.

/api/admin/users/:id/sharedAssets

Permission: User action: admin.users

Parameter

Field Type Description
id number

ID of the user to retrieve counts of shared assets

HTTP/1.1 200 OK
{
  count: 6
}

User - List group users

Get the list of users part of a group.

/api/:sourceKey/groups/:groupId/users

Permission: authenticated  

Parameter

Field Type Description
groupId string

ID of the group to retrieve it's users

sourceKey number

Return only users who have access to this source key.

offset optional number

Offset from the first result

Default value: 0

limit optional number

Page size (maximum number of returned users)

Default value: 10

sort_by optional string

Sort by id, username or e-mail

Default value: email

Allowed values: "id", "username", "email"

sort_direction optional string

Direction used to sort the users

Default value: asc

Allowed values: "asc", "desc"

HTTP/1.1 200 OK
{
  "found": 2,
  "results": [
    {
      "id": 1,
      "username": "Unique user",
      "email": "user@linkurio.us"
    },
    {
      "id": 2,
      "username": "newUser",
      "email": "new@linkurio.us"
    }
  ]
}

AccessRight

AccessRight - Update the access rights settings

Update the access rights settings of the data-source.

/api/admin/:sourceKey/accessRights/settings

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

propertyKeyAccessRights boolean

Whether property key access rights are enabled

HTTP/1.1 204 No Content

AccessRight - Set access rights

Set access rights on a group. The access rights will be checked to be of node categories or edge types in the schema.

/api/admin/:sourceKey/groups/:id/access_rights

Permission: User action: admin.users

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the group

accessRights object[]

List of access rights

  type string

Type of the right

Allowed values: "read", "write", "edit", "do", "none"

  targetType string

Type of the target

Allowed values: "nodeCategory", "edgeType", "nodePropertyKey", "edgePropertyKey", "alert", "action"

  targetName string

Name of the target (node category, edge type, alert id or action name)

  targetItemType string

Name of the node category or the edge type (if type="nodePropertyKey" or type="edgePropertyKey")

HTTP/1.1 204 No Content

CustomAction

- Get all custom actions

Get all the custom actions owned by the current user or shared with them.

/api/:sourceKey/customAction

Permission: guest user   , User action: runCustomAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Type Description
customActions object[]

List of custom actions

  id number

ID of the custom action

  createdAt string

Creation time of the custom action

  updatedAt string

Last update time of the custom action

  sourceKey string

Key of the data-source

  name string

Name of the custom action

  urlTemplate string

URL template of the custom action

  description string

Description of the custom action

  sharing string

Whether the custom action is visible by its owner or everyone

Allowed values: "private", "source"

  right string

Right on the custom action of the current user

Allowed values: "owner", "read"

  parsedTemplate object

Parsed template generated from the URL template

    type string

One of the five possible types a custom action can be

Allowed values: "non-graph", "node", "edge", "nodeset", "edgeset"

    elements object[]

Parsed elements extracted from the URL template

      value string

Substring from the URL template this parsed element comes from

      type string

Whether the value is a literal or an expression to be processed when rendering

Allowed values: "ca-literal", "ca-expression"

      variable optional string

The variable name when the element is a expression

Allowed values: "visualization", "sourcekey", "node", "edge", "nodeset", "edgeset"

      itemType optional string

The category or the type of the variable when the element is a expression

      property optional string

The property of the variable when the element is a expression

HTTP/1.1 200 OK
[
  {
    "id": 1,
    "createdAt": "2019-09-09T08:50:54.951Z",
    "updatedAt": "2019-09-09T08:50:54.951Z",
    "sourceKey": "2c08a4d9",
    "name": "Open GitHub profile",
    "urlTemplate": "github.com/{{(node:PERSON).name}}",
    "description": "It opens the user GitHub profile",
    "sharing": "source",
    "right": "owner",
    "parsedTemplate": {
      "type": "node",
      "elements": [
        {
          "type": "ca-literal",
          "value": "github.com/"
        },
        {
          "type": "ca-expression",
          "value": "(node:PERSON).name",
          "variable": "node",
          "itemType": "PERSON",
          "property": "name"
        }
      ]
    }
  }
]

- Create a custom action

Create a new custom action for the current user.

/api/:sourceKey/customAction

Permission: User action: writeCustomAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

name string

Name to display of the custom action

urlTemplate string

Template that will render into a URL

description optional string

Description of the custom action

sharing string

Sharing policy of the custom action

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the custom action is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the custom action

createdAt string

Creation time of the custom action

updatedAt string

Last update time of the custom action

sourceKey string

Key of the data-source

name string

Name of the custom action

urlTemplate string

URL template of the custom action

description string

Description of the custom action

sharing string

Whether the custom action is visible by its owner or everyone

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the custom action is shared with (if sharing="groups")

right string

Right on the custom action of the current user

Allowed values: "owner", "read"

parsedTemplate object

Parsed template generated from the URL template

  type string

One of the five possible types a custom action can be

Allowed values: "non-graph", "node", "edge", "nodeset", "edgeset"

  elements object[]

Parsed elements extracted from the URL template

    value string

Substring from the URL template this parsed element comes from

    type string

Whether the value is a literal or an expression to be processed when rendering

Allowed values: "ca-literal", "ca-expression"

    variable optional string

The variable name when the element is a expression

Allowed values: "visualization", "sourcekey", "node", "edge", "nodeset", "edgeset"

    itemType optional string

The category or the type of the variable when the element is a expression

    property optional string

The property of the variable when the element is a expression

HTTP/1.1 200 OK
{
  "id": 1,
  "createdAt": "2019-09-09T08:50:54.951Z",
  "updatedAt": "2019-09-09T08:50:54.951Z",
  "sourceKey": "2c08a4d9",
  "name": "Open GitHub profile",
  "urlTemplate": "github.com/{{(node:PERSON).name}}",
  "description": "It opens the user GitHub profile",
  "sharing": "source",
  "right": "owner",
  "parsedTemplate": {
    "type": "node",
    "elements": [
      {
        "type": "ca-literal",
        "value": "github.com/"
      },
      {
        "type": "ca-expression",
        "value": "(node:PERSON).name",
        "variable": "node",
        "itemType": "PERSON",
        "property": "name"
      }
    ]
  }
}

- Update a custom action

Update a custom action owned by the current user.

/api/:sourceKey/customAction/:id

Permission: User action: writeCustomAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the custom action

name optional string

Name to display of the custom action

urlTemplate optional string

Template that will render into a URL

description optional string

Description of the custom action

sharing optional string

Sharing policy of the custom action

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the custom action is shared with (if sharing="groups")

Success 200

Field Type Description
id number

ID of the custom action

createdAt string

Creation time of the custom action

updatedAt string

Last update time of the custom action

sourceKey string

Key of the data-source

name string

Name of the custom action

urlTemplate string

URL template of the custom action

description string

Description of the custom action

sharing string

Whether the custom action is visible by its owner or everyone

Allowed values: "private", "source", "groups"

sharedWithGroups optional number[]

IDs of the groups the custom action is shared with (if sharing="groups")

right string

Right on the custom action of the current user

Allowed values: "owner", "read"

parsedTemplate object

Parsed template generated from the URL template

  type string

One of the five possible types a custom action can be

Allowed values: "non-graph", "node", "edge", "nodeset", "edgeset"

  elements object[]

Parsed elements extracted from the URL template

    value string

Substring from the URL template this parsed element comes from

    type string

Whether the value is a literal or an expression to be processed when rendering

Allowed values: "ca-literal", "ca-expression"

    variable optional string

The variable name when the element is a expression

Allowed values: "visualization", "sourcekey", "node", "edge", "nodeset", "edgeset"

    itemType optional string

The category or the type of the variable when the element is a expression

    property optional string

The property of the variable when the element is a expression

HTTP/1.1 200 OK
{
  "id": 1,
  "createdAt": "2019-09-09T08:50:54.951Z",
  "updatedAt": "2019-09-09T08:50:54.951Z",
  "sourceKey": "2c08a4d9",
  "name": "Open GitHub profile",
  "urlTemplate": "github.com/{{(node:PERSON).name}}",
  "description": "It opens the user GitHub profile",
  "sharing": "source",
  "right": "owner",
  "parsedTemplate": {
    "type": "node",
    "elements": [
      {
        "type": "ca-literal",
        "value": "github.com/"
      },
      {
        "type": "ca-expression",
        "value": "(node:PERSON).name",
        "variable": "node",
        "itemType": "PERSON",
        "property": "name"
      }
    ]
  }
}

- Delete a custom action

Delete a custom action owned by the current user.

/api/:sourceKey/customAction/:id

Permission: User action: writeCustomAction

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

ID of the custom action

HTTP/1.1 204 No Content

Favorite

Favorite - Create a favorite item

Set an item as favorite for the current user.

/api/:sourceKey/favorites/:type/:itemId

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

type string

Type of the item

Allowed values: graph-query

itemId number

ID of the item

Favorite - Delete a favorite item

Unset a favorite item of the current user.

/api/:sourceKey/favorites/:type/:itemId

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

type string

Type of the item

Allowed values: graph-query

itemId number

ID of the item

Plugin

Plugin - List Plugins

Get the list of installed plugins.

/api/admin/plugins

Permission: User action: admin.config

Success 200

Field Type Description
plugins object[]

Installed Plugins

  name string

Name of the plugin

  version optional string

Version of the plugin

  basePath optional string

The path where the plugin is mounted in Linkurious

  error optional string

The last error message of the plugin

  state optional string

The current state of the plugin

Allowed values: "running", "stopped", "error-runtime", "error-manifest"

HTTP/1.1 200 OK
[
  {
    "name": "csv",
    "version": "0.1.0",
    "basePath": "csv",
    "state": "running"
  }
]

Plugin - Restart all plugins

Stop and restart all installed plugins.

/api/admin/plugins/restart-all

Permission: User action: admin.config

HTTP/1.1 204 No Content

Plugin - Plugin api request

Plugin api request.

/plugins/:basePath/api/*

Permission: authenticated  

Parameter

Field Type Description
basePath string

Plugin base path

HTTP/1.1 200 OK

Plugin - Plugin file request

Get a public plugin file.

/plugins/:basePath/*

Permission: authenticated  

Parameter

Field Type Description
basePath string

Plugin base path

HTTP/1.1 200 OK

Notification

Notification

test emailNotifications configurations

/api/admin/notifications/email/checkEmailConfiguration

Permission: User action: admin.config

HTTP/1.1 200 OK

NodeGrouping

NodeGrouping - Create a node grouping rule

Create a new node grouping rule.

/api/:sourceKey/nodeGroupings

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

name string

The name of the rule.

groupingType string

The type of the node grouping rule.

Allowed values: "propertyKey"

groupingOptions optional object

The options for the node grouping rule.

  itemType optional string

The type of the item to group (eg: "Person").

  propertyKey optional string

The property key to group by (eg: "name").

Success 200

Field Description
  1

201 Created { "id":1, "sourceKey":"1e461d00", "name":"groupByName", "groupingType":"propertyKey", "groupingOptions":{"itemType":"Person","propertyKey":"name"}, "canDelete":true }

NodeGrouping - Get node grouping rules

Get all node grouping rules for a data source.

/api/:sourceKey/nodeGroupings

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

Success 200

Field Description
  1

200 OK [ { "id":1, "sourceKey":"1e461d00", "name":"groupByName", "groupingType":"propertyKey", "groupingOptions":{"itemType":"Person","propertyKey":"name"}, "canDelete":true }, { "id":2, "sourceKey":"1e461d00", "name":"groupByCity", groupingType":"propertyKey", "groupingOptions":{"itemType":"Address","propertyKey":"city"}, "canDelete":false } ]

NodeGrouping - Delete a node grouping rule

Delete a node grouping rule.

/api/:sourceKey/nodeGroupings/:id

Permission: authenticated  

Parameter

Field Type Description
sourceKey string

Key of the data-source

id number

The id of the rule to delete.

Success 200

Field Description
  1

204 No Content

Webhook

Webhook - Create a webhook

Create a new new webhook.

/api/admin/webhooks

Permission: User action: admin.webhooks

Parameter

Field Type Description
url string

Target URL to which the payloads will be delivered

secret string

Used as a key to generate the HMAC hex digest of payloads

events optional object[]

Specific events to subscribe to. If unspecified, payloads will be delivered for all events

  eventType string

Type of the event

  sourceKey optional string

Data-source key to filter on. If unspecified, the webhook will receive events of type eventType from all data-sources

HTTP/1.1 201 Created
{
  "id": 1,
  "url": "https://example.com",
  "events": [
    {
      "eventType": "newCase",
      "sourceKey": "b4675b85"
    }
  ],
  "createdAt": "2024-02-09T15:40:58.645Z",
  "updatedAt": "2024-02-09T15:40:58.645Z"
}

Webhook - Delete a webhook

Delete an existing webhook.

/api/admin/webhooks/:webhookId

Permission: User action: admin.webhooks

Parameter

Field Type Description
id number

ID of the webhook

HTTP/1.1 204 No Content

Webhook - List webhooks

List all webhooks.

/api/admin/webhooks

Permission: User action: admin.webhooks

HTTP/1.1 200 OK
{
  "items": [
    {
      "id": 1,
      "url": "https://example.com",
      "events": [
        {
          "eventType": "newCase",
          "sourceKey": "b4675b85"
        }
      ],
      "createdAt": "2024-02-09T15:40:58.645Z",
      "updatedAt": "2024-02-09T15:40:58.645Z"
    },
    {
      "id": 2,
      "url": "https://example.com",
      "createdAt": "2024-02-09T15:47:10.612Z",
      "updatedAt": "2024-02-09T15:47:10.612Z"
    }
  ]
}

Webhook - Ping a webhook

Trigger the ping event on a webhook.

/api/admin/webhooks/:webhookId/ping

Permission: User action: admin.webhooks

Parameter

Field Type Description
id number

ID of the webhook

HTTP/1.1 200 OK
{
  "id": 1,
  "webhookId": 1,
  "payload": {
    "eventType": "ping",
    "data": {}
  }
  "sentDate": "2024-02-09T15:41:00.093Z",
  "createdAt": "2024-02-09T15:40:58.645Z",
  "updatedAt": "2024-02-09T15:40:58.645Z"
}

Webhook - List webhook deliveries

List deliveries for a webhook, with optional pagination.

/api/admin/webhooks/:webhookId/deliveries

Permission: User action: admin.webhooks

Parameter

Field Type Description
id number

ID of the webhook

offset optional number

Offset from the first item

limit optional number

Page size (maximum number of returned items)

HTTP/1.1 200 OK
{
  "totalCount": 10
  "items": [
    {
      "id": 1,
      "webhookId": 1,
      "payload": {
        "eventType": "ping",
        "data": {}
      }
      "sentDate": "2024-02-09T15:41:00.093Z",
      "createdAt": "2024-02-09T15:40:58.645Z",
      "updatedAt": "2024-02-09T15:40:58.645Z"
    },
    {
      "id": 2,
      "webhookId": 1,
      "payload": {
        "eventType": "newCase",
        "sourceKey": "b4675b85",
        "data": {
          "alert": {
            "id": 46,
            "title": "Alert #46",
            "description": "Match nodes",
          },
          "case": {
            "id": 522,
            "url": "https://linkurious.com/alerts/46/case/522"
            "createdAt": "2024-02-09T15:40:58.645Z",
          }
        }
      }
      "sentDate": "2024-02-09T15:41:00.207",
      "createdAt": "2024-02-09T15:40:58.645Z",
      "updatedAt": "2024-02-09T15:40:58.645Z"
    }
  ]
}
Generated with @linkurious/apidoc 0.16.2 - 2024-03-19T17:54:22.164Z