# Получить активность кошелька Polymarket

**API:** Data API

**Endpoint:** `GET /v1/beta/polymarket/activity`

**Tags:** Polymarket

Получает активность на рынке прогнозов. Фильтруйте рынок по значениям condition-ID, используйте start и end для временного окна, а limit и offset для пагинации. Дополнительные селекторы включают eventId, type, side, sortBy и sortDirection. Успешный ответ — массив записей активности верхнего уровня.

### Справочные цены

- Тарификация: фиксированная базовая стоимость успешного запроса.
- Справочная оценка запроса: USD 0.012.

Справочные метаданные, а не коммерческое предложение для аккаунта, гарантированная цена или лимит расходов. Кредиты ресурсов — не кредиты Felo. Итоговые списания определяются записями биллинга Felo.

## Base URL

- `https://openapi.felo.ai`

## Authentication

- `FeloBearerAuth` (http bearer, bearer format Felo API Key)
- `FeloApiKey` (apiKey in header `X-API-Key`)

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `end` | query | no | integer | Верхняя граница временного окна активности (в секундах эпохи). Опустите для значения по умолчанию (текущее время); строки новее `end` исключаются. |
| `eventId` | query | no | array | Список идентификаторов событий через запятую. Взаимоисключающий с market. |
| `excludeDepositsWithdrawals` | query | no | boolean, default: true | Исключает записи о депозитах и выводах. Значение по умолчанию `true` применяется даже тогда, когда `type` запрашивает эти записи, поэтому для получения депозитов и выводов необходимо передать `false`. |
| `limit` | query | no | integer, default: 100 | Размер страницы. Значения выше максимума ограничиваются 500. |
| `market` | query | no | array | Список идентификаторов условий через запятую. Взаимоисключающий с eventId. |
| `offset` | query | no | integer, default: 0 | Начальный индекс для пагинации. Запросы сверх лимита отклоняются с кодом 400 (без автоматического ограничения). Чтобы читать историю глубже offset 5000, разбивайте её на окна `start`/`end`: у каждого окна собственный бюджет offset. |
| `side` | query | no | string, enum: "BUY", "SELL" |  |
| `sortBy` | query | no | string, enum: "TIMESTAMP", "TOKENS", "CASH", default: "TIMESTAMP" |  |
| `sortDirection` | query | no | string, enum: "ASC", "DESC", default: "DESC" | `DESC` (по умолчанию) возвращает сначала самые новые строки, `ASC` — самые старые. Оба порядка стабильны: один и тот же запрос возвращает одни и те же строки при любых `limit`/`offset`, поэтому страницы складываются без пропусков и повторов. |
| `start` | query | no | integer | Нижняя граница временного окна активности (в секундах эпохи). Опустите или передайте `0` для окна по умолчанию (последние ~3 года); передайте положительное значение эпохи (например, `1`), чтобы получить всю историю. При `sortDirection=ASC` пропуск `start` уже читает с начала истории аккаунта (без окна по умолчанию). |
| `type` | query | no | array | Список типов активности через запятую для включения. Записи DEPOSIT и WITHDRAWAL также требуют `excludeDepositsWithdrawals=false`. |
| `user` | query | yes | string |  |

## Responses

### 200 — Успех

Headers:
- `X-Request-Id` (string) — Идентификатор запроса, который нужно указать при обращении в поддержку Felo.

**application/json**

Schema: array

```json
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Response65D835437A58_Activity"
  }
}
```

### 400 — Запрос не удалось обработать. Проверьте параметры запроса.

### 401 — Требуется действительный API-ключ Felo.

### 402 — Запрос не может быть выполнен: не выполнено требование биллинга.

### 403 — Аккаунту не разрешено выполнять эту операцию.

### 429 — Достигнут лимит запросов или расходов.

### 502 — Сервис не смог выполнить запрос.

### 503 — API или сервис биллинга временно недоступны.

### 504 — Истекло время ожидания обработки запроса.

### default — Ответ с ошибкой; сквозные ответы upstream могут использовать форматы провайдера

**application/json**

Schema:

```json
{}
```

## Schema definitions

### Response65D835437A58_Activity

`#/components/schemas/Response65D835437A58_Activity`

```json
{
  "type": "object",
  "properties": {
    "proxyWallet": {
      "$ref": "#/components/schemas/Response65D835437A58_Address"
    },
    "timestamp": {
      "type": "integer",
      "format": "int64"
    },
    "conditionId": {
      "$ref": "#/components/schemas/Response65D835437A58_Hash64"
    },
    "type": {
      "type": "string",
      "enum": [
        "TRADE",
        "SPLIT",
        "MERGE",
        "REDEEM",
        "REWARD",
        "CONVERSION",
        "DEPOSIT",
        "WITHDRAWAL",
        "YIELD",
        "MAKER_REBATE",
        "TAKER_REBATE",
        "REFERRAL_REWARD"
      ]
    },
    "size": {
      "type": "number",
      "description": "Количество токенов для этой строки. В строках `REDEEM` это количество токенов, сожжённых для результата этой строки, поэтому при погашении обеих сторон маркета возвращается по одной строке на результат вместо одной объединённой строки."
    },
    "usdcSize": {
      "type": "number",
      "description": "Сумма в USDC для этой строки. В строках `REDEEM` это выплата по результату этой строки, и она равна `0` для проигрышного результата; строки одного погашения в сумме дают общую выплату."
    },
    "transactionHash": {
      "type": "string"
    },
    "price": {
      "type": "number"
    },
    "asset": {
      "type": "string",
      "description": "ID токена, к которому относится эта строка. Заполняется в строках `REDEEM` токеном, который эта строка рассчитывает. Пусто, если строка не относится к конкретному токену."
    },
    "side": {
      "type": "string",
      "enum": [
        "BUY",
        "SELL"
      ]
    },
    "outcomeIndex": {
      "type": "integer",
      "description": "Индекс результата этой строки в массиве `outcomes` маркета, начинающийся с нуля, поэтому `outcome` всегда равен `outcomes[outcomeIndex]`. В строках `REDEEM` он определяет результат, который строка рассчитывает, а не победный результат маркета. `999` означает, что результат не удалось определить; в этом случае `outcome` пуст."
    },
    "title": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "icon": {
      "type": "string",
      "description": "Изображение маркета. Если у маркета нет собственного значка, используется изображение маркета, затем значок и изображение родительского события. Пусто в строках `CONVERSION`."
    },
    "eventSlug": {
      "type": "string"
    },
    "outcome": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "pseudonym": {
      "type": "string"
    },
    "bio": {
      "type": "string"
    },
    "profileImage": {
      "type": "string"
    },
    "profileImageOptimized": {
      "type": "string"
    },
    "isCombo": {
      "type": "boolean",
      "description": "True, если эта строка является частью комбинированной (мультимаркетной) позиции. Только флаг — детали комбинации здесь не встраиваются. conditionId строки равен combo_condition_id комбинации; передайте его в /v1/activity/combos или /v1/positions/combos через market_id, чтобы получить плечи и детали. В строках без комбинации опускается."
    }
  }
}
```

### Response65D835437A58_Address

`#/components/schemas/Response65D835437A58_Address`

```json
{
  "type": "string",
  "description": "Адрес профиля пользователя (с префиксом 0x, 40 шестнадцатеричных символов)",
  "pattern": "^0x[a-fA-F0-9]{40}$",
  "example": "0x56687bf447db6ffa42ffe2204a05edaa20f55839"
}
```

### Response65D835437A58_Hash64

`#/components/schemas/Response65D835437A58_Hash64`

```json
{
  "type": "string",
  "description": "64-символьная hex-строка с префиксом 0x",
  "pattern": "^0x[a-fA-F0-9]{64}$",
  "example": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917"
}
```
