Create graphql

Runs a GraphQL query against this organization's assertions.

POST /v1/graph/graphql

Addresshttps://api.hanzo.ai/v1/graph/graphql
MethodPOST
Operationpost_graph_graphql
AuthAuthorization: Bearer $HANZO_API_KEY

Runs a GraphQL query against this organization's assertions.

It is the one endpoint here a caller can TRAVERSE: the REST ops each answer a single question, so composing them — the entities this one points at, and what each of those resolves to — costs a request per hop with the intermediate keys held by the caller. Here that is one query and the nesting is the answer's shape.

It adds no way to ask anything new. Every field runs the SAME operation the matching REST route runs, so the tenancy, the as-of bound, the traversal bounds and the conflict rule are the ones already in force; the schema is served by introspection.

A query that cannot run answers 200 with an errors list, which is the wire every GraphQL client parses.

Request

3 fields, body application/json.

FieldInTypeRequiredDescription
operationNamebodystring—
querybodystring—
variablesbodyany—

Response

StatusBodyMeaning
2XXgraphQLOutSuccess

2XX body — 4 fields.

FieldInTypeAlwaysDescription
databodyany—
errorsbodygraphQLError[]—
errors[].messagebodystring—
errors[].pathbodystring[]—

Failure carries the platform error shape — see Errors.

Examples

hanzo graph graphql
import { Configuration, GraphApi } from 'hanzoai';

const api = new GraphApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postGraphGraphql({ operationName: "<operationName>", query: "<query>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import GraphApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = GraphApi(client).post_graph_graphql(operation_name="<operationName>", query="<query>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.GraphAPI.PostGraphGraphql(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, graph_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = graph_api::post_graph_graphql(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GraphApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new GraphApi(client).postGraphGraphql();
curl -X POST https://api.hanzo.ai/v1/graph/graphql \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "operationName": "<operationName>",
       "query": "<query>"
     }'

MCP declares no tool for graph — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.


Graph API · All Hanzo APIs · Interactive reference

Was this page useful?