Skip to content

The caller's own graph schema — labels, properties, relationship triples

GET
/api/v1/kg/studio/schema
curl --request GET \
--url http://localhost:11044/api/v1/kg/studio/schema \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>'

The schema snapshot; empty lists and no refreshedAt when none exists

Media typeapplication/json

Labels, their properties, and relationship triples reachable by the acting user.

object
labels
required

Every label in the snapshot, virtual ones included. Empty only when there is no snapshot.

Array<object>

A node label and its sampled property shape.

object
anchor
required

True when this label may open a MATCH pattern bare — a real read, or a virtual population implicitly bound by user tenancy. False means it is reachable only by traversal from a bound anchor; an editor should not offer it at first position. How such a label IS reached is in relationships: an edge to it from a label whose anchor is true — (me:AssistantUser)-[:HAS_CONFIG]->(r:ConfigRun) for the config catalog, where AssistantUser is the caller, bound by their sign-in. Defaults true so an older client reading a newer appliance loses nothing.

boolean
description

The declared definition of the type this label names, verbatim from the realm’s own registry — for an editor to show on hover. Null for core/introspected labels, which declare none.

string
exhaustive
required

True when every node carrying this label was inspected, so an absent property genuinely does not exist here. False means the sample was capped — evidence of what exists, and no evidence at all about what does not.

boolean
label
required

The node label, as a MATCH pattern writes it.

string
properties
required

The properties seen on the sampled nodes. See exhaustive for what an absence means.

Array<object>

A property observed on nodes carrying a label.

object
alternateKey
required

True when the realm’s type declares this property as an ALTERNATE KEY: it identifies the same record as the identity does, in the vocabulary the source’s own readers use. A policy’s policy_identifier is its identity; its policy_number is what a view shows and what a client will try to join on. Both name the same policy. Unlike the identity, an alternate key is not the dedupe key and is not required on write, so a type may declare several. Defaults false.

boolean
description

The property’s DECLARED description, verbatim from the realm’s registry — for an editor to show on hover. Null where the declaration documents nothing.

string
identity
required

True when the realm’s type declares this property as the node’s IDENTITY. Two columns denote the same thing only when both project the identity of the same label; matching names prove nothing, and a client that joins on them will relate records that are not related. Defaults false so an older client reading a newer appliance loses nothing, and so an undeclared property is never mistaken for a key.

boolean
name
required

The property key, as a query writes it after the dot.

string
sparse
required

True when the property was missing from a non-trivial fraction of the sample.

boolean
type
required

Type tag: string, long, double, boolean, datetime, list, any, … — inferred from sampled values, or, where no value has been sampled, the type the property’s declaration states. any means neither says.

string
realm

The realm that declared this label’s type. Null means core — the world’s own types or the host’s.

string
sampleCount
required

How many nodes were sampled when inferring the properties.

integer format: int32
refreshedAt

When the snapshot was taken, ISO-8601. Absent when there is no snapshot.

string
relationships
required

The (from, type, to) triples in the snapshot. Empty only when there is no snapshot.

Array<object>

A (from, type, to) triple observed in the world subgraph.

object
count
required

Approximate occurrence count, for ranking.

integer format: int64
description

What this edge is for, verbatim from the declaration of the join that brings it — for an editor to show on hover. Null where the declaration documents nothing, and for an edge that is only observed.

string
from
required

The label of the node the relationship starts from.

string
to
required

The label of the node the relationship points to.

string
type
required

The relationship type.

string

Example generated

{
"labels": [
{
"anchor": true,
"description": "example",
"exhaustive": true,
"label": "example",
"properties": [
{
"alternateKey": true,
"description": "example",
"identity": true,
"name": "example",
"sparse": true,
"type": "example"
}
],
"realm": "example",
"sampleCount": 1
}
],
"refreshedAt": "example",
"relationships": [
{
"count": 1,
"description": "example",
"from": "example",
"to": "example",
"type": "example"
}
]
}

Not authenticated

Media typeapplication/json

A refusal carrying only a human-readable reason.

object
error
required

What went wrong, in the terms the caller can act on.

string

Example generated

{
"error": "example"
}