> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-beta.getzep.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-beta.getzep.com/_mcp/server.

# List hyperedges

POST https://api.getzep.com/api/v4/graphs/{graph_uuid}/hyperedges/list
Content-Type: application/json

Returns the graph's hyperedges. A hyperedge is listed while it has at
least one member edge. Supported filters are node_uuids, edge_uuids and
episode_uuids: a hyperedge matches a list when any of its members does,
and must match every list supplied.

Reference: https://docs-beta.getzep.com/sdk-reference/graph/hyperedge/list

## Authentication

- `Authorization` header (required) (prefixed with ` Api-Key  `) — Type "Api-Key" followed by a space and the project API key.

## Request

### Path parameters

- `graph_uuid` (string, required) — Graph UUID

### Query parameters

- `limit` (integer, optional) — Page size
- `cursor` (string, optional) — Opaque page cursor
- `order_by` (enum, optional) — Sort key: uuid or created_at
  - Allowed values: `uuid`, `created_at`
- `order` (enum, optional) — Sort direction: asc or desc
  - Allowed values: `asc`, `desc`

### Body (application/json)

This endpoint expects a v4.ArtifactListRequest.

- `filters` (map from string to any, optional) — Filters constraining which items are returned.

## Response

### 200

OK

- `items` (list of v4.Hyperedge, optional)
- `next_cursor` (string, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `error` (v4.ErrorBody, optional)

### 401 Unauthorized Error

Unauthorized

- `error` (v4.ErrorBody, optional)

### 403 Forbidden Error

Forbidden

- `error` (v4.ErrorBody, optional)

### 404 Not Found Error

Not Found

- `error` (v4.ErrorBody, optional)

### 409 Conflict Error

Conflict

- `error` (v4.ErrorBody, optional)

## Types

### v4.Hyperedge

- `created_at` (string, optional) — The time the hyperedge was created. Every member edge shares this value.
- `edges` (list of v4.HyperedgeEdge, optional) — The member edges, ordered by uuid. Each carries only its own identity and endpoints; the shared fact and timestamps are on the hyperedge.
- `expired_at` (string, optional) — The time the fact was superseded or removed.
- `fact` (string, optional) — The natural-language fact this hyperedge represents. Every member edge carries the same fact.
- `graph_uuid` (string, optional) — The unique identifier of the graph this hyperedge belongs to.
- `invalid_at` (string, optional) — The time at which the fact stopped being true.
- `uuid` (string, optional) — The unique identifier of the hyperedge.
- `valid_at` (string, optional) — The time from which the fact is considered true.

### v4.ErrorBody

- `code` (string, optional)
- `details` (map from string to any, optional)
- `message` (string, optional)
- `param` (string, optional)
- `request_id` (string, optional)

### v4.HyperedgeEdge

- `name` (string, optional) — The name of the member edge, in upper snake case, for example FOUNDED.
- `source_node_uuid` (string, optional) — The unique identifier of the member edge's source node.
- `target_node_uuid` (string, optional) — The unique identifier of the member edge's target node.
- `uuid` (string, optional) — The unique identifier of the member edge.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "items": [
    {
      "created_at": "string",
      "edges": [
        {
          "name": "string",
          "source_node_uuid": "string",
          "target_node_uuid": "string",
          "uuid": "string"
        }
      ],
      "expired_at": "string",
      "fact": "string",
      "graph_uuid": "string",
      "invalid_at": "string",
      "uuid": "string",
      "valid_at": "string"
    }
  ],
  "next_cursor": "string"
}
```