# List Contra Messages API

> Read one page of messages in a Contra conversation you take part in, oldest first. Returns the message nodes exactly as Contra sends them plus the cursor. Uses your own Contra account; upAPI stores nothing.

Category: [Social Media APIs](https://upapi.io/apis/social-media) · Last updated 2026-10-31

## How to call it

- Endpoint: `POST https://api.upapi.io/contra-list-messages.get`, key in the `X-Api-Key` header, JSON body.
- Cost: 4 weighted units per call.
- Timeout: 45 seconds.
- Cache: none; every call runs the operation.
- Try it without writing code: https://app.upapi.io/try/contra-list-messages.get

```bash
curl -X POST https://api.upapi.io/contra-list-messages.get \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{ "first": 30, "conversationId": "example", "sessionCookies": {} }'
```

## Request parameters

- `after` (string) — Opaque cursor from a previous page's endCursor.
- `docId` (string) — Override the pinned persisted-query id for this call.
- `first` (integer) — Page size.
- `proxyUrl` (string) — Exit IP pinned to this account. Omit to use the shared pool.
- `conversationId` (string, required) — Contra chat conversation id.
- `sessionCookies` (object, required) — Contra session cookies for a participant in the conversation. Your own Contra account's cookies; upAPI stores nothing.

## Response fields

- `items` (array, required)
- `elapsedMs` (integer, required)
- `endCursor` (string, required)
- `fetchedAt` (string, required)
- `itemCount` (integer, required)
- `hasNextPage` (boolean, required)
- `conversationId` (string, required)

## Example request and response

The example response is generated from the published output schema: it shows the shape and field names, not values from a recorded call.

```json
{
  "first": 30,
  "conversationId": "example",
  "sessionCookies": {}
}
```

```json
{
  "items": [
    {}
  ],
  "elapsedMs": 1,
  "endCursor": "example",
  "fetchedAt": "example",
  "itemCount": 1,
  "hasNextPage": false,
  "conversationId": "example"
}
```

## Frequently asked questions

### How much does the List Contra Messages API cost per call?

Each call spends 4 weighted units of your plan's monthly quota. Full pricing is at https://upapi.io/pricing.

### How do I authenticate to the List Contra Messages API?

Send your key in the X-Api-Key header. A free guest key is available without creating an account.

### Are List Contra Messages API responses cached?

No — every call runs the operation live; responses are not cached.

## More Social Media APIs

- [List Contra Conversations](https://upapi.io/apis/social-media/contra-list-conversations)
- [Send Contra Message](https://upapi.io/apis/social-media/contra-send-message)
- [Read Contra Job Feed](https://upapi.io/apis/social-media/contra-job-feed)
- [Search Contra Freelancers](https://upapi.io/apis/social-media/contra-discover-people)
- [Unfollow Contra Profile](https://upapi.io/apis/social-media/contra-unfollow-user)
- [Apply To Contra Job](https://upapi.io/apis/social-media/contra-apply-to-job)
- [Check Contra Session](https://upapi.io/apis/social-media/contra-check-session)
- [Follow Contra Profile](https://upapi.io/apis/social-media/contra-follow-user)
