Schema Types#
Query (QueryRoot)#
| Field | Argument | Type | Description |
|---|---|---|---|
| hello | String! | Hello world demo | |
| graph | Graph | Returns a graph | |
| path | String! | Graph path relative to the root namespace (e.g. `"master"` or `"team/project/graph"`). | |
| graphType | GraphType | Optional override for graph semantics — `EVENT` treats every update as a point-in-time event, `PERSISTENT` carries values forward until overwritten or deleted. Defaults to the stored graph's native type. | |
| graphMetadata | MetaGraph | Returns lightweight metadata for a graph (node/edge counts, timestamps) without loading it. Requires at least INTROSPECT permission. | |
| path | String! | Graph path relative to the root namespace. | |
| updateGraph | MutableGraph! | Update graph query, has side effects to update graph state Returns:: GqlMutableGraph | |
| path | String! | Graph path relative to the root namespace. | |
| vectoriseGraph | Boolean! | Update graph query, has side effects to update graph state Returns:: GqlMutableGraph | |
| path | String! | Graph path relative to the root namespace. | |
| model | EmbeddingModel | Optional embedding model; defaults to OpenAI's standard model. | |
| nodes | Template | Optional node-document template (which fields go into each node's text representation); defaults to the built-in template. | |
| edges | Template | Optional edge-document template; defaults to the built-in template. | |
| vectorisedGraph | VectorisedGraph | Create vectorised graph in the format used for queries Returns:: GqlVectorisedGraph | |
| path | String! | Graph path relative to the root namespace. | |
| namespaces | CollectionOfNamespace! | Returns all namespaces using recursive search Returns:: List of namespaces on root | |
| namespace | Namespace! | Returns a specific namespace at a given path Returns:: Namespace or error if no namespace found | |
| path | String! | ||
| root | Namespace! | Returns root namespace Returns:: Root namespace | |
| plugins | QueryPlugin! | Returns a plugin. | |
| receiveGraph | String! | Encodes graph and returns as string. Returns:: Base64 url safe encoded string | |
| path | String! | Graph path relative to the root namespace. | |
| version | String! | Version string of the running `raphtory-graphql` server build. | |
Mutation (MutRoot)#
| Field | Argument | Type | Description |
|---|---|---|---|
| plugins | MutationPlugin! | Returns a collection of mutation plugins. | |
| deleteGraph | Boolean! | Delete graph from a path on the server. | |
| path | String! | Graph path relative to the root namespace. | |
| newGraph | Boolean! | Creates a new graph. | |
| path | String! | Destination path relative to the root namespace. | |
| graphType | GraphType! | ||
| moveGraph | Boolean! | Move graph from a path on the server to a new_path on the server. | |
| path | String! | Current graph path relative to the root namespace. | |
| newPath | String! | Destination path relative to the root namespace. | |
| overwrite | Boolean | If true, allow replacing an existing graph at `newPath`; defaults to false. | |
| copyGraph | Boolean! | Copy graph from a path on the server to a new_path on the server. | |
| path | String! | Source graph path relative to the root namespace. | |
| newPath | String! | Destination path relative to the root namespace. | |
| overwrite | Boolean | If true, allow replacing an existing graph at `newPath`; defaults to false. | |
| uploadGraph | String! | Upload a graph file from a path on the client using GQL multipart uploading. Returns:: name of the new graph | |
| path | String! | Destination path relative to the root namespace. | |
| graph | Upload! | Multipart upload of the serialised graph file. | |
| overwrite | Boolean! | If true, replace any graph already at `path`. | |
| sendGraph | String! | Send graph bincode as base64 encoded string. Returns:: path of the new graph | |
| path | String! | Destination path relative to the root namespace. | |
| graph | String! | Base64-encoded bincode of the serialised graph. | |
| overwrite | Boolean! | If true, replace any graph already at `path`. | |
| createNamespace | String! | Create an empty namespace at `path`. Creates any missing parent namespaces along the way. Requires WRITE permission on the parent namespace. Rejects paths that already host a graph or an existing namespace, and paths that fail validation. Returns:: the path of the created namespace | |
| path | String! | Destination path relative to the root namespace. | |
| deleteNamespace | Boolean! | Delete a namespace and all of its descendants (graphs and sub-namespaces). Requires WRITE permission on the parent namespace, on the namespace itself, and on every descendant graph and sub-namespace. Cached graphs at any deleted path are invalidated. Rejects empty and non-existent paths. Returns:: true on success | |
| path | String! | Path to delete relative to the root namespace. | |
| createSubgraph | String! | Returns a subgraph given a set of nodes from an existing graph in the server. Returns:: name of the new graph | |
| parentPath | String! | Source graph path relative to the root namespace. | |
| nodes | [NodeId!]! | Node ids to include in the subgraph. | |
| newPath | String! | Destination path relative to the root namespace. | |
| overwrite | Boolean! | If true, replace any graph already at `newPath`. | |
| createIndex | Boolean! | (Experimental) Creates search index. | |
| path | String! | Graph path relative to the root namespace. | |
| indexSpec | IndexSpecInput | Optional spec selecting which node/edge property fields to index. Omit to index a default set. | |
| inRam | Boolean! | ||
Objects#
CollectionOfMetaGraph#
Collection of items
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [MetaGraph!]! | Returns a list of collection objects. | |
| page | [MetaGraph!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| count | Int! | Returns a count of collection objects. | |
CollectionOfNamespace#
Collection of items
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [Namespace!]! | Returns a list of collection objects. | |
| page | [Namespace!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| count | Int! | Returns a count of collection objects. | |
CollectionOfNamespacedItem#
Collection of items
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [NamespacedItem!]! | Returns a list of collection objects. | |
| page | [NamespacedItem!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| count | Int! | Returns a count of collection objects. | |
Document#
Document in a vector graph
| Field | Argument | Type | Description |
|---|---|---|---|
| entity | DocumentEntity! | Entity associated with document. | |
| content | String! | Content of the document. | |
| embedding | [Float!]! | Similarity score with a specified query | |
| score | Float! | ||
Edge#
Raphtory graph edge.
| Field | Argument | Type | Description |
|---|---|---|---|
| defaultLayer | Edge! | Return a view of Edge containing only the default edge layer. | |
| layers | Edge! | Returns a view of Edge containing all layers in the list of names. Errors if any of the layers do not exist. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | Edge! | Returns a view of Edge containing all layers except the excluded list of names. Errors if any of the layers do not exist. | |
| names | [String!]! | Layer names to exclude. | |
| layer | Edge! | Returns a view of Edge containing the specified layer. Errors if any of the layers do not exist. | |
| name | String! | Layer name to include. | |
| excludeLayer | Edge! | Returns a view of Edge containing all layers except the excluded layer specified. Errors if any of the layers do not exist. | |
| name | String! | Layer name to exclude. | |
| rolling | EdgeWindowSet! | Creates a WindowSet with the given window duration and optional step using a rolling window. A rolling window is a window that moves forward by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | EdgeWindowSet! | Creates a WindowSet with the given step size using an expanding window. An expanding window is a window that grows by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | Edge! | Creates a view of the Edge including all events between the specified start (inclusive) and end (exclusive). For persistent graphs, any edge which exists at any point during the window will be included. You may want to restrict this to only edges that are present at the end of the window using the is_valid function. | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | Edge! | Creates a view of the Edge including all events at a specified time. | |
| time | TimeInput! | Instant to pin the view to. | |
| latest | Edge! | View of this edge pinned to the graph's latest time — equivalent to `at(graph.latestTime)`. The edge's properties and metadata show their most recent values, and (for persistent graphs) validity is evaluated at that instant. | |
| snapshotAt | Edge! | Creates a view of the Edge including all events that are valid at time. This is equivalent to before(time + 1) for Graph and at(time) for PersistentGraph. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| snapshotLatest | Edge! | Creates a view of the Edge including all events that are valid at the latest time. This is equivalent to a no-op for Graph and latest() for PersistentGraph. | |
| before | Edge! | Creates a view of the Edge including all events before a specified end (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | Edge! | Creates a view of the Edge including all events after a specified start (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | Edge! | Shrinks both the start and end of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| shrinkStart | Edge! | Set the start of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| shrinkEnd | Edge! | Set the end of the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| applyViews | Edge! | Takes a specified selection of views and applies them in given order. | |
| views | [EdgeViewCollection!]! | Ordered list of view operations; each entry is a one-of variant (`window`, `layer`, `filter`, ...) applied to the running result. | |
| earliestTime | EventTime! | Returns the earliest time of an edge. | |
| firstUpdate | EventTime! | The timestamp of the first event in this edge's history (first update, first deletion, or anything in between). Differs from `earliestTime` in that `earliestTime` reports when the edge is first *valid*; `firstUpdate` reports when its history actually begins. | |
| latestTime | EventTime! | Returns the latest time of an edge. | |
| lastUpdate | EventTime! | The timestamp of the last event in this edge's history (last update, last deletion, or anything in between). Differs from `latestTime` in that `latestTime` reports when the edge is last *valid*; `lastUpdate` reports when its history actually ends. | |
| time | EventTime! | Returns the time of an exploded edge. Errors on an unexploded edge. | |
| start | EventTime! | Returns the start time for rolling and expanding windows for this edge. Returns none if no window is applied. | |
| end | EventTime! | Returns the end time of the window. Returns none if no window is applied. | |
| src | Node! | Returns the source node of the edge. Returns: Node: | |
| dst | Node! | Returns the destination node of the edge. Returns: Node: | |
| nbr | Node! | Returns the node at the other end of the edge (same as dst() for out-edges and src() for in-edges). Returns: Node: | |
| id | [NodeId!]! | Returns the `[src, dst]` id pair of the edge. Each id is a `String` for string-indexed graphs or a non-negative `Int` for integer-indexed graphs. | |
| properties | Properties! | Returns a view of the properties of the edge. | |
| metadata | Metadata! | Returns the metadata of an edge. | |
| layerNames | [String!]! | Returns the names of the layers that have this edge as a member. | |
| layerName | String! | Returns the layer name of an exploded edge, errors on an edge. | |
| explode | Edges! | Returns an edge object for each update within the original edge. | |
| explodeLayers | Edges! | Returns an edge object for each layer within the original edge. Each new edge object contains only updates from the respective layers. | |
| history | History! | Returns a History object with time entries for when an edge is added or change to an edge is made. Returns: History: | |
| deletions | History! | Returns a history object with time entries for an edge's deletion times. Returns: History: | |
| isValid | Boolean! | Checks if the edge is currently valid and exists at the current time. Returns: boolean | |
| isActive | Boolean! | Checks if the edge is currently active and has at least one update within the current period. Returns: boolean | |
| isDeleted | Boolean! | Checks if the edge is deleted at the current time. Returns: boolean | |
| isSelfLoop | Boolean! | Returns true if the edge source and destination nodes are the same. Returns: boolean | |
| filter | Edge! | Apply an edge filter in place, returning an edge view whose properties / metadata / history are restricted to the matching subset. | |
| expr | EdgeFilter! | Composite edge filter (by property, layer, src/dst, etc.). | |
EdgeSchema#
Describes edges between a specific pair of node types — the property and
metadata keys seen on such edges, along with their observed value types.
One EdgeSchema per (srcType, dstType) pair per layer.
| Field | Argument | Type | Description |
|---|---|---|---|
| srcType | String! | Returns the type of source for these edges | |
| dstType | String! | Returns the type of destination for these edges | |
| properties | [PropertySchema!]! | Returns the list of property schemas for edges connecting these types of nodes | |
| metadata | [PropertySchema!]! | Returns the list of metadata schemas for edges connecting these types of nodes | |
EdgeWindowSet#
A lazy sequence of per-window views of a single edge, produced by
edge.rolling / edge.expanding. Each entry is the edge as it exists in
that window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [Edge!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Edge!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
Edges#
A lazy collection of edges from a graph view. Supports the usual view
transforms (window, layer, filter, ...), plus edge-specific ones like
explode and explodeLayers, pagination, and sorting.
| Field | Argument | Type | Description |
|---|---|---|---|
| defaultLayer | Edges! | Returns a collection containing only edges in the default edge layer. | |
| layers | Edges! | Returns a collection containing only edges belonging to the listed layers. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | Edges! | Returns a collection containing edges belonging to all layers except the excluded list of layers. | |
| names | [String!]! | Layer names to exclude. | |
| layer | Edges! | Returns a collection containing edges belonging to the specified layer. | |
| name | String! | Layer name to include. | |
| excludeLayer | Edges! | Returns a collection containing edges belonging to all layers except the excluded layer specified. | |
| name | String! | Layer name to exclude. | |
| rolling | EdgesWindowSet! | Creates a WindowSet with the given window duration and optional step using a rolling window. A rolling window is a window that moves forward by step size at each iteration. Returns a collection of collections. This means that item in the window set is a collection of edges. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | EdgesWindowSet! | Creates a WindowSet with the given step size using an expanding window. An expanding window is a window that grows by step size at each iteration. Returns a collection of collections. This means that item in the window set is a collection of edges. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | Edges! | Creates a view of the Edge including all events between the specified start (inclusive) and end (exclusive). | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | Edges! | Creates a view of the Edge including all events at a specified time. | |
| time | TimeInput! | Instant to pin the view to. | |
| latest | Edges! | View showing only the latest state of each edge (equivalent to `at(latestTime)`). | |
| snapshotAt | Edges! | Creates a view of the Edge including all events that are valid at time. This is equivalent to before(time + 1) for Graph and at(time) for PersistentGraph. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| snapshotLatest | Edges! | Creates a view of the Edge including all events that are valid at the latest time. This is equivalent to a no-op for Graph and latest() for PersistentGraph. | |
| before | Edges! | Creates a view of the Edge including all events before a specified end (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | Edges! | Creates a view of the Edge including all events after a specified start (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | Edges! | Shrinks both the start and end of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| shrinkStart | Edges! | Set the start of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| shrinkEnd | Edges! | Set the end of the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| applyViews | Edges! | Takes a specified selection of views and applies them in order given. | |
| views | [EdgesViewCollection!]! | Ordered list of view operations; each entry is a one-of variant (`window`, `layer`, `filter`, ...) applied to the running result. | |
| explode | Edges! | Expand each edge into one edge per update: if `A->B` has three updates, it becomes three `A->B` entries each at a distinct timestamp. Use this to iterate per-event rather than per-edge. | |
| explodeLayers | Edges! | Returns an edge object for each layer within the original edge. Each new edge object contains only updates from the respective layers. | |
| sorted | Edges! | Sort the edges. Multiple criteria are applied lexicographically (ties on the first key break to the second, etc.). | |
| sortBys | [EdgeSortBy!]! | Ordered list of sort keys. Each entry chooses exactly one of `src` / `dst` / `time` / `property`, with an optional `reverse: true` to flip order. | |
| start | EventTime! | Returns the start time of the window or none if there is no window. | |
| end | EventTime! | Returns the end time of the window or none if there is no window. | |
| count | Int! | Returns the number of edges. Returns: int: | |
| page | [Edge!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Edge!]! | Returns a list of all objects in the current selection of the collection. You should filter the collection first then call list. | |
| filter | Edges! |
Narrow the collection to edges matching `expr`. The filter sticks to the
returned view — every subsequent traversal through these edges (their
properties, their endpoints' neighbours, etc.) continues to see the
filtered scope.
Useful when you want one scoping rule to apply across the whole query.
E.g. restricting everything to a specific week:
|
|
| expr | EdgeFilter! | Composite edge filter (by property, layer, src/dst, etc.). | |
| select | Edges! |
Narrow the collection to edges matching `expr`, but only at this step —
subsequent traversals out of these edges see the unfiltered graph again.
Useful when you want different scopes at different hops. E.g. Monday's
edges, then the neighbours of their endpoints on Tuesday, then *those*
neighbours on Wednesday:
|
|
| expr | EdgeFilter! | Composite edge filter (by property, layer, src/dst, etc.). | |
EdgesWindowSet#
A lazy sequence of per-window edge collections, produced by
edges.rolling / edges.expanding. Each entry is an Edges collection
as it exists in that window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [Edges!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Edges!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
EventTime#
Raphtory’s EventTime. Represents a unique timepoint in the graph’s history as (timestamp, event_id).
- timestamp: Number of milliseconds since the Unix epoch.
- event_id: ID used for ordering between equal timestamps.
Instances of EventTime may or may not contain time information. This is relevant for functions that may not return data (such as earliest_time and latest_time) because the data is unavailable. When empty, time operations (such as timestamp, datetime, and event_id) will return None.
| Field | Argument | Type | Description |
|---|---|---|---|
| timestamp | Int | Get the timestamp in milliseconds since the Unix epoch. | |
| eventId | Int | Get the event id for the EventTime. Used for ordering within the same timestamp. | |
| datetime | String | Access a datetime representation of the EventTime as a String. Useful for converting millisecond timestamps into easily readable datetime strings. Optionally, a format string can be passed to format the output. Defaults to RFC 3339 if not provided (e.g., "2023-12-25T10:30:45.123Z"). Refer to chrono::format::strftime for formatting specifiers and escape sequences. Raises an error if a time conversion fails. | |
| formatString | String | Optional format string for the rendered datetime. Uses `%`-style specifiers — for example `%Y-%m-%d` for `2024-01-15`, `%Y-%m-%d %H:%M:%S` for `2024-01-15 10:30:00`, or `%H:%M` for `10:30`. Defaults to RFC 3339 (e.g. `2024-01-15T10:30:45.123+00:00`) when omitted. | |
Graph#
A view of a Raphtory graph. Every field here returns either data from the
view or a derived view (window, layer, at, filter, ...) that you can
keep chaining. Views are cheap — they don't copy the underlying data.
| Field | Argument | Type | Description |
|---|---|---|---|
| uniqueLayers | [String!]! | Returns the names of all layers in the graphview. Distinct layer names observed in the current view — any layer that has at least one edge event visible here. Excludes layers that exist elsewhere in the graph but whose edges have been filtered out. | |
| defaultLayer | Graph! | View restricted to the default layer — where nodes and edges end up when `addNode` / `addEdge` is called without a `layer` argument. Useful for separating "unlayered" base-graph events from named-layer ones. | |
| layers | Graph! | View restricted to the named layers. Updates on any other layer are hidden; if that leaves a node or edge with no updates left, it disappears from the view. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | Graph! | View with the named layers hidden. Updates on those layers are removed; if that leaves a node or edge with no updates left, it disappears from the view. | |
| names | [String!]! | Layer names to exclude. | |
| layer | Graph! | View restricted to a single layer. Convenience form of `layers(names: [name])` — updates on any other layer are hidden, and entities with nothing left disappear. | |
| name | String! | Layer name to include. | |
| excludeLayer | Graph! | View with one layer hidden. Convenience form of `excludeLayers(names: [name])` — updates on that layer are removed, and entities with nothing left disappear. | |
| name | String! | Layer name to exclude. | |
| subgraph | Graph! | View restricted to a chosen set of nodes and the edges between them. Edges connecting a selected node to a non-selected node are hidden. | |
| nodes | [NodeId!]! | Node ids to keep. | |
| valid | Graph! | View containing only valid edges — for persistent graphs this drops edges whose most recent event is a deletion at the latest time of the current view (a later re-addition would keep them). On event graphs this is a no-op. | |
| subgraphNodeTypes | Graph! | View restricted to nodes with the given node types. | |
| nodeTypes | [String!]! | Node types to include. | |
| excludeNodes | Graph! | View with a set of nodes removed (along with any edges touching them). | |
| nodes | [NodeId!]! | Node ids to exclude. | |
| rolling | GraphWindowSet! | Creates a rolling window with the specified window size and an optional step. A rolling window is a window that moves forward by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | GraphWindowSet! | Creates an expanding window with the specified step size. An expanding window is a window that grows by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | Graph! | Return a graph containing only the activity between start and end, by default raphtory stores times in milliseconds from the unix epoch. | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | Graph! | Creates a view including all events at a specified time. | |
| time | TimeInput! | Instant to pin the view to. | |
| latest | Graph! | Creates a view including all events at the latest time. | |
| snapshotAt | Graph! | Create a view including all events that are valid at the specified time. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| snapshotLatest | Graph! | Create a view including all events that are valid at the latest time. | |
| before | Graph! | Create a view including all events before a specified end (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | Graph! | Create a view including all events after a specified start (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | Graph! | Shrink both the start and end of the window. The new bounds are taken as the intersection with the current window; this never widens the view. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if before the current start. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if after the current end. | |
| shrinkStart | Graph! | Set the start of the window to the larger of the specified value or current start. | |
| start | TimeInput! | Proposed new start (TimeInput); has no effect if it would widen the window. | |
| shrinkEnd | Graph! | Set the end of the window to the smaller of the specified value or current end. | |
| end | TimeInput! | Proposed new end (TimeInput); has no effect if it would widen the window. | |
| created | Int! | Filesystem creation timestamp (epoch millis) of the graph's on-disk folder — i.e. when this graph was first saved to the server, not when its earliest event occurred. Use `earliestTime` for the latter. | |
| lastOpened | Int! | Returns the graph's last opened timestamp according to system time. | |
| lastUpdated | Int! | Returns the graph's last updated timestamp. | |
| earliestTime | EventTime! | Returns the time entry of the earliest activity in the graph. | |
| latestTime | EventTime! | Returns the time entry of the latest activity in the graph. | |
| start | EventTime! | Returns the start time of the window. Errors if there is no window. | |
| end | EventTime! | Returns the end time of the window. Errors if there is no window. | |
| earliestEdgeTime | EventTime! | The earliest time at which any edge in this graph is valid. * `includeNegative` — if false, edge events with a timestamp `< 0` are skipped when computing the minimum. Defaults to true. | |
| includeNegative | Boolean | If false, edge events with a timestamp `< 0` are skipped when computing the minimum. Defaults to true. | |
| latestEdgeTime | EventTime! | The latest time at which any edge in this graph is valid. | |
| includeNegative | Boolean | If false, edge events with a timestamp `< 0` are skipped when computing the maximum. Defaults to true. | |
| countEdges | Int! | Returns the number of edges in the graph. Returns: int: | |
| countTemporalEdges | Int! | Returns the number of temporal edges in the graph. | |
| countNodes | Int! | Returns the number of nodes in the graph. Optionally takes a list of node ids to return a subset. | |
| hasNode | Boolean! | Returns true if a node with the given id exists in this view. | |
| name | NodeId! | Node id to look up. | |
| hasEdge | Boolean! | Returns true if an edge exists between `src` and `dst` in this view, optionally restricted to a single layer. | |
| src | NodeId! | Source node id. | |
| dst | NodeId! | Destination node id. | |
| layer | String | Optional; if provided, only checks whether the edge exists on this layer. If null or omitted, any layer counts. | |
| node | Node | Look up a single node by id. Returns null if the node doesn't exist in this view. | |
| name | NodeId! | Node id. | |
| nodes | Nodes! | All nodes in this view, optionally narrowed by a filter. | |
| select | NodeFilter | Optional node filter (by name, property, type, etc.). If omitted, every node in the view is returned. | |
| edge | Edge | Look up a single edge by its endpoint ids. Returns null if no edge exists between `src` and `dst` in this view. | |
| src | NodeId! | Source node id. | |
| dst | NodeId! | Destination node id. | |
| edges | Edges! | All edges in this view, optionally narrowed by a filter. | |
| select | EdgeFilter | Optional edge filter (by property, layer, src/dst, etc.). If omitted, every edge in the view is returned. | |
| properties | Properties! | Returns the properties of the graph. | |
| metadata | Metadata! | Returns the metadata of the graph. | |
| name | String! | Returns the graph name. | |
| path | String! | Returns path of graph. | |
| namespace | String! | Returns namespace of graph. | |
| schema | GraphSchema! | Returns the graph schema. | |
| algorithms | GraphAlgorithmPlugin! | Access registered graph algorithms (PageRank, shortest path, etc.) for this graph view. The set of available algorithms is defined by the plugin registry loaded at server startup. | |
| sharedNeighbours | [Node!]! | Nodes that are neighbours of every node in `selectedNodes`. Returns the intersection of each selected node's neighbour set (undirected). | |
| selectedNodes | [NodeId!]! | Node ids whose common neighbours you want. Returns an empty list if `selectedNodes` is empty or any id does not exist. | |
| exportTo | Boolean! | Copy all nodes and edges of the current graph view into another already- existing graph stored on the server. The destination graph is preserved — this only adds; it does not replace. | |
| path | String! | Destination graph path relative to the root namespace. | |
| filter | Graph! | Returns a filtered view of the graph. Applies a mixed node/edge filter expression and narrows nodes, edges, and their properties to what matches. | |
| expr | GraphFilter | Optional composite filter combining node, edge, property, and metadata conditions. If omitted, applies the identity filter (equivalent to no filtering). | |
| filterNodes | Graph! | Returns a graph view restricted to nodes that match the given filter; edges are kept only if both endpoints survive. | |
| expr | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
| filterEdges | Graph! | Returns a graph view restricted to edges that match the given filter. Nodes remain in the view even if all their edges are filtered out. | |
| expr | EdgeFilter! | Composite edge filter (by property, layer, src/dst, etc.). | |
| getIndexSpec | IndexSpec! | (Experimental) Get index specification. | |
| searchNodes | [Node!]! | (Experimental) Searches for nodes which match the given filter expression. Uses Tantivy's exact search; requires the graph to have been indexed. | |
| filter | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
| limit | Int! | Maximum number of nodes to return. | |
| offset | Int! | Number of matches to skip before returning results. | |
| searchEdges | [Edge!]! | (Experimental) Searches the index for edges which match the given filter expression. Uses Tantivy's exact search; requires the graph to have been indexed. | |
| filter | EdgeFilter! | Composite edge filter (by property, layer, src/dst, etc.). | |
| limit | Int! | Maximum number of edges to return. | |
| offset | Int! | Number of matches to skip before returning results. | |
| applyViews | Graph! | Apply a list of view operations in the given order and return the resulting graph view. Lets callers compose multiple view transforms (window, layer, filter, snapshot, ...) in a single call. | |
| views | [GraphViewCollection!]! | Ordered list of view operations; each entry is a one-of variant applied to the running result. | |
GraphAlgorithmPlugin#
| Field | Argument | Type | Description |
|---|---|---|---|
| pagerank | [PagerankOutput!]! | ||
| iterCount | Int! | ||
| threads | Int | ||
| tol | Float | ||
| weight | String | ||
| shortest_path | [ShortestPathOutput!]! | ||
| source | String! | ||
| targets | [String!]! | ||
| direction | String | ||
GraphSchema#
| Field | Argument | Type | Description |
|---|---|---|---|
| nodes | [NodeSchema!]! | ||
| layers | [LayerSchema!]! | ||
GraphWindowSet#
A lazy sequence of graph snapshots produced by rolling or expanding.
Each entry is a Graph at a different window over time. Iterate via
list / page (or count with count). Subsequent view ops apply
per-window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [Graph!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Graph!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
History#
History of updates for an object in Raphtory. Provides access to temporal properties.
| Field | Argument | Type | Description |
|---|---|---|---|
| earliestTime | EventTime! | Get the earliest time entry associated with this history or None if the history is empty. | |
| latestTime | EventTime! | Get the latest time entry associated with this history or None if the history is empty. | |
| list | [EventTime!]! | List all time entries present in this history. | |
| listRev | [EventTime!]! | List all time entries present in this history in reverse order. | |
| page | [EventTime!]! | Fetch one page of EventTime entries with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| pageRev | [EventTime!]! | Fetch one page of EventTime entries with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page_rev(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| isEmpty | Boolean! | Returns True if the history is empty. | |
| count | Int! | Get the number of entries contained in the history. | |
| timestamps | HistoryTimestamp! | Returns a HistoryTimestamp object which accesses timestamps (milliseconds since the Unix epoch) instead of EventTime entries. | |
| datetimes | HistoryDateTime! | Returns a HistoryDateTime object which accesses datetimes instead of EventTime entries. Useful for converting millisecond timestamps into easily readable datetime strings. Optionally, a format string can be passed to format the output. Defaults to RFC 3339 if not provided (e.g., "2023-12-25T10:30:45.123Z"). Refer to chrono::format::strftime for formatting specifiers and escape sequences. | |
| formatString | String | Optional format string for the rendered datetime. Uses `%`-style specifiers — for example `%Y-%m-%d` for `2024-01-15`, `%Y-%m-%d %H:%M:%S` for `2024-01-15 10:30:00`, or `%H:%M` for `10:30`. Defaults to RFC 3339 (e.g. `2024-01-15T10:30:45.123+00:00`) when omitted. | |
| eventId | HistoryEventId! | Returns a HistoryEventId object which accesses event ids of EventTime entries. They are used for ordering within the same timestamp. | |
| intervals | Intervals! | Inter-event gap analysis for this history. The returned `Intervals` object exposes each gap (in milliseconds) between consecutive events, plus summary statistics — `min` / `max` / `mean` / `median` — and paginated access via `list` / `listRev` / `page` / `pageRev`. | |
HistoryDateTime#
History object that provides access to datetimes instead of EventTime entries.
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [String!]! | List all datetimes formatted as strings. If filter_broken is set to True, time conversion errors will be ignored. If set to False, a TimeError will be raised on time conversion error. Defaults to False. | |
| filterBroken | Boolean | If true, ignore unconvertible timestamps; if false, raise an error on the first conversion failure. Defaults to false. | |
| listRev | [String!]! | List all datetimes formatted as strings in reverse chronological order. If filter_broken is set to True, time conversion errors will be ignored. If set to False, a TimeError will be raised on time conversion error. Defaults to False. | |
| filterBroken | Boolean | If true, ignore unconvertible timestamps; if false, raise an error on the first conversion failure. Defaults to false. | |
| page | [String!]! | Fetch one page of datetimes formatted as string with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). If filter_broken is set to True, time conversion errors will be ignored. If set to False, a TimeError will be raised on time conversion error. Defaults to False. For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| filterBroken | Boolean | If true, skip timestamps whose conversion fails; if false, raise an error on the first conversion failure. Defaults to false. | |
| pageRev | [String!]! | Fetch one page of datetimes formatted as string in reverse chronological order with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). If filter_broken is set to True, time conversion errors will be ignored. If set to False, a TimeError will be raised on time conversion error. Defaults to False. For example, if page_rev(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| filterBroken | Boolean | If true, skip timestamps whose conversion fails; if false, raise an error on the first conversion failure. Defaults to false. | |
HistoryEventId#
History object that provides access to event ids instead of EventTime entries.
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [Int!]! | List event ids. | |
| listRev | [Int!]! | List event ids in reverse order. | |
| page | [Int!]! | Fetch one page of event ids with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| pageRev | [Int!]! | Fetch one page of event ids in reverse chronological order with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page_rev(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
HistoryTimestamp#
History object that provides access to timestamps (milliseconds since the Unix epoch) instead of EventTime entries.
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [Int!]! | List all timestamps. | |
| listRev | [Int!]! | List all timestamps in reverse order. | |
| page | [Int!]! | Fetch one page of timestamps with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| pageRev | [Int!]! | Fetch one page of timestamps in reverse order with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page_rev(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
IndexSpec#
| Field | Argument | Type | Description |
|---|---|---|---|
| nodeMetadata | [String!]! | Returns node metadata. | |
| nodeProperties | [String!]! | Returns node properties. | |
| edgeMetadata | [String!]! | Returns edge metadata. | |
| edgeProperties | [String!]! | Returns edge properties. | |
Intervals#
Provides access to the intervals between temporal entries of an object.
| Field | Argument | Type | Description |
|---|---|---|---|
| list | [Int!]! | List time intervals between consecutive timestamps in milliseconds. | |
| listRev | [Int!]! | List millisecond time intervals between consecutive timestamps in reverse order. | |
| page | [Int!]! | Fetch one page of intervals between consecutive timestamps with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| pageRev | [Int!]! | Fetch one page of intervals between consecutive timestamps in reverse order with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| mean | Float | Compute the mean interval between consecutive timestamps. Returns None if fewer than 1 timestamp. | |
| median | Int | Compute the median interval between consecutive timestamps. Returns None if fewer than 1 timestamp. | |
| max | Int | Compute the maximum interval between consecutive timestamps. Returns None if fewer than 1 timestamp. | |
| min | Int | Compute the minimum interval between consecutive timestamps. Returns None if fewer than 1 timestamp. | |
LayerSchema#
Describes a single edge layer — its name and the per (srcType, dstType)
edge schemas observed within it.
| Field | Argument | Type | Description |
|---|---|---|---|
| name | String! | Returns the name of the layer with this schema | |
| edges | [EdgeSchema!]! | Returns the list of edge schemas for this edge layer | |
MetaGraph#
Lightweight summary of a stored graph — its name, path, counts, and filesystem timestamps — served without deserializing the full graph. Useful for listing what's available on the server before committing to a full load.
| Field | Argument | Type | Description |
|---|---|---|---|
| name | String | Returns the graph name. | |
| path | String! | Returns path of graph. | |
| created | Int! | Returns the timestamp for the creation of the graph. | |
| lastOpened | Int! | Returns the graph's last opened timestamp according to system time. | |
| lastUpdated | Int! | Returns the graph's last updated timestamp. | |
| nodeCount | Int! | Returns the number of nodes in the graph. | |
| edgeCount | Int! | Returns the number of edges in the graph. Returns: int: | |
| metadata | [Property!]! | Returns the metadata of the graph. Reads metadata without forcing a full graph load: from the in-memory cache if the graph is already loaded, otherwise directly from disk (parquet metadata for parquet-backed graphs, the `graph_props` segment for disk-backed graphs). This keeps `MetaGraph.metadata` cheap for namespace listings of many graphs. | |
Metadata#
Constant key/value metadata attached to an entity (node, edge, or graph).
Metadata has no timeline — each key maps to exactly one value for the
lifetime of the entity. Separate from Properties, which carries
time-varying data.
| Field | Argument | Type | Description |
|---|---|---|---|
| get | Property | Look up a single metadata value by key. Returns null if no metadata with that key exists. | |
| key | String! | The metadata name. | |
| contains | Boolean! | Returns true if a metadata entry with the given key exists. | |
| key | String! | The metadata name to look up. | |
| keys | [String!]! | All metadata keys present on this entity. | |
| values | [Property!]! | All metadata values as `{key, value}` entries. | |
| keys | [String!] | Optional whitelist. If provided, only metadata with these keys is returned; if omitted, every metadata entry is returned. | |
MutableEdge#
Write-side handle for a single edge — returned from addEdge or
MutableGraph.edge. Supports adding updates, deletions, and attaching
or updating metadata.
| Field | Argument | Type | Description |
|---|---|---|---|
| success | Boolean! | Use to check if adding the edge was successful. | |
| edge | Edge! | Get the non-mutable edge for querying. | |
| src | MutableNode! | Get the mutable source node of the edge. | |
| dst | MutableNode! | Get the mutable destination node of the edge. | |
| delete | Boolean! | Mark this edge as deleted at the given time. Persistent graphs treat this as a tombstone (the edge becomes invalid from `time` onwards); event graphs simply log the deletion event. | |
| time | TimeInput! | Time of the deletion. | |
| layer | String | Optional layer name. If omitted, uses the layer the edge was originally added on (when called after `addEdge`). | |
| addMetadata | Boolean! | Add metadata to this edge. Errors if any of the keys already exists — use `updateMetadata` to overwrite. If this is called after `addEdge`, the layer is inherited and does not need to be specified again. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to set as metadata. | |
| layer | String | Optional layer name; defaults to the inherited layer. | |
| updateMetadata | Boolean! | Update metadata of this edge, overwriting any existing values for the given keys. If this is called after `addEdge`, the layer is inherited and does not need to be specified again. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to upsert. | |
| layer | String | Optional layer name; defaults to the inherited layer. | |
| addUpdates | Boolean! | Append a property update to this edge at a specific time. If called after `addEdge`, the layer is inherited and does not need to be specified again. | |
| time | TimeInput! | Time of the update. | |
| properties | [PropertyInput!] | Optional `{key, value}` pairs attached to the event. | |
| layer | String | Optional layer name; defaults to the inherited layer. | |
MutableGraph#
Write-enabled handle for a graph. Obtained by calling updateGraph(path)
on the root query with a path you have write permission for. Supports
adding nodes and edges (individually or in batches), attaching
properties/metadata, and looking up mutable node/edge handles. Use the
read-only graph(path) resolver for queries.
| Field | Argument | Type | Description |
|---|---|---|---|
| graph | Graph! | Read-only view of this graph — identical to what you'd get from `graph(path:)` on the query root. Use this when you want to compose queries on the graph you've just mutated. `graphType` lets you re-interpret the graph at query time (see `graph(path:)` for semantics); defaults to the stored graph's native type. | |
| graphType | GraphType | Optional override for graph semantics — `EVENT` treats every update as a point-in-time event, `PERSISTENT` carries values forward until overwritten or deleted. Defaults to the stored graph's native type. | |
| node | MutableNode | Look up an existing node for mutation. Returns null if the node doesn't exist; use `addNode` or `createNode` to create one. | |
| name | NodeId! | Node id. | |
| addNode | MutableNode! | Add a new node or append an update to an existing one. Upsert semantics: no error if the node already exists — properties and type are merged. | |
| time | TimeInput! | Time of the event. | |
| name | NodeId! | Node id. | |
| properties | [PropertyInput!] | Optional property updates attached to this event. | |
| nodeType | String | Optional node type to assign. If provided, sets the node's type at this event. | |
| layer | String | Optional layer name. If omitted, the default layer is used. | |
| createNode | MutableNode! | Create a new node or fail if it already exists. Strict alternative to `addNode` — use this when you want to detect collisions. | |
| time | TimeInput! | Time of the create event. | |
| name | NodeId! | Node id. | |
| properties | [PropertyInput!] | Optional property updates attached to this event. | |
| nodeType | String | Optional node type to assign. If provided, sets the node's type at this event. | |
| layer | String | Optional layer name. If omitted, the default layer is used. | |
| addNodes | Boolean! | Batch-add multiple nodes in one call. For each `NodeAddition`, applies every update it carries (time/properties pairs), then optionally sets its node type and adds any metadata. On partial failure, returns a `BatchFailures` error describing which entries failed and why; otherwise returns true. | |
| nodes | [NodeAddition!]! | List of `NodeAddition` inputs, each specifying a node's name, optional type, layer, per-timestamp updates, and metadata. | |
| edge | MutableEdge | Look up an existing edge for mutation. Returns null if no such edge exists. | |
| src | NodeId! | Source node id. | |
| dst | NodeId! | Destination node id. | |
| addEdge | MutableEdge! | Add a new edge or append an update to an existing one. Upsert semantics: safe to call on an edge that already exists — creates missing endpoints if needed. | |
| time | TimeInput! | Time of the event. | |
| src | NodeId! | Source node id. | |
| dst | NodeId! | Destination node id. | |
| properties | [PropertyInput!] | Optional property updates attached to this event. | |
| layer | String | Optional layer name. If omitted, the default layer is used. | |
| addEdges | Boolean! | Batch-add multiple edges in one call. For each `EdgeAddition`, applies every update it carries, then adds any metadata. On partial failure, returns a `BatchFailures` error describing which entries failed; otherwise returns true. | |
| edges | [EdgeAddition!]! | List of `EdgeAddition` inputs, each specifying an edge's `src`, `dst`, optional layer, per-timestamp updates, and metadata. | |
| deleteEdge | MutableEdge! | Mark an edge as deleted at the given time. Persistent graphs treat this as a tombstone (the edge becomes invalid from `time` onwards); event graphs simply log the deletion event. Creates the edge first if it did not exist. | |
| time | TimeInput! | Time of the deletion. | |
| src | NodeId! | Source node id. | |
| dst | NodeId! | Destination node id. | |
| layer | String | Optional layer name. If omitted, the default layer is used. | |
| addProperties | Boolean! | Add temporal properties to the graph itself (not a node or edge). Each call records a property update at `t`. | |
| t | TimeInput! | Time of the update. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to set. | |
| addMetadata | Boolean! | Add metadata to the graph itself. Errors if any of the keys already exists — use `updateMetadata` to overwrite. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to set as metadata. | |
| updateMetadata | Boolean! | Update metadata of the graph itself, overwriting any existing values for the given keys. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to upsert. | |
| flush | Boolean! | Persist any in-memory state for this graph to disk so other processes attaching a read-only handle observe up-to-date data. | |
MutableNode#
Write-side handle for a single node — returned from addNode, createNode,
or MutableGraph.node. Supports adding updates, setting node type, and
attaching or updating metadata.
| Field | Argument | Type | Description |
|---|---|---|---|
| success | Boolean! | Use to check if adding the node was successful. | |
| node | Node! | Get the non-mutable Node. | |
| addMetadata | Boolean! | Add metadata to this node. Errors if any of the keys already exists — use `updateMetadata` to overwrite. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to set as metadata. | |
| setNodeType | Boolean! | Set this node's type. Errors if the node already has a non-default type and you're trying to change it. | |
| newType | String! | Node-type name to assign. | |
| updateMetadata | Boolean! | Update metadata of this node, overwriting any existing values for the given keys. | |
| properties | [PropertyInput!]! | List of `{key, value}` pairs to upsert. | |
| addUpdates | Boolean! | Append a property update to this node at a specific time. | |
| time | TimeInput! | Time of the update. | |
| properties | [PropertyInput!] | Optional `{key, value}` pairs attached to the event. | |
| layer | String | Optional layer name. If omitted, the default layer is used. | |
MutationPlugin#
| Field | Argument | Type | Description |
|---|---|---|---|
| NoOps | String! | ||
Namespace#
A directory-like container for graphs and nested namespaces. Graphs are
addressed by path (e.g. "team/project/graph"), and every segment except
the last is a namespace. Use to browse what's stored on the server without
loading any graph data.
| Field | Argument | Type | Description |
|---|---|---|---|
| graphs | CollectionOfMetaGraph! | Graphs directly inside this namespace (excludes graphs in nested namespaces). Filtered by the caller's permissions — only graphs the caller is allowed to see are returned. | |
| path | String! | Path of this namespace relative to the root namespace. Empty string for the root namespace itself. | |
| parent | Namespace | Parent namespace, or null at the root. | |
| children | CollectionOfNamespace! | Sub-namespaces directly inside this one (one level down, not recursive). Filtered by permissions. | |
| items | CollectionOfNamespacedItem! | Everything in this namespace — sub-namespaces and graphs — as a single heterogeneous collection. Sub-namespaces are listed before graphs. Filtered by permissions. | |
Node#
Raphtory graph node.
| Field | Argument | Type | Description |
|---|---|---|---|
| id | NodeId! | Returns the unique id of the node — `String` for string-indexed graphs, non-negative `Int` for integer-indexed graphs. | |
| name | String! | Returns the name of the node. | |
| defaultLayer | Node! | Return a view of the node containing only the default layer. | |
| layers | Node! | Return a view of node containing all layers specified. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | Node! | Returns a collection containing nodes belonging to all layers except the excluded list of layers. | |
| names | [String!]! | Layer names to exclude. | |
| layer | Node! | Returns a collection containing nodes belonging to the specified layer. | |
| name | String! | Layer name to include. | |
| excludeLayer | Node! | Returns a collection containing nodes belonging to all layers except the excluded layer. | |
| name | String! | Layer name to exclude. | |
| rolling | NodeWindowSet! | Creates a WindowSet with the specified window size and optional step using a rolling window. A rolling window is a window that moves forward by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | NodeWindowSet! | Creates a WindowSet with the specified step size using an expanding window. An expanding window is a window that grows by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | Node! | Create a view of the node including all events between the specified start (inclusive) and end (exclusive). | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | Node! | Create a view of the node including all events at a specified time. | |
| time | TimeInput! | Instant to pin the view to. | |
| latest | Node! | Create a view of the node including all events at the latest time. | |
| snapshotAt | Node! | Create a view of the node including all events that are valid at the specified time. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| snapshotLatest | Node! | Create a view of the node including all events that are valid at the latest time. | |
| before | Node! | Create a view of the node including all events before specified end time (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | Node! | Create a view of the node including all events after the specified start time (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | Node! | Shrink a Window to a specified start and end time, if these are earlier and later than the current start and end respectively. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| shrinkStart | Node! | Set the start of the window to the larger of a specified start time and self.start(). | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| shrinkEnd | Node! | Set the end of the window to the smaller of a specified end and self.end(). | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| applyViews | Node! | ||
| views | [NodeViewCollection!]! | ||
| earliestTime | EventTime! | Returns the earliest time that the node exists. | |
| firstUpdate | EventTime! | Returns the time of the first update made to the node. | |
| latestTime | EventTime! | Returns the latest time that the node exists. | |
| lastUpdate | EventTime! | Returns the time of the last update made to the node. | |
| start | EventTime! | Gets the start time for the window. Errors if there is no window. | |
| end | EventTime! | Gets the end time for the window. Errors if there is no window. | |
| history | History! | Returns a history object for the node, with time entries for node additions and changes made to node. | |
| edgeHistoryCount | Int! | Get the number of edge events for this node. | |
| isActive | Boolean! | Check if the node is active and it's history is not empty. | |
| nodeType | String | Returns the type of node. | |
| properties | Properties! | Returns the properties of the node. | |
| metadata | Metadata! | Returns the metadata of the node. | |
| degree | Int! | Returns the number of unique counter parties for this node. | |
| outDegree | Int! | Returns the number edges with this node as the source. | |
| inDegree | Int! | Returns the number edges with this node as the destination. | |
| inComponent | Nodes! | ||
| outComponent | Nodes! | ||
| edges | Edges! | Returns all connected edges. | |
| select | EdgeFilter | ||
| outEdges | Edges! | Returns outgoing edges. | |
| select | EdgeFilter | ||
| inEdges | Edges! | Returns incoming edges. | |
| select | EdgeFilter | ||
| neighbours | PathFromNode! | Returns neighbouring nodes. | |
| select | NodeFilter | ||
| inNeighbours | PathFromNode! | Returns the number of neighbours that have at least one in-going edge to this node. | |
| select | NodeFilter | ||
| outNeighbours | PathFromNode! | Returns the number of neighbours that have at least one out-going edge from this node. | |
| select | NodeFilter | ||
| filter | Node! | ||
| expr | NodeFilter! | ||
NodeSchema#
Describes nodes of a specific type in a graph — its property keys and
observed value types (and, for string-valued properties, the set of
distinct values seen). One NodeSchema per node type.
| Field | Argument | Type | Description |
|---|---|---|---|
| typeName | String! | The node type this schema describes (e.g. `"person"`, `"org"`). Falls back to the default node type for untyped nodes. | |
| properties | [PropertySchema!]! | Property schemas seen on nodes of this type — one entry per property key ever set on a node of this type, with its observed `PropertyType` and (for string-valued properties) the set of distinct values. | |
| metadata | [PropertySchema!]! | Metadata schemas seen on nodes of this type — like `properties`, but covering metadata fields rather than temporal properties. | |
NodeWindowSet#
A lazy sequence of per-window views of a single node, produced by
node.rolling / node.expanding. Each entry is the node as it exists in
that window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [Node!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Node!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
Nodes#
A lazy collection of nodes from a graph view. Supports all the same view
transforms as Graph (window, layer, filter, ...) plus pagination and
sorting. Iterated via list / page / ids / count.
| Field | Argument | Type | Description |
|---|---|---|---|
| defaultLayer | Nodes! | Return a view of the nodes containing only the default edge layer. | |
| layers | Nodes! | Return a view of the nodes containing all layers specified. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | Nodes! | Return a view of the nodes containing all layers except those specified. | |
| names | [String!]! | Layer names to exclude. | |
| layer | Nodes! | Return a view of the nodes containing the specified layer. | |
| name | String! | Layer name to include. | |
| excludeLayer | Nodes! | Return a view of the nodes containing all layers except those specified. | |
| name | String! | Layer name to exclude. | |
| rolling | NodesWindowSet! | Creates a WindowSet with the specified window size and optional step using a rolling window. A rolling window is a window that moves forward by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | NodesWindowSet! | Creates a WindowSet with the specified step size using an expanding window. An expanding window is a window that grows by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | Nodes! | Create a view of the node including all events between the specified start (inclusive) and end (exclusive). | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | Nodes! | Create a view of the nodes including all events at a specified time. | |
| time | TimeInput! | Instant to pin the view to. | |
| latest | Nodes! | Create a view of the nodes including all events at the latest time. | |
| snapshotAt | Nodes! | Create a view of the nodes including all events that are valid at the specified time. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| snapshotLatest | Nodes! | Create a view of the nodes including all events that are valid at the latest time. | |
| before | Nodes! | Create a view of the nodes including all events before specified end time (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | Nodes! | Create a view of the nodes including all events after the specified start time (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | Nodes! | Shrink both the start and end of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| shrinkStart | Nodes! | Set the start of the window to the larger of a specified start time and self.start(). | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| shrinkEnd | Nodes! | Set the end of the window to the smaller of a specified end and self.end(). | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| typeFilter | Nodes! | Filter nodes by node type. | |
| nodeTypes | [String!]! | Node-type names to keep. | |
| applyViews | Nodes! | Apply a list of views in the given order and return the resulting nodes collection. Lets callers compose window, layer, filter, and snapshot operations in a single call. | |
| views | [NodesViewCollection!]! | Ordered list of view operations; each entry is a one-of variant (`window`, `layer`, `filter`, etc.) applied to the running result. | |
| sorted | Nodes! | Sort the nodes. Multiple criteria are applied lexicographically (ties on the first key break to the second, etc.). | |
| sortBys | [NodeSortBy!]! | Ordered list of sort keys. Each entry chooses exactly one of `id` / `time` / `property`, with an optional `reverse: true` to flip order. | |
| start | EventTime! | Returns the start time of the window. Errors if there is no window. | |
| end | EventTime! | Returns the end time of the window. Errors if there is no window. | |
| count | Int! | Number of nodes in the current view. | |
| page | [Node!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Node!]! | Materialise every node in the view. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
| ids | [String!]! | Every node's id (name) as a flat list of strings. Rejected by the server when bulk list endpoints are disabled. | |
| filter | Nodes! |
Narrow the collection to nodes matching `expr`. The filter sticks to the
returned view — every subsequent traversal through these nodes (their
neighbours, edges, properties) continues to see the filtered scope.
Useful when you want one scoping rule to apply across the whole query.
E.g. restricting everything to a specific week:
|
|
| expr | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
| select | Nodes! |
Narrow the collection to nodes matching `expr`, but only at this step —
subsequent traversals out of these nodes see the unfiltered graph again.
Useful when you want different scopes at different hops. E.g. nodes
active on Monday, then their neighbours active on Tuesday, then *those*
neighbours active on Wednesday:
|
|
| expr | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
NodesWindowSet#
A lazy sequence of per-window node collections, produced by
nodes.rolling / nodes.expanding. Each entry is a Nodes collection
as it exists in that window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [Nodes!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Nodes!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
PagerankOutput#
PageRank score.
| Field | Argument | Type | Description |
|---|---|---|---|
| name | String! | ||
| rank | Float! | ||
PathFromNode#
A collection of nodes anchored to a source node — the result of traversals
like node.neighbours, inNeighbours, or outNeighbours. Supports all
the usual view transforms (window, layer, filter, ...) and can be chained
to walk further hops.
| Field | Argument | Type | Description |
|---|---|---|---|
| layers | PathFromNode! | Returns a view of PathFromNode containing the specified layer, errors if the layer does not exist. | |
| names | [String!]! | Layer names to include. | |
| excludeLayers | PathFromNode! | Return a view of PathFromNode containing all layers except the specified excluded layers, errors if any of the layers do not exist. | |
| names | [String!]! | Layer names to exclude. | |
| layer | PathFromNode! | Return a view of PathFromNode containing the layer specified layer, errors if the layer does not exist. | |
| name | String! | Layer name to include. | |
| excludeLayer | PathFromNode! | Return a view of PathFromNode containing all layers except the specified excluded layers, errors if any of the layers do not exist. | |
| name | String! | Layer name to exclude. | |
| rolling | PathFromNodeWindowSet! | Creates a WindowSet with the given window size and optional step using a rolling window. A rolling window is a window that moves forward by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step (or window if no step is passed). e.g. "1 month and 1 day" will align at the start of the day. Note that passing a step larger than window while alignment_unit is not "Unaligned" may lead to some entries appearing before the start of the first window and/or after the end of the last window (i.e. not included in any window). | |
| window | WindowDuration! |
Width of each window. Pass either `{epoch: |
|
| step | WindowDuration |
Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step` (or `window` if no step is set). | |
| expanding | PathFromNodeWindowSet! | Creates a WindowSet with the given step size using an expanding window. An expanding window is a window that grows by step size at each iteration. alignment_unit optionally aligns the windows to the specified unit. "Unaligned" can be passed for no alignment. If unspecified (i.e. by default), alignment is done on the smallest unit of time in the step. e.g. "1 month and 1 day" will align at the start of the day. | |
| step | WindowDuration! |
How much the window grows by on each step. Pass either `{epoch: |
|
| alignmentUnit | AlignmentUnit | Optional anchor for window boundaries — pass `Unaligned` to disable, or one of the unit values (e.g. `Day`, `Hour`, `Minute`) to align edges to that calendar unit. Defaults to the smallest unit present in `step`. | |
| window | PathFromNode! | Create a view of the PathFromNode including all events between a specified start (inclusive) and end (exclusive). | |
| start | TimeInput! | Inclusive lower bound. | |
| end | TimeInput! | Exclusive upper bound. | |
| at | PathFromNode! | Create a view of the PathFromNode including all events at time. | |
| time | TimeInput! | Instant to pin the view to. | |
| snapshotLatest | PathFromNode! | Create a view of the PathFromNode including all events that are valid at the latest time. | |
| snapshotAt | PathFromNode! | Create a view of the PathFromNode including all events that are valid at the specified time. | |
| time | TimeInput! | Instant at which entities must be valid. | |
| latest | PathFromNode! | Create a view of the PathFromNode including all events at the latest time. | |
| before | PathFromNode! | Create a view of the PathFromNode including all events before the specified end (exclusive). | |
| time | TimeInput! | Exclusive upper bound. | |
| after | PathFromNode! | Create a view of the PathFromNode including all events after the specified start (exclusive). | |
| time | TimeInput! | Exclusive lower bound. | |
| shrinkWindow | PathFromNode! | Shrink both the start and end of the window. | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| shrinkStart | PathFromNode! | Set the start of the window to the larger of the specified start and self.start(). | |
| start | TimeInput! | Proposed new start (TimeInput); ignored if it would widen the window. | |
| shrinkEnd | PathFromNode! | Set the end of the window to the smaller of the specified end and self.end(). | |
| end | TimeInput! | Proposed new end (TimeInput); ignored if it would widen the window. | |
| typeFilter | PathFromNode! | Narrow this path to neighbours whose node type is in the given set. | |
| nodeTypes | [String!]! | Node types to keep. | |
| start | EventTime! | Returns the earliest time that this PathFromNode is valid or None if the PathFromNode is valid for all times. | |
| end | EventTime! | Returns the latest time that this PathFromNode is valid or None if the PathFromNode is valid for all times. | |
| count | Int! | Number of neighbour nodes reachable from the source in this view. | |
| page | [Node!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [Node!]! | Materialise every neighbour node in the path. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
| ids | [String!]! | Every neighbour node's id (name) as a flat list of strings. Rejected by the server when bulk list endpoints are disabled. | |
| applyViews | PathFromNode! | Takes a specified selection of views and applies them in given order. | |
| views | [PathFromNodeViewCollection!]! | Ordered list of view operations; each entry is a one-of variant (`window`, `layer`, `filter`, ...) applied to the running result. | |
| filter | PathFromNode! |
Narrow the neighbour set to nodes matching `expr`. The filter sticks to
the returned path — every subsequent traversal (further hops, edges,
properties) continues to see the filtered scope.
Useful when you want one scoping rule to apply across the whole query.
E.g. restricting the whole traversal to a specific week:
|
|
| expr | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
| select | PathFromNode! |
Narrow the neighbour set to nodes matching `expr`, but only at this hop
— further traversals out of these nodes see the unfiltered graph again.
Useful when each hop needs a different scope. E.g. neighbours active on
Monday, then *their* neighbours active on Tuesday:
|
|
| expr | NodeFilter! | Composite node filter (by name, property, type, etc.). | |
PathFromNodeWindowSet#
A lazy sequence of per-window neighbour sets, produced by
neighbours.rolling / neighbours.expanding (or the in/out variants).
Each entry is a PathFromNode scoped to that window.
| Field | Argument | Type | Description |
|---|---|---|---|
| count | Int! | Number of windows in this set. Materialising all windows is expensive for large graphs — prefer `page` over `list` when iterating. | |
| page | [PathFromNode!]! | Fetch one page with a number of items up to a specified limit, optionally offset by a specified amount. The page_index sets the number of pages to skip (defaults to 0). For example, if page(5, 2, 1) is called, a page with 5 items, offset by 11 items (2 pages of 5 + 1), will be returned. | |
| limit | Int! | Maximum number of items to return on this page. | |
| offset | Int | Extra items to skip on top of `pageIndex` paging (default 0). | |
| pageIndex | Int | Zero-based page number; multiplies `limit` to determine where to start (default 0). | |
| list | [PathFromNode!]! | Materialise every window as a list. Rejected by the server when bulk list endpoints are disabled; use `page` for paginated access instead. | |
Properties#
All temporal properties of an entity (metadata is exposed separately).
Look up individual properties via get / contains, enumerate via
keys / values, or drop into temporal for time-aware accessors.
| Field | Argument | Type | Description |
|---|---|---|---|
| get | Property | Look up a single property by key. Returns null if no property with that key exists in the current view. | |
| key | String! | The property name. | |
| contains | Boolean! | Returns true if a property with the given key exists in this view. | |
| key | String! | The property name to look up. | |
| keys | [String!]! | All property keys present in the current view. Does not include metadata — metadata is exposed separately via the entity's `metadata` field. | |
| values | [Property!]! | Snapshot of property values, one `{key, value}` entry per property. | |
| keys | [String!] | Optional whitelist. If provided, only properties with these keys are returned; if omitted or null, every property in the view is returned. | |
| temporal | TemporalProperties! | The temporal-only view of these properties — excludes metadata (which has no history) and lets you drill into per-key timelines and aggregates. | |
Property#
A single (key, value) property reading at a point in the graph view.
The value is exposed both as a typed scalar (value) and as a
human-readable string (asString).
| Field | Argument | Type | Description |
|---|---|---|---|
| key | String! | The property key (name). | |
| asString | String! | The property value rendered as a human-readable string (e.g. `"10"`, `"hello"`, `"2024-01-01T00:00:00Z"`). For programmatic access use `value`, which returns a typed scalar. | |
| value | PropertyOutput! | The property value as a typed `PropertyOutput` scalar — numbers come back as numbers, booleans as booleans, strings as strings, etc. | |
PropertySchema#
| Field | Argument | Type | Description |
|---|---|---|---|
| key | String! | ||
| propertyType | String! | ||
| variants | [String!]! | ||
PropertyTuple#
A (time, value) pair — the output type of temporal-property accessors
that need to report when a value was observed (e.g. min, max,
median, orderedDedupe).
| Field | Argument | Type | Description |
|---|---|---|---|
| time | EventTime! | The timestamp at which this value was recorded. | |
| asString | String! | The value rendered as a human-readable string. For programmatic access use `value`, which returns a typed scalar. | |
| value | PropertyOutput! | The value as a typed `PropertyOutput` scalar — numbers come back as numbers, booleans as booleans, etc. | |
QueryPlugin#
| Field | Argument | Type | Description |
|---|---|---|---|
| NoOps | String! | ||
ShortestPathOutput#
| Field | Argument | Type | Description |
|---|---|---|---|
| target | String! | ||
| nodes | [String!]! | ||
TemporalProperties#
The temporal-only view of an entity's properties. Each entry is a
TemporalProperty carrying the full timeline for that key — use this when
you need per-update iteration, time-indexed lookups, or aggregates.
| Field | Argument | Type | Description |
|---|---|---|---|
| get | TemporalProperty | Look up a single temporal property by key. Returns null if there's no temporal property with that key. | |
| key | String! | The property name. | |
| contains | Boolean! | Returns true if a temporal property with the given key exists. | |
| key | String! | The property name to look up. | |
| keys | [String!]! | All temporal-property keys present in this view. | |
| values | [TemporalProperty!]! | All temporal properties, each as a `TemporalProperty` with its full timeline available. Use `history`, `values`, `latest`, `at`, etc. on each entry. | |
| keys | [String!] | Optional whitelist. If provided, only temporal properties with these keys are returned; if omitted, every temporal property in the view is returned. | |
TemporalProperty#
The full timeline of a single property key on one entity. Exposes every
update (via values / history / orderedDedupe), point lookups (at,
latest), and aggregates over the timeline (sum, mean, min, max,
median, count).
| Field | Argument | Type | Description |
|---|---|---|---|
| key | String! | The property key (name). | |
| history | History! | Event history for this property — one entry per temporal update, in insertion order. Use this to navigate the full timeline: access the raw `timestamps` / `datetimes` / `eventId` lists, analyse gaps between updates via `intervals` (mean/median/min/max), ask `isEmpty`, or paginate the events. | |
| values | [PropertyOutput!]! | All values this property has ever taken, in temporal order (one per update). Typed as `PropertyOutput` so numeric values stay numeric. | |
| at | PropertyOutput | The value at or before time `t` (latest update on or before `t`). Returns null if no update exists on or before `t`. | |
| t | TimeInput! | A TimeInput (epoch millis integer, RFC3339 string, or `{timestamp, eventId}` object). | |
| latest | PropertyOutput | The most recent value, or null if the property has never been set in this view. | |
| unique | [PropertyOutput!]! | The set of distinct values this property has ever taken (order not guaranteed). | |
| orderedDedupe | [PropertyTuple!]! | Collapses runs of consecutive-equal updates into a single `(time, value)` pair. | |
| latestTime | Boolean! | If true, each run is represented by its *last* timestamp; if false, by its *first*. Useful for compressing chatter in a timeline. | |
| sum | PropertyOutput | Sum of all updates. Returns null if the dtype is not additive or the property is empty. | |
| mean | PropertyOutput | Mean of all updates as an F64. Returns null if any value is non-numeric or the property is empty. | |
| average | PropertyOutput | Alias for `mean` — same F64 average, same null cases. | |
| min | PropertyTuple | Minimum `(time, value)` pair. Returns null if the dtype is not comparable or the property is empty. | |
| max | PropertyTuple | Maximum `(time, value)` pair. Returns null if the dtype is not comparable or the property is empty. | |
| median | PropertyTuple | Median `(time, value)` pair (lower median on even-length inputs). Returns null if the dtype is not comparable or the property is empty. | |
| count | Int! | Number of updates recorded for this property in the current view. | |
VectorSelection#
A working set of documents / nodes / edges built up via similarity
searches on a VectorisedGraph. Selections are mutable: you can grow
them with more hops (expand*), dereference the contents (nodes,
edges, getDocuments), or start fresh with emptySelection.
| Field | Argument | Type | Description |
|---|---|---|---|
| nodes | [Node!]! | Returns a list of nodes in the current selection. | |
| edges | [Edge!]! | Returns a list of edges in the current selection. | |
| getDocuments | [Document!]! | Returns a list of documents in the current selection. | |
| addNodes | VectorSelection! | Add every document associated with the named nodes to the selection. Documents added this way receive a score of 0 (no similarity ranking). | |
| nodes | [NodeId!]! | Node ids whose documents to include. | |
| addEdges | VectorSelection! | Add every document associated with the named edges to the selection. Documents added this way receive a score of 0 (no similarity ranking). | |
| edges | [InputEdge!]! | List of `{src, dst}` pairs identifying the edges. | |
| expand | VectorSelection! | Grow the selection by including documents that are within `hops` of any document already in the selection. Two documents are 1 hop apart if they're on the same entity or on a connected node/edge pair. | |
| hops | Int! | Number of expansion rounds (1 = direct neighbours). | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict expansion to entities active in that interval. | |
| expandEntitiesBySimilarity | VectorSelection! | Iteratively expand the selection by similarity to a natural-language query. Each pass takes the one-hop neighbour set of the current selection and adds the highest-scoring entities (mixed nodes and edges); the loop continues until `limit` entities have been added. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Total number of entities to add across all passes. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to entities active in that interval. | |
| expandNodesBySimilarity | VectorSelection! | Like `expandEntitiesBySimilarity` but restricted to nodes — iteratively add the highest-scoring adjacent nodes to the selection. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Total number of nodes to add across all passes. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to nodes active in that interval. | |
| expandEdgesBySimilarity | VectorSelection! | Like `expandEntitiesBySimilarity` but restricted to edges — iteratively add the highest-scoring adjacent edges to the selection. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Total number of edges to add across all passes. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to edges active in that interval. | |
VectorisedGraph#
A graph with embedded vector representations for its nodes and edges.
Exposes similarity search over documents, nodes, and edges, plus
selection building (emptySelection) and index maintenance
(optimizeIndex).
| Field | Argument | Type | Description |
|---|---|---|---|
| optimizeIndex | Boolean! | Rebuild (or incrementally update) the on-disk vector indexes for nodes and edges so subsequent similarity searches hit the fresh embeddings. Safe to call repeatedly; returns true on success. | |
| emptySelection | VectorSelection! | Returns an empty selection of documents. | |
| entitiesBySimilarity | VectorSelection! | Find the highest-scoring nodes *and* edges (mixed) by similarity to a natural-language query. The query is embedded server-side and matched against indexed entity vectors. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Maximum number of results to return. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to entities active in that interval. | |
| nodesBySimilarity | VectorSelection! | Find the highest-scoring nodes by similarity to a natural-language query. The query is embedded server-side and matched against indexed node vectors. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Maximum number of nodes to return. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to nodes active in that interval. | |
| edgesBySimilarity | VectorSelection! | Find the highest-scoring edges by similarity to a natural-language query. The query is embedded server-side and matched against indexed edge vectors. | |
| query | String! | Natural-language search string; embedded by the server. | |
| limit | Int! | Maximum number of edges to return. | |
| window | VectorisedGraphWindow | Optional `{start, end}` to restrict matches to edges active in that interval. | |
Inputs#
DegreeFilterNew#
| Field | Type | Description | |
|---|---|---|---|
| direction | DegreeDirection! | ||
| where | PropCondition! | ||
EdgeAddition#
| Field | Type | Description | |
|---|---|---|---|
| src | NodeId! | Source node id (string or non-negative integer). | |
| dst | NodeId! | Destination node id (string or non-negative integer). | |
| layer | String | Layer. | |
| metadata | [PropertyInput!] | Metadata. | |
| updates | [TemporalPropertyInput!] | ||
EdgeFilter#
GraphQL input type for filtering edges.
EdgeFilter represents a composable boolean expression evaluated
against edges in a graph. Filters can target:
- edge endpoints (source / destination nodes),
- edge properties and metadata,
- temporal scope (windows, snapshots, latest),
- layer membership,
- and structural edge state (active, valid, deleted, self-loop).
Filters can be combined recursively using logical operators
(And, Or, Not).
Examples (GraphQL):
{
edges(filter: {
And: [
{ IsActive: true },
{ Property: { name: "weight", gt: 0.5 } }
]
}) {
src
dst
}
}
| Field | Type | Description | |
|---|---|---|---|
| src | NodeFilter | Applies a filter to the **source node** of the edge. The nested `NodeFilter` is evaluated against the source endpoint. Example: `{ Src: { Name: { contains: "alice" } } }` | |
| dst | NodeFilter | Applies a filter to the **destination node** of the edge. The nested `NodeFilter` is evaluated against the destination endpoint. Example: `{ Dst: { Id: { eq: 42 } } }` | |
| property | PropertyFilterNew | Filters an edge **property** by name and value. Applies to static or temporal properties depending on context. Example: `{ Property: { name: "weight", gt: 0.5 } }` | |
| metadata | PropertyFilterNew | Filters an edge **metadata field**. Metadata is shared across all temporal versions of an edge. Example: `{ Metadata: { name: "source", eq: "imported" } }` | |
| temporalProperty | PropertyFilterNew | Filters a **temporal edge property**. Used when the property value varies over time and must be evaluated within a temporal context. Example: `{ TemporalProperty: { name: "status", eq: "active" } }` | |
| and | [EdgeFilter!] | Logical **AND** over multiple edge filters. All nested filters must evaluate to `true`. Example: `{ And: [ { IsActive: true }, { IsValid: true } ] }` | |
| or | [EdgeFilter!] | Logical **OR** over multiple edge filters. At least one nested filter must evaluate to `true`. Example: `{ Or: [ { IsDeleted: true }, { IsSelfLoop: true } ] }` | |
| not | EdgeFilter | Logical **NOT** over a nested edge filter. Negates the result of the wrapped filter. Example: `{ Not: { IsDeleted: true } }` | |
| window | EdgeWindowExpr | Restricts edge evaluation to a **time window**. The window is inclusive of `start` and exclusive of `end`. | |
| at | EdgeTimeExpr | Restricts edge evaluation to a **single point in time**. | |
| before | EdgeTimeExpr | Restricts edge evaluation to times **strictly before** a given time. | |
| after | EdgeTimeExpr | Restricts edge evaluation to times **strictly after** a given time. | |
| latest | EdgeUnaryExpr | Evaluates edge predicates against the **latest available state**. | |
| snapshotAt | EdgeTimeExpr | Evaluates edge predicates against a **snapshot** of the graph at a specific time. | |
| snapshotLatest | EdgeUnaryExpr | Evaluates edge predicates against the **most recent snapshot** of the graph. | |
| layers | EdgeLayersExpr | Restricts evaluation to edges belonging to one or more **layers**. Example: `{ Layers: { values: ["fire_nation", "air_nomads"] } }` | |
| isActive | Boolean | Matches edges that have at least one event in the current view/window. When `true`, only active edges are matched. | |
| isValid | Boolean | Matches edges that are structurally valid (i.e. not deleted) in the current view/window. | |
| isDeleted | Boolean | Matches edges that have been deleted in the current view/window. | |
| isSelfLoop | Boolean | Matches edges that are **self-loops** (source node == destination node). | |
EdgeLayersExpr#
Restricts edge evaluation to one or more layers and applies a nested EdgeFilter.
Used by GqlEdgeFilter::Layers.
| Field | Type | Description | |
|---|---|---|---|
| names | [String!]! | Layer names to include. | |
| expr | EdgeFilter! | Filter evaluated within the layer-restricted view. | |
EdgeSortBy#
| Field | Type | Description | |
|---|---|---|---|
| reverse | Boolean | Reverse order | |
| src | Boolean | Source node | |
| dst | Boolean | Destination | |
| time | SortByTime | Time | |
| property | String | Property | |
EdgeTimeExpr#
Restricts edge evaluation to a single time bound and applies a nested EdgeFilter.
Used by At, Before, and After edge filters.
| Field | Type | Description | |
|---|---|---|---|
| time | TimeInput! | Reference time for the operation. | |
| expr | EdgeFilter! | Filter evaluated within the restricted time scope. | |
EdgeUnaryExpr#
Applies a unary edge-view operation and then evaluates a nested EdgeFilter.
Used by Latest and SnapshotLatest edge filters.
| Field | Type | Description | |
|---|---|---|---|
| expr | EdgeFilter! | Filter evaluated after applying the unary operation. | |
EdgeViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| defaultLayer | Boolean | Contains only the default layer. | |
| latest | Boolean | Latest time. | |
| snapshotLatest | Boolean | Snapshot at latest time. | |
| snapshotAt | TimeInput | Snapshot at specified time. | |
| layers | [String!] | List of included layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single excluded layer. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
| edgeFilter | EdgeFilter | Edge filter | |
EdgeWindowExpr#
Restricts edge evaluation to a time window and applies a nested EdgeFilter.
Used by GqlEdgeFilter::Window.
The window is inclusive of start and exclusive of end.
| Field | Type | Description | |
|---|---|---|---|
| start | TimeInput! | Window start time (inclusive). | |
| end | TimeInput! | Window end time (exclusive). | |
| expr | EdgeFilter! | Filter evaluated within the restricted window. | |
EdgesViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| defaultLayer | Boolean | Contains only the default layer. | |
| latest | Boolean | Latest time. | |
| snapshotLatest | Boolean | Snapshot at latest time. | |
| snapshotAt | TimeInput | Snapshot at specified time. | |
| layers | [String!] | List of included layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single excluded layer. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
| edgeFilter | EdgeFilter | Edge filter | |
EmbeddingModel#
| Field | Type | Description | |
|---|---|---|---|
| openAI | OpenAIConfig | OpenAI embedding models or compatible providers | |
GraphFilter#
GraphQL input type for restricting a graph view.
GraphFilter controls the evaluation scope for subsequent node/edge filters:
- time windows (Window)
- time points (At)
- open-ended ranges (Before, After)
- latest evaluation (Latest)
- snapshots (SnapshotAt, SnapshotLatest)
- layer membership (Layers)
These filters can be nested via the expr field on the corresponding
*Expr input objects to form pipelines.
| Field | Type | Description | |
|---|---|---|---|
| window | GraphWindowExpr | Restrict evaluation to a time window (inclusive start, exclusive end). | |
| at | GraphTimeExpr | Restrict evaluation to a single point in time. | |
| before | GraphTimeExpr | Restrict evaluation to times strictly before the given time. | |
| after | GraphTimeExpr | Restrict evaluation to times strictly after the given time. | |
| latest | GraphUnaryExpr | Evaluate against the latest available state. | |
| snapshotAt | GraphTimeExpr | Evaluate against a snapshot of the graph at a given time. | |
| snapshotLatest | GraphUnaryExpr | Evaluate against the most recent snapshot of the graph. | |
| layers | GraphLayersExpr | Restrict evaluation to one or more layers. | |
GraphLayersExpr#
Graph view restriction by layer membership, optionally chaining another GraphFilter.
Used by GqlGraphFilter::Layers.
| Field | Type | Description | |
|---|---|---|---|
| names | [String!]! | Layer names to include. | |
| expr | GraphFilter | Optional nested filter applied after the layer restriction. | |
GraphTimeExpr#
Graph view restriction to a single time bound, optionally chaining another GraphFilter.
Used by At, Before, and After graph filters.
Example:
{ At: { time: 5, expr: { Layers: { names: ["L1"] } } } }
| Field | Type | Description | |
|---|---|---|---|
| time | TimeInput! | Reference time for the operation. | |
| expr | GraphFilter | Optional nested filter applied after the time restriction. | |
GraphUnaryExpr#
Graph view restriction that takes only a nested expression.
Used for unary view operations like Latest and SnapshotLatest.
| Field | Type | Description | |
|---|---|---|---|
| expr | GraphFilter | Optional nested filter applied after the unary operation. | |
GraphViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| defaultLayer | Boolean | Contains only the default layer. | |
| layers | [String!] | List of included layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single excluded layer. | |
| subgraph | [NodeId!] | Subgraph nodes. | |
| subgraphNodeTypes | [String!] | Subgraph node types. | |
| excludeNodes | [NodeId!] | List of excluded nodes. | |
| valid | Boolean | Valid state. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| latest | Boolean | View at the latest time. | |
| snapshotAt | TimeInput | Snapshot at specified time. | |
| snapshotLatest | Boolean | Snapshot at latest time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
| nodeFilter | NodeFilter | Node filter. | |
| edgeFilter | EdgeFilter | Edge filter. | |
GraphWindowExpr#
Graph view restriction to a time window, optionally chaining another GraphFilter.
Used by GqlGraphFilter::Window.
startandenddefine the window (inclusive start, exclusive end).exproptionally nests another graph filter to apply within this window.
Example (GraphQL):
{ Window: { start: 0, end: 10, expr: { Layers: { names: ["A"] } } } }
| Field | Type | Description | |
|---|---|---|---|
| start | TimeInput! | Window start time (inclusive). | |
| end | TimeInput! | Window end time (exclusive). | |
| expr | GraphFilter | Optional nested filter applied after the window restriction. | |
IndexSpecInput#
| Field | Type | Description | |
|---|---|---|---|
| nodeProps | PropsInput! | Node properties. | |
| edgeProps | PropsInput! | Edge properties. | |
InputEdge#
| Field | Type | Description | |
|---|---|---|---|
| src | NodeId! | Source node id (string or non-negative integer). | |
| dst | NodeId! | Destination node id (string or non-negative integer). | |
NodeAddition#
| Field | Type | Description | |
|---|---|---|---|
| name | NodeId! | Node id (string or non-negative integer). | |
| nodeType | String | Node type. | |
| metadata | [PropertyInput!] | Metadata. | |
| updates | [TemporalPropertyInput!] | Updates. | |
| layer | String | Layer. | |
NodeFieldCondition#
Boolean expression over a built-in node field (ID, name, or type).
This is used by NodeFieldFilterNew.where_ when filtering a specific
NodeField.
Supports comparisons, string predicates, and set membership. (Presence checks and aggregations are handled via property filters instead.)
| Field | Type | Description | |
|---|---|---|---|
| eq | Value | Equality. | |
| ne | Value | Inequality. | |
| gt | Value | Greater-than. | |
| ge | Value | Greater-than-or-equal. | |
| lt | Value | Less-than. | |
| le | Value | Less-than-or-equal. | |
| startsWith | Value | String prefix match. | |
| endsWith | Value | String suffix match. | |
| contains | Value | Substring match. | |
| notContains | Value | Negated substring match. | |
| isIn | Value | Set membership. | |
| isNotIn | Value | Negated set membership. | |
NodeFieldFilterNew#
Filters a built-in node field (id, name, type) using a NodeFieldCondition.
Example (GraphQL):
{ Node: { field: NodeName, where: { Contains: "ali" } } }
| Field | Type | Description | |
|---|---|---|---|
| field | NodeField! | Which built-in field to filter. | |
| where | NodeFieldCondition! | Condition applied to the selected field. Exposed as `where` in GraphQL. | |
NodeFilter#
GraphQL input type for filtering nodes.
NodeFilter represents a composable boolean expression evaluated
against nodes in a graph. Filters can target:
- built-in node fields (
Node/NodeFieldFilterNew), - node properties and metadata,
- temporal properties,
- temporal scope (windows, snapshots, latest),
- and layer membership,
- plus node state predicates (e.g.
IsActive).
Filters can be combined recursively using logical operators
(And, Or, Not).
| Field | Type | Description | |
|---|---|---|---|
| node | NodeFieldFilterNew | Filters a built-in node field (ID, name, or type). | |
| property | PropertyFilterNew | Filters a node property by name and condition. | |
| degree | DegreeFilterNew | Filters a node's degree (in, out, or total) by a condition. | |
| metadata | PropertyFilterNew | Filters a node metadata field by name and condition. Metadata is shared across all temporal versions of a node. | |
| temporalProperty | PropertyFilterNew | Filters a temporal node property by name and condition. Used when the property value varies over time and must be evaluated within a temporal context. | |
| and | [NodeFilter!] | Logical AND over multiple node filters. | |
| or | [NodeFilter!] | Logical OR over multiple node filters. | |
| not | NodeFilter | Logical NOT over a nested node filter. | |
| window | NodeWindowExpr | Restricts evaluation to a time window (inclusive start, exclusive end). | |
| at | NodeTimeExpr | Restricts evaluation to a single point in time. | |
| before | NodeTimeExpr | Restricts evaluation to times strictly before the given time. | |
| after | NodeTimeExpr | Restricts evaluation to times strictly after the given time. | |
| latest | NodeUnaryExpr | Evaluates predicates against the latest available node state. | |
| snapshotAt | NodeTimeExpr | Evaluates predicates against a snapshot of the graph at a given time. | |
| snapshotLatest | NodeUnaryExpr | Evaluates predicates against the most recent snapshot of the graph. | |
| layers | NodeLayersExpr | Restricts evaluation to nodes belonging to one or more layers. | |
| isActive | Boolean | Matches nodes that have at least one event in the current view/window. When `true`, only active nodes are matched. | |
NodeLayersExpr#
Restricts node evaluation to one or more layers and applies a nested NodeFilter.
Used by GqlNodeFilter::Layers.
| Field | Type | Description | |
|---|---|---|---|
| names | [String!]! | Layer names to include. | |
| expr | NodeFilter! | Filter evaluated within the layer-restricted view. | |
NodeSortBy#
| Field | Type | Description | |
|---|---|---|---|
| reverse | Boolean | Reverse order | |
| id | Boolean | Unique Id | |
| time | SortByTime | Time | |
| property | String | Property | |
NodeTimeExpr#
Restricts node evaluation to a single time bound and applies a nested NodeFilter.
Used by At, Before, and After node filters.
| Field | Type | Description | |
|---|---|---|---|
| time | TimeInput! | Reference time for the operation. | |
| expr | NodeFilter! | Filter evaluated within the restricted time scope. | |
NodeUnaryExpr#
Applies a unary node-view operation and then evaluates a nested NodeFilter.
Used by Latest and SnapshotLatest node filters.
| Field | Type | Description | |
|---|---|---|---|
| expr | NodeFilter! | Filter evaluated after applying the unary operation. | |
NodeViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| defaultLayer | Boolean | Contains only the default layer. | |
| latest | Boolean | View at the latest time. | |
| snapshotLatest | Boolean | Snapshot at latest time. | |
| snapshotAt | TimeInput | Snapshot at specified time. | |
| layers | [String!] | List of included layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single excluded layer. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
| nodeFilter | NodeFilter | Node filter. | |
NodeWindowExpr#
Restricts node evaluation to a time window and applies a nested NodeFilter.
Used by GqlNodeFilter::Window.
The window is inclusive of start and exclusive of end.
| Field | Type | Description | |
|---|---|---|---|
| start | TimeInput! | Window start time (inclusive). | |
| end | TimeInput! | Window end time (exclusive). | |
| expr | NodeFilter! | Filter evaluated within the restricted window. | |
NodesViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| defaultLayer | Boolean | Contains only the default layer. | |
| latest | Boolean | View at the latest time. | |
| snapshotLatest | Boolean | Snapshot at latest time. | |
| layers | [String!] | List of included layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single excluded layer. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| snapshotAt | TimeInput | Snapshot at specified time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
| nodeFilter | NodeFilter | Node filter. | |
| typeFilter | [String!] | List of types. | |
ObjectEntry#
| Field | Type | Description | |
|---|---|---|---|
| key | String! | Key. | |
| value | Value! | Value. | |
OpenAIConfig#
| Field | Type | Description | |
|---|---|---|---|
| model | String! | ||
| apiBase | String | ||
| apiKeyEnv | String | ||
| orgId | String | ||
| projectId | String | ||
PathFromNodeViewCollection#
| Field | Type | Description | |
|---|---|---|---|
| latest | Boolean | Latest time. | |
| snapshotLatest | Boolean | Latest snapshot. | |
| snapshotAt | TimeInput | Time. | |
| layers | [String!] | List of layers. | |
| excludeLayers | [String!] | List of excluded layers. | |
| excludeLayer | String | Single layer to exclude. | |
| window | Window | Window between a start and end time. | |
| at | TimeInput | View at a specified time. | |
| before | TimeInput | View before a specified time (end exclusive). | |
| after | TimeInput | View after a specified time (start exclusive). | |
| shrinkWindow | Window | Shrink a Window to a specified start and end time. | |
| shrinkStart | TimeInput | Set the window start to a specified time. | |
| shrinkEnd | TimeInput | Set the window end to a specified time. | |
PropCondition#
Boolean expression over a property value.
PropCondition is used inside PropertyFilterNew.where to describe
how a property’s value should be matched.
It supports:
- comparisons (Eq, Gt, Le, …),
- string predicates (Contains, StartsWith, …),
- set membership (IsIn, IsNotIn),
- presence checks (IsSome, IsNone),
- boolean composition (And, Or, Not),
- and list/aggregate qualifiers (First, Sum, Len, …).
Notes:
- Value is interpreted according to the property’s type.
- Aggregators/qualifiers like Sum and Len apply when the underlying
property is list-like or aggregatable (depending on your engine rules).
| Field | Type | Description | |
|---|---|---|---|
| eq | Value | Equality: property value equals the given value. | |
| ne | Value | Inequality: property value does not equal the given value. | |
| gt | Value | Greater-than: property value is greater than the given value. | |
| ge | Value | Greater-than-or-equal: property value is >= the given value. | |
| lt | Value | Less-than: property value is less than the given value. | |
| le | Value | Less-than-or-equal: property value is <= the given value. | |
| startsWith | Value | String prefix match against the property's string representation. | |
| endsWith | Value | String suffix match against the property's string representation. | |
| contains | Value | Substring match against the property's string representation. | |
| notContains | Value | Negated substring match against the property's string representation. | |
| isIn | Value | Set membership: property value is contained in the given list of values. | |
| isNotIn | Value | Negated set membership: property value is not contained in the given list of values. | |
| isSome | Boolean | Presence check: property value is present (not null/missing). When set to `true`, requires the property to exist. | |
| isNone | Boolean | Absence check: property value is missing / null. When set to `true`, requires the property to be missing. | |
| and | [PropCondition!] | Logical AND over nested conditions. | |
| or | [PropCondition!] | Logical OR over nested conditions. | |
| not | PropCondition | Logical NOT over a nested condition. | |
| first | PropCondition | Applies the nested condition to the **first** element of a list-like property. | |
| last | PropCondition | Applies the nested condition to the **last** element of a list-like property. | |
| any | PropCondition | Requires that **any** element of a list-like property matches the nested condition. | |
| all | PropCondition | Requires that **all** elements of a list-like property match the nested condition. | |
| sum | PropCondition | Applies the nested condition to the **sum** of a numeric list-like property. | |
| avg | PropCondition | Applies the nested condition to the **average** of a numeric list-like property. | |
| min | PropCondition | Applies the nested condition to the **minimum** element of a list-like property. | |
| max | PropCondition | Applies the nested condition to the **maximum** element of a list-like property. | |
| len | PropCondition | Applies the nested condition to the **length** of a list-like property. | |
PropertyFilterNew#
Filters an entity property or metadata field by name and condition.
This input is used by both node and edge filters when targeting
a specific property key (or metadata key) and applying a PropCondition.
Fields:
- name: The property key to query.
- where_: The condition to apply to that property’s value.
Example (GraphQL):
{ Property: { name: "weight", where: { Gt: 0.5 } } }
| Field | Type | Description | |
|---|---|---|---|
| name | String! | Property (or metadata) key. | |
| where | PropCondition! | Condition applied to the property value. Exposed as `where` in GraphQL. | |
PropertyInput#
| Field | Type | Description | |
|---|---|---|---|
| key | String! | Key. | |
| value | Value! | Value. | |
PropsInput#
| Field | Type | Description | |
|---|---|---|---|
| all | AllPropertySpec | All properties and metadata. | |
| some | SomePropertySpec | Some properties and metadata. | |
SomePropertySpec#
SomePropertySpec object containing lists of metadata and property names.
| Field | Type | Description | |
|---|---|---|---|
| metadata | [String!]! | List of metadata. | |
| properties | [String!]! | List of properties. | |
Template#
| Field | Type | Description | |
|---|---|---|---|
| enabled | Boolean | The default template. | |
| custom | String | A custom template. | |
TemporalPropertyInput#
| Field | Type | Description | |
|---|---|---|---|
| time | TimeInput! | Time of the update — accepts the same forms as `TimeInput` (epoch millis Int, RFC3339 string, or `{timestamp, eventId}` object). | |
| properties | [PropertyInput!] | Properties. | |
Value#
| Field | Type | Description | |
|---|---|---|---|
| u8 | Int | 8 bit unsigned integer. | |
| u16 | Int | 16 bit unsigned integer. | |
| u32 | Int | 32 bit unsigned integer. | |
| u64 | Int | 64 bit unsigned integer. | |
| i32 | Int | 32 bit signed integer. | |
| i64 | Int | 64 bit signed integer. | |
| f32 | Float | 32 bit float. | |
| f64 | Float | 64 bit float. | |
| str | String | String. | |
| bool | Boolean | Boolean. | |
| list | [Value!] | List. | |
| object | [ObjectEntry!] | Object. | |
| dtime | String | Timezone-aware datetime. | |
| ndtime | String | Naive datetime (no timezone). | |
| decimal | String | BigDecimal number (string representation, e.g. "3.14159" or "123e-5"). | |
VectorisedGraphWindow#
| Field | Type | Description | |
|---|---|---|---|
| start | TimeInput! | Inclusive lower bound of the search window. | |
| end | TimeInput! | Exclusive upper bound of the search window. | |
Window#
| Field | Type | Description | |
|---|---|---|---|
| start | TimeInput! | Window start time. | |
| end | TimeInput! | Window end time. | |
WindowDuration#
| Field | Type | Description | |
|---|---|---|---|
| duration | String | Duration of window period. Choose from: | |
| epoch | Int | Time. | |
Enums#
AlignmentUnit#
Alignment unit used to align window boundaries.
| Value | Description |
|---|---|
| UNALIGNED | |
| MILLISECOND | |
| SECOND | |
| MINUTE | |
| HOUR | |
| DAY | |
| WEEK | |
| MONTH | |
| YEAR |
AllPropertySpec#
| Value | Description |
|---|---|
| ALL | All properties and metadata. |
| ALL_METADATA | All metadata. |
| ALL_PROPERTIES | All properties. |
DegreeDirection#
Filters nodes by computed degree with a directional scope.
DegreeFilterNew lets callers filter on:
- inbound degree (IN),
- outbound degree (OUT),
- or total degree (BOTH).
The selected degree is compared using the where condition.
Example (GraphQL):
{ Degree: { direction: BOTH, where: { Gt: 10 } } }
| Value | Description |
|---|---|
| IN | |
| OUT | |
| BOTH |
GraphType#
| Value | Description |
|---|---|
| PERSISTENT | Persistent. |
| EVENT | Event. |
NodeField#
| Value | Description |
|---|---|
| NODE_ID | Node ID field. Represents the graph’s node identifier (numeric or string-backed in the API). |
| NODE_NAME | Node name field. Represents the human-readable node name (string). |
| NODE_TYPE | Node type field. Represents the optional node type assigned at node creation (string). |
SortByTime#
| Value | Description |
|---|---|
| LATEST | Latest time |
| EARLIEST | Earliest time |
Scalars#
Boolean#
The Boolean scalar type represents true or false.
Float#
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Int#
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
NodeId#
Identifier for a node — either a string ("alice") or a non-negative
integer (42). Use whichever form matches how the graph was indexed
when nodes were added.
PropertyOutput#
String#
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
TimeInput#
Input for primary time component. Expects Int, DateTime formatted String, or Object { timestamp, eventId } where the timestamp is either an Int or a DateTime formatted String, and eventId is a non-negative Int. Valid string formats are RFC3339, RFC2822, %Y-%m-%d, %Y-%m-%dT%H:%M:%S%.3f, %Y-%m-%dT%H:%M:%S%, %Y-%m-%d %H:%M:%S%.3f and %Y-%m-%d %H:%M:%S%.
Internally wraps InputTime so write paths (addNode, addEdge,
addProperties, etc.) can preserve auto-increment of event_id when only
a timestamp is given. Pass the object form {timestamp, eventId} to lock
the event_id explicitly.
Upload#
A multipart file upload
Unions#
DocumentEntity#
Entity associated with document.
| Type | Description |
|---|---|
| Node | Raphtory graph node. |
| Edge | Raphtory graph edge. |
NamespacedItem#
| Type | Description |
|---|---|
| Namespace | A directory-like container for graphs and nested namespaces. Graphs are addressed by path (e.g. `"team/project/graph"`), and every segment except the last is a namespace. Use to browse what's stored on the server without loading any graph data. |
| MetaGraph | Lightweight summary of a stored graph — its name, path, counts, and filesystem timestamps — served without deserializing the full graph. Useful for listing what's available on the server before committing to a full load. |