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

# List Memory Conflicts

> Returns a paginated list of memory conflicts in a project

```
GET /openapi/memorylake/api/v3/workspaces/{workspaceId}/projects/{projectId}/memories/conflicts
```

When MemoryLake extracts facts from conversations, it compares new facts against existing knowledge. If a contradiction is detected, it is recorded as a **memory conflict**. Use this endpoint to list a project's conflicts, newest first, so you can surface them to users for review.

You can filter by resolution status to show only unresolved conflicts that need attention, or only resolved ones for audit purposes. For conflicts among an actor's personal facts, use [List Actor Memory Conflicts](/features/memorylake/api-reference/v3-conflicts/list-actor-conflicts) instead.

<Note>
  **Permission required:** `project:mem_list`
</Note>

### Path Parameters

<ParamField path="workspaceId" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID
</ParamField>

### Query Parameters

<ParamField query="resolved" type="boolean">
  Filter by resolution status. Pass `true` for resolved conflicts only, `false` for unresolved only. Omit to return both.
</ParamField>

<ParamField query="page_size" type="integer" default="20">
  Number of conflicts to return per page. Range: 1–100.
</ParamField>

<ParamField query="continuation_token" type="string">
  Token from a previous response to fetch the next page of results
</ParamField>

<RequestExample>
  ```bash Unresolved conflicts theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/workspaces/ws_abc123/projects/proj_def456/memories/conflicts?resolved=false&page_size=20' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```

  ```bash All conflicts theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/workspaces/ws_abc123/projects/proj_def456/memories/conflicts?page_size=50' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```
</RequestExample>

### Response

<ResponseField name="data" type="object">
  <Expandable title="Paginated conflict list">
    <ResponseField name="items" type="array">
      Array of conflict objects

      <Expandable title="Conflict object">
        <ResponseField name="id" type="string">Conflict identifier</ResponseField>
        <ResponseField name="name" type="string">Short title describing the conflict</ResponseField>
        <ResponseField name="description" type="string">Detailed explanation of the contradiction</ResponseField>
        <ResponseField name="category" type="string">Conflict category: `m2m` (fact vs. fact) or `m2d` (fact vs. document)</ResponseField>
        <ResponseField name="resolved" type="boolean">Whether the conflict has been resolved</ResponseField>
        <ResponseField name="resolve" type="object">Resolution record. Present only when the conflict has been resolved; `null` otherwise. See [Get Memory Conflict](/features/memorylake/api-reference/v3-conflicts/get-conflict) for the full structure.</ResponseField>
        <ResponseField name="stale" type="boolean">Whether an involved fact changed after the conflict was detected. Stale conflicts may no longer be accurate.</ResponseField>
        <ResponseField name="conflict_type" type="string">Conflict type: `logical` or `knowledge`</ResponseField>
        <ResponseField name="fact_ids" type="array">IDs of the facts involved in the conflict</ResponseField>

        <ResponseField name="fact_snapshots" type="array">
          Snapshots of the involved facts at detection time

          <Expandable title="Fact snapshot">
            <ResponseField name="fact_id" type="string">Fact identifier</ResponseField>
            <ResponseField name="fact_text" type="string">Fact text at detection time</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="file_chunks" type="array">
          Document excerpts cited by a fact-vs-document conflict

          <Expandable title="File chunk">
            <ResponseField name="text" type="string">The conflicting excerpt text</ResponseField>
            <ResponseField name="document_id" type="string">ID of the document this excerpt belongs to</ResponseField>
            <ResponseField name="document_name" type="string">Display name of the document</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="created_at" type="string">When the conflict was first detected</ResponseField>
        <ResponseField name="updated_at" type="string">When the conflict was last updated</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="continuation_token" type="string">Token to retrieve the next page of results. Absent when there are no more pages.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success (200) theme={null}
  {
    "success": true,
    "data": {
      "items": [
        {
          "id": "conf-abc123",
          "name": "Contradicting project deadline",
          "description": "One fact states the project deadline is March 2025; another says it was moved to June 2025.",
          "category": "m2m",
          "resolved": false,
          "resolve": null,
          "stale": false,
          "conflict_type": "logical",
          "fact_ids": ["fact-001", "fact-002"],
          "fact_snapshots": [
            {
              "fact_id": "fact-001",
              "fact_text": "Project deadline is March 2025"
            },
            {
              "fact_id": "fact-002",
              "fact_text": "Project deadline was moved to June 2025"
            }
          ],
          "file_chunks": [],
          "created_at": "2025-01-20T14:30:00Z",
          "updated_at": "2025-01-20T14:30:00Z"
        }
      ],
      "continuation_token": null
    }
  }
  ```
</ResponseExample>
