> ## 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.

# List Edges

> Retrieve edges (relationships) connected to specified entities

# List Edges

Returns edges (relationships) connected to the specified entity IDs. Use IDs obtained from `/graph/entities`.

## Request

```
GET /api/v1/graph/edges?entityIds=id1,id2,id3
```

### Headers

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

### Query Parameters

| Parameter   | Type     | Required | Description                        |
| ----------- | -------- | -------- | ---------------------------------- |
| `entityIds` | `string` | Yes      | Comma-separated entity IDs (1–100) |
| `type`      | `string` | No       | Filter by relationship type        |

## Response

```json theme={null}
{
  "edges": [
    {
      "id": "clxxx001",
      "sourceEntityId": "claaa001",
      "targetEntityId": "clbbb001",
      "type": "RELATED_TO",
      "weight": 0.85,
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-03-20T14:22:00.000Z"
    }
  ]
}
```

### Response Fields

| Field                    | Type       | Description                    |
| ------------------------ | ---------- | ------------------------------ |
| `edges`                  | `object[]` | Edge array (weight descending) |
| `edges[].id`             | `string`   | Edge ID                        |
| `edges[].sourceEntityId` | `string`   | Source entity ID               |
| `edges[].targetEntityId` | `string`   | Target entity ID               |
| `edges[].type`           | `string`   | Relationship type              |
| `edges[].weight`         | `number`   | Weight score                   |
| `edges[].createdAt`      | `string`   | Created timestamp              |
| `edges[].updatedAt`      | `string`   | Updated timestamp              |

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  # Get edges connected to specified entities
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/edges?entityIds=claaa001,clbbb001" \
    -H "Authorization: Bearer snorbe_your_api_key_here"

  # Filter by relationship type
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/edges?entityIds=claaa001&type=RELATED_TO" \
    -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/edges",
      params={"entityIds": "claaa001,clbbb001"},
      headers={"Authorization": "Bearer snorbe_your_api_key_here"},
  )
  data = resp.json()
  for edge in data["edges"]:
      print(f"{edge['sourceEntityId']} --[{edge['type']}]--> {edge['targetEntityId']} (w={edge['weight']})")
  ```

  ```typescript TypeScript theme={null}
  const params = new URLSearchParams({ entityIds: "claaa001,clbbb001" });
  const resp = await fetch(
    `https://app.snorbe.deskrex.ai/api/v1/graph/edges?${params}`,
    { headers: { Authorization: "Bearer snorbe_your_api_key_here" } },
  );
  const data = await resp.json();
  for (const edge of data.edges) {
    console.log(`${edge.sourceEntityId} --[${edge.type}]--> ${edge.targetEntityId} (w=${edge.weight})`);
  }
  ```
</CodeGroup>

## Error Responses

| HTTP Status | Code                | Description                                      |
| ----------- | ------------------- | ------------------------------------------------ |
| 400         | `BAD_REQUEST`       | entityIds is empty or contains more than 100 IDs |
| 401         | `UNAUTHORIZED`      | Invalid, expired, or missing API key             |
| 429         | `TOO_MANY_REQUESTS` | Rate limit exceeded                              |
