Skip to content

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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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:
edges { filter(expr: {window: {start: 1234, end: 5678}}) {
list { src { neighbours { list { name } } } }   # neighbours still windowed
} }
Contrast with `select`, which applies here and is not carried through.
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:
edges { select(expr: {window: {...monday...}}) {
list { src { select(expr: {window: {...tuesday...}}) {
neighbours { select(expr: {window: {...wednesday...}}) {
neighbours { list { name } }
} }
} } }
} }
Contrast with `filter`, which persists the scope through subsequent ops.
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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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:
nodes { filter(expr: {window: {start: 1234, end: 5678}}) {
list { neighbours { list { name } } }   # neighbours still windowed
} }
Contrast with `select`, which applies here and is not carried through.
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:
nodes { select(expr: {window: {...monday...}}) {
list { neighbours { select(expr: {window: {...tuesday...}}) {
list { neighbours { select(expr: {window: {...wednesday...}}) {
list { name }
} } }
} } }
} }
Contrast with `filter`, which persists the scope through subsequent ops.
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: }` for a discrete number of milliseconds (e.g. `{epoch: 1000}` for 1 second), or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}` or `{duration: 2 hours and 30 minutes}`).
step WindowDuration Optional gap between the start of one window and the start of the next. Accepts the same `{epoch: }` or `{duration: }` values as `window`. Defaults to `window` — i.e. windows touch end-to-end with no overlap and no gap.
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: }` for a discrete number of milliseconds, or `{duration: }` for a calendar duration (e.g. `{duration: 1 day}`).
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:
node(name: "A") { neighbours { filter(expr: {window: {...week...}}) {
list { neighbours { list { name } } }   # further hops still windowed
} } }
Contrast with `select`, which applies here and is not carried through.
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:
node(name: "A") { neighbours { select(expr: {window: {...monday...}}) {
list { neighbours { select(expr: {window: {...tuesday...}}) {
list { name }
} } }
} } }
Contrast with `filter`, which persists the scope through subsequent ops.
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.

  • start and end define the window (inclusive start, exclusive end).
  • expr optionally 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.