> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# List case notes

GET https://api-sandbox.payabli.com/api/v2/cases/{caseUuid}/messages

Lists the notes on a case, ordered oldest to newest. Cursor-paginated.

Available to both Platform and Enterprise Partners.


Reference: https://docs.payabli.com/developers/api-reference/caseManagement/list-case-notes

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: payabliApi-oas
  version: 1.0.0
paths:
  /v2/cases/{caseUuid}/messages:
    get:
      operationId: ListMessages
      summary: List case notes
      description: |
        Lists the notes on a case, ordered oldest to newest. Cursor-paginated.

        Available to both Platform and Enterprise Partners.
      tags:
        - caseManagement
      parameters:
        - name: caseUuid
          in: path
          description: The case's UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: limit
          in: query
          description: The maximum number of notes to return (default 50, max 200).
          required: false
          schema:
            type: integer
            default: 50
        - name: cursor
          in: query
          description: An opaque cursor for the next page.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: A page of notes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessagePage'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
        '403':
          description: Consent error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
        '404':
          description: The case doesn't exist.
          content:
            application/json:
              schema:
                description: Any type
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
servers:
  - url: https://api-sandbox.payabli.com/api
    description: Sandbox
  - url: https://api.payabli.com/api
    description: Production
components:
  schemas:
    RoomMessageView:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The message's identifier.
        userId:
          type: integer
          format: int64
          description: The numeric id of the user who posted the note.
        content:
          type: string
          description: The note text.
        createdAt:
          type: string
          format: date-time
          description: When the note was posted.
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: When the note was last edited. Null when never edited.
      required:
        - id
        - userId
        - content
        - createdAt
        - updatedAt
      description: A note on a case.
      title: RoomMessageView
    MessagePage:
      type: object
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/RoomMessageView'
          description: The notes on this page.
        nextCursor:
          type:
            - string
            - 'null'
          description: The cursor for the next page. Null when there are no more notes.
      required:
        - messages
        - nextCursor
      description: A cursor-paginated page of case notes, ordered oldest to newest.
      title: MessagePage
    PayabliErrorBodyResponseData:
      type: object
      properties:
        explanation:
          type: string
          description: Human-readable explanation of what happened.
        todoAction:
          type: string
          description: Suggested resolution.
      description: Object with detailed error context.
      title: PayabliErrorBodyResponseData
    PayabliErrorBody:
      type: object
      properties:
        isSuccess:
          type: boolean
          description: Always `false` for error responses.
        responseCode:
          type: integer
          description: |
            Code for the response. Learn more in
            [API Response Codes](/developers/api-reference/api-responses).
        responseText:
          type: string
          description: Error text describing what went wrong.
        responseData:
          $ref: '#/components/schemas/PayabliErrorBodyResponseData'
          description: Object with detailed error context.
      required:
        - isSuccess
        - responseText
      description: |
        Shape returned by every Payabli API error response. The `responseData`
        object carries human-readable error context.
      title: PayabliErrorBody

```

## Examples



**Response**

```json
{
  "messages": [],
  "nextCursor": null
}
```

**SDK Code**

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient();
    await client.caseManagement.listMessages("9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70", {});
}
main();

```

```python
from payabli import payabli

client = payabli()

client.case_management.list_messages(
    case_uuid="9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliPayabliApiOasClient;
import io.github.payabli.api.resources.casemanagement.requests.ListMessagesCaseManagementRequest;

public class Example {
    public static void main(String[] args) {
        PayabliPayabliApiOasClient client = PayabliPayabliApiOasClient
            .builder()
            .build();

        client.caseManagement().listMessages(
            "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
            ListMessagesCaseManagementRequest
                .builder()
                .build()
        );
    }
}
```

```csharp
using PayabliPayabliApiOas;
using System.Threading.Tasks;

namespace Usage;

public class Example
{
    public async Task Do() {
        var client = new PayabliPayabliApiOasClient();

        await client.CaseManagement.ListMessagesAsync(
            "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
            new ListMessagesCaseManagementRequest()
        );
    }

}

```

```go
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
)

func do() {
    client := client.NewClient()
    request := &payabli.ListMessagesCaseManagementRequest{}
    client.CaseManagement.ListMessages(
        context.TODO(),
        "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\CaseManagement\Requests\ListMessagesCaseManagementRequest;

$client = new PayabliClient();
$client->caseManagement->listMessages(
    '9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70',
    new ListMessagesCaseManagementRequest([]),
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/cases/9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70/messages")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/cases/9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70/messages")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```