> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snorbe.deskrex.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Graph Data

> Retrieve knowledge graph data (nodes and edges) for a workspace

# Get Graph Data

Returns the knowledge graph data for the workspace associated with your API key. This corresponds to the 3D graph displayed on the left side of the UI.

## Request

```
GET /api/v1/graph/workspace
```

### Headers

| Header          | Required | Description                           |
| --------------- | -------- | ------------------------------------- |
| `Authorization` | Yes      | API key in `Bearer snorbe_...` format |

### Query Parameters

| Parameter               | Type      | Required | Default | Description                                |
| ----------------------- | --------- | -------- | ------- | ------------------------------------------ |
| `includeOthersEntities` | `boolean` | No       | `false` | Include other users' entities              |
| `nodeLimit`             | `integer` | No       | `50`    | Maximum number of nodes to return (1–500)  |
| `edgeLimit`             | `integer` | No       | `200`   | Maximum number of edges to return (1–1000) |

<Note>
  The workspace is automatically resolved from your API key. No `workspaceId` parameter required.
</Note>

## Response

```json theme={null}
{
  "nodes": [
    {
      "id": "clxxx001",
      "label": "Lithium-Ion Battery",
      "category": "technology",
      "kind": "entity",
      "description": "A type of rechargeable battery",
      "communityId": 3,
      "pagerank": 0.045,
      "x": 12.5,
      "y": -8.3,
      "z": 4.1
    }
  ],
  "edges": [
    {
      "id": "clyyy001",
      "source": "clxxx001",
      "target": "clxxx002",
      "type": "related_to",
      "weight": 0.85,
      "edgeType": "relationship"
    }
  ],
  "fetchedAt": "2026-04-16T10:30:00.000Z",
  "nodeCount": 50,
  "edgeCount": 120,
  "totalEntityCount": 342
}
```

### Response Fields

| Field                 | Type             | Description                              |
| --------------------- | ---------------- | ---------------------------------------- |
| `nodes`               | `object[]`       | Array of graph nodes (entities)          |
| `nodes[].id`          | `string`         | Entity ID                                |
| `nodes[].label`       | `string`         | Entity name                              |
| `nodes[].category`    | `string`         | Category (e.g., `technology`, `company`) |
| `nodes[].kind`        | `string`         | Node kind (`entity`, `ghost`)            |
| `nodes[].description` | `string`         | Entity description                       |
| `nodes[].communityId` | `number \| null` | Community cluster ID                     |
| `nodes[].pagerank`    | `number`         | PageRank score                           |
| `nodes[].x`           | `number \| null` | X coordinate (3D layout)                 |
| `nodes[].y`           | `number \| null` | Y coordinate (3D layout)                 |
| `nodes[].z`           | `number \| null` | Z coordinate (3D layout)                 |
| `edges`               | `object[]`       | Array of graph edges (relationships)     |
| `edges[].id`          | `string`         | Relationship ID                          |
| `edges[].source`      | `string`         | Source entity ID                         |
| `edges[].target`      | `string`         | Target entity ID                         |
| `edges[].type`        | `string`         | Relationship type                        |
| `edges[].weight`      | `number`         | Edge weight (0–1)                        |
| `edges[].edgeType`    | `string`         | Edge kind (`relationship`)               |
| `fetchedAt`           | `string`         | Fetch timestamp (ISO 8601)               |
| `nodeCount`           | `number`         | Number of nodes returned                 |
| `edgeCount`           | `number`         | Number of edges returned                 |
| `totalEntityCount`    | `number`         | Total entity count in workspace          |

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/workspace?nodeLimit=100&edgeLimit=500" \
    -H "Authorization: Bearer snorbe_your_api_key_here"
  ```

  ```python Python theme={null}
  import requests

  resp = requests.get(
      "https://app.snorbe.deskrex.ai/api/v1/graph/workspace",
      params={"nodeLimit": 100, "edgeLimit": 500},
      headers={"Authorization": "Bearer snorbe_your_api_key_here"},
  )
  data = resp.json()
  print(f"Nodes: {data['nodeCount']} / {data['totalEntityCount']}")
  print(f"Edges: {data['edgeCount']}")
  ```

  ```typescript TypeScript theme={null}
  const params = new URLSearchParams({ nodeLimit: "100", edgeLimit: "500" });
  const resp = await fetch(
    `https://app.snorbe.deskrex.ai/api/v1/graph/workspace?${params}`,
    { headers: { Authorization: "Bearer snorbe_your_api_key_here" } },
  );
  const data = await resp.json();
  console.log(`Nodes: ${data.nodeCount} / ${data.totalEntityCount}`);
  console.log(`Edges: ${data.edgeCount}`);
  ```
</CodeGroup>

## Error Responses

| HTTP Status | Code                | Description                          |
| ----------- | ------------------- | ------------------------------------ |
| 401         | `UNAUTHORIZED`      | Invalid, expired, or missing API key |
| 429         | `TOO_MANY_REQUESTS` | Rate limit exceeded                  |
