con un clic
graphistry-rest-api
// Graphistry Hub REST API specialist for auth, upload lifecycle, URL controls, sessions, and sharing safety. Use for curl/requests endpoint guidance independent of SDK choice.
// Graphistry Hub REST API specialist for auth, upload lifecycle, URL controls, sessions, and sharing safety. Use for curl/requests endpoint guidance independent of SDK choice.
Construct and run GFQL graph queries in PyGraphistry using chain-list syntax OR Cypher strings. Covers pattern matching, hop constraints, predicates, let/DAG bindings, GRAPH constructors, and remote execution. Use when requests involve subgraph extraction, path-style matching, Cypher queries, or GPU/remote graph query workflows.
Internal maintainer skill for running, validating, and publishing eval benchmarks for this repository.
Internal maintainer skill for cutting graphistry-skills releases (changelog bump, PR merge, semver tag, and GitHub release publish).
Core PyGraphistry workflow for authentication, shaping edges/nodes/hypergraphs, and plotting. Use for first-run setup, converting tables to graphs, and producing an initial interactive graph quickly and safely.
Umbrella router for Graphistry workflows across SDK and API surfaces. Use to dispatch between Python SDK, REST API, and (future) JavaScript SDK workflows.
Select and use PyGraphistry connector and plugin workflows for graph databases, SQL/data platforms, SIEM/log sources, and layout/compute plugins. Use when requests involve Neo4j/Neptune/Splunk/Kusto/Databricks/SQL/TigerGraph and similar integrations.
| name | graphistry-rest-api |
| description | Graphistry Hub REST API specialist for auth, upload lifecycle, URL controls, sessions, and sharing safety. Use for curl/requests endpoint guidance independent of SDK choice. |
Use this skill for Graphistry REST endpoint tasks, including JWT auth, uploads, graph URL controls, sessions, and token-safe sharing.
references/hub-rest-docs-toc.md for the curated Hub REST navigation map.references/hub-rest-docs-links.tsv as the machine-checkable inventory and prefer links with status 200.https://hub.graphistry.com/docs/api/ and add an explicit inference note before using adjacent docs./api-token-auth//api-token-refresh//api-token-verify//api/v2/auth/pkey/jwt//api/v2/files//api/v2/upload/files//api/v2/upload/datasets//api/v2/datasets/?limit=100/api/v2/upload/datasets//api/v2/datasets/{dataset_id}/GET /api/v2/generate/single-use-url/?username=<username>&dataset_id=<dataset_id>GET /api/v2/logout-user/username/<username>//api/experimental/viz/sessions//api/experimental/viz/sessions/{session_id}//api/v2/o/<org>/functions/gfql//api/v2/o/<org>/functions/python//api/v2/o/<org>/run/gfql/<uuid_or_alias>/api/v2/o/<org>/run/python/<uuid_or_alias>/healthcheck//ht//healthz/streamgl-viz/health/pivot/health/streamgl-sessions/health/streamgl-gpu/primary/health/streamgl-gpu/secondary/cpu/health/streamgl-gpu/secondary/gpu/healthexport GRAPHISTRY_* lines and avoid quoted assignment values./api/v2/upload/datasets/ line./api/v2/upload/datasets/ examples, always include metadata (use {} when no custom metadata is needed)./api/v2/files/, /api/v2/upload/files/, /api/v2/upload/datasets/ in order.nodes/json, edges/json, nodes/csv, edges/csv, nodes/parquet, edges/parquet, nodes/orc, edges/orc, nodes/arrow, edges/arrow./functions + /run) and ad-hoc SDK GFQL flows (no generic REST query endpoint)./api/v2/files/?limit=100, created_at, and a client-side age filter./api/v2/files/?limit=100, ownership field author, and a do-not-invent endpoint warning./functions/... endpoints for named-endpoint definition lifecycle and /run/... endpoints for execution.Use these compact patterns when prompts closely match.
export GRAPHISTRY_HOST=${GRAPHISTRY_HOST:-https://hub.graphistry.com}
export GRAPHISTRY_USERNAME=${GRAPHISTRY_USERNAME:?set GRAPHISTRY_USERNAME}
export GRAPHISTRY_PASSWORD=${GRAPHISTRY_PASSWORD:?set GRAPHISTRY_PASSWORD}
GRAPHISTRY_TOKEN="$(curl -sS -X POST -H 'Content-Type: application/json' -d "{\"username\":\"${GRAPHISTRY_USERNAME}\",\"password\":\"${GRAPHISTRY_PASSWORD}\"}" "${GRAPHISTRY_HOST%/}/api-token-auth/" | jq -r '.token')"
curl -sS -H "Authorization: Bearer ${GRAPHISTRY_TOKEN}" "${GRAPHISTRY_HOST%/}/api/v2/files/"
# /api/v2/upload/datasets/ payload fragment with encodings
curl -sS -X POST -H "Authorization: Bearer ${GRAPHISTRY_TOKEN}" -H 'Content-Type: application/json' \
-d '{"metadata":{},"node_encodings":{"bindings":{"node":"id","node_color":"risk","node_size":"score"}},"edge_encodings":{"bindings":{"source":"src","destination":"dst","edge_color":"etype"}}}' \
"${GRAPHISTRY_HOST%/}/api/v2/upload/datasets/"
# first-render URL tweak: append &play=0 (or &linLog=true)
collections should be a URL encoded JSON array value. Use the exact phrase URL encoded.whitespace.collections=%5B%22teamA%22%2C%22fraud%22%5D.https://hub.graphistry.com/docs/api/experimental/rest/sessions/ documents the flow.graph.html?dataset=<dataset_id>.graph.html?dataset=<dataset_id>&session=<session_id>.Authorization: Bearer; do not put tokens in URL params.UPLOAD_JSON="$(curl -sS -X POST -H "Authorization: Bearer ${GRAPHISTRY_TOKEN}" -H 'Content-Type: application/json' -d '{"metadata":{},"node_encodings":{"bindings":{"node":"id"}},"edge_encodings":{"bindings":{"source":"src","destination":"dst"}}}' "${GRAPHISTRY_HOST%/}/api/v2/upload/datasets/")" DATASET_ID="$(jq -r '.dataset_id // .id' <<<"${UPLOAD_JSON}")"
echo "${GRAPHISTRY_HOST%/}/graph/graph.html?dataset=${DATASET_ID}"
GET /api/v2/generate/single-use-url/?username=<username>&dataset_id=<dataset_id> (availability may be deployment-specific).GET /api/v2/logout-user/username/<username>/ when needed.POST /api/v2/auth/pkey/jwt/ using Authorization: PersonalKey <id>:<secret>.org_name) in auth context.Authorization: Bearer <jwt>.https://hub.graphistry.com/docs/api/./api/v2/upload/datasets/ using node_encodings.bindings and edge_encodings.bindings.&play=0 (or &linLog=true).collections, use a URL encoded JSON value and strip whitespace before encoding.https://hub.graphistry.com/docs/api/experimental/rest/sessions/ is the workflow reference.https://hub.graphistry.com/graph/graph.html?dataset=<dataset_id>.https://hub.graphistry.com/graph/graph.html?dataset=<dataset_id>&session=<session_id>.Authorization: Bearer headers; never use URL token params./docs/api/experimental/rest/sessions/ is the reference path.graph.html?dataset=<dataset_id>.graph.html?dataset=<dataset_id>&session=<session_id>./docs/api/2/rest/health/./healthcheck/, /ht/, /healthz./streamgl-viz/health, /pivot/health, /streamgl-sessions/health./streamgl-gpu/primary/health, /streamgl-gpu/secondary/cpu/health (optional /secondary/gpu/health is heavier).graph.html URL controls./api/v2/o/<org>/functions/{gfql|python}/... and /api/v2/o/<org>/run/{gfql|python}/.....gfql() with chain-lists, Cypher strings, or Let/DAG, plus Python dataframe logic), route to pygraphistry / pygraphistry-gfql; do not invent generic endpoints like /api/v2/gfql/query.https://hub.graphistry.com/graph/graph.html?dataset=<dataset_id>&play=0&bg=%23000000&linLog=true&showCollections=true&info=false&pointsOfInterestMax=0&collections=%5B%7B%22name%22%3A%22risk%22%7D%5D&collectionsGlobalNodeColor=00FF00collections whitespace-free before URL encoding.collectionsGlobalNodeColor/collectionsGlobalEdgeColor for non-collection fallbacks./api/v2/files//api/v2/upload/files//api/v2/upload/datasets//api/v2/upload/datasets/ with node_encodings.bindings + edge_encodings.bindings.node_color, node_size, edge_color, source, destination.&play=0 (or &linLog=true).nodes/json, edges/jsonnodes/csv, edges/csvnodes/parquet, edges/parquetnodes/orc, edges/orcnodes/arrow, edges/arrow/api/v2/upload/files/ then /api/v2/upload/datasets/..gfql(...) / gfql_remote(...)) — supports chain-list, Cypher strings, and Let/DAG bindings./api-token-auth/, /api/v2/upload/datasets/)./api/v2/gfql/query.graph.html?dataset=<dataset_id> (optionally &session=<session_id>), keep JWT out of URL params./api-token-auth/) and call GET /api/v2/files/?limit=100 with pagination.created_at from each result row.created_at <= now-90d.file_id, name, created_at for review.GET /api/v2/files/?limit=100 (paginate).author (and deployment-specific mappings to username if available).GET /api/v2/datasets/?limit=100 for dataset ownership context.GET /api/v2/users/ without a private admin API contract.https://hub.graphistry.com/docs/api/ and escalate to support/deployment owner if needed./api/v2/upload/datasets/ with required metadata, node_encodings, and edge_encodings.POST /api/v2/share/link/ body: {"obj_pk":"<dataset_id>","obj_type":"dataset","mode":"private","notify":false,"message":"","invited_users":[]}.{"email":"user@example.com","action":"10"} (10 view, 20 edit).public when sharing entitlements are unavailable./api/v2/o/<org>/functions/{gfql|python}/..../api/v2/o/<org>/run/{gfql|python}/....Use Adapter A.
/api-token-auth/ (or /api/v2/auth/pkey/jwt/ for PersonalKey flow)./api-token-refresh/ before access-token expiry./api-token-verify/ and check clock skew.Authorization: Bearer <token> on protected calls and log HTTP status/body.Use Adapter B for snippet form or Adapter I for compact bullet form.
https://hub.graphistry.com/graph/graph.html?dataset=<dataset_id>.token=).Authorization: Bearer <token>.play, linLog, scalingRatio, pointsOfInterestMax, pointSize, showCollections, info, collectionsGlobalNodeColor, collectionsGlobalEdgeColor.collections should be a URL encoded JSON value.collections=%5B%22teamA%22%2C%22fraud%22%5D.https://hub.graphistry.com/docs/api/experimental/rest/sessions/.graph.html?dataset=<dataset_id>.graph.html?dataset=<dataset_id>&session=<session_id>./api/v2/query, /api/v2/graph/query, /api/v2/render, /api/v2/graphql./api/v2/gfql/query claims)./functions/... for definition lifecycle and /run/... for execution./api/v2/share/link/), explicitly label the uncertainty and advise tenant verification.