Skip to content

Edges & Graph

Bucket edges represent relationships between nodes inside a bucket, such as supersedes, references, or part_of. Schift derives them while your content is ingested. There is no public API for adding, listing, or deleting an individual edge.

Removed 2026-08-24. The v1 routes POST, GET, and DELETE /v1/buckets/{bucket_id}/edges were documented here as deprecated but retained for internal callers. They were never registered on any API surface, so they always returned 404. They have now been deleted rather than left as documentation for something you could not call.

Edges are produced by the ingestion pipeline from the structure of what you upload: document hierarchy, cross-references, and supersession signals. Nothing needs to be posted. The relation types are fixed, and custom relation types are not supported.

Terminal window
curl "${API_BASE_URL:-https://api.schift.io}/v1/buckets/550e8400-e29b-41d4-a716-446655440000/graph?query=Which%20policy%20supersedes%20the%20old%20refund%20rule%3F&top_k=10" \
-H "Authorization: Bearer $SCHIFT_API_KEY"

Returns a subgraph centered on the semantic search results for the query.

The SDKs expose the same endpoint:

const graph = await client.bucketGraph("my-bucket", "contract terms", 10);
graph = client.buckets.graph("bucket-id", query="contract terms", top_k=10)
Section titled “For user-facing retrieval, use v2 bucket search”
Terminal window
curl -X POST ${API_BASE_URL:-https://api.schift.io}/v2/buckets/550e8400-e29b-41d4-a716-446655440000/search \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Which policy supersedes the old refund rule?",
"top_k": 8,
"options": {
"rerank": {"enabled": true}
}
}'