[Документация Yandex Cloud](../../../index.md) > [Yandex Data Streams](../../index.md) > [HTTP API, совместимый с Amazon Kinesis Data Streams](../index.md) > Методы > PutRecord

# PutRecord

Отправляет одно [сообщение](../../concepts/glossary.md#message) в [поток данных](../../concepts/glossary.md#stream-concepts).

В запросе указывается имя потока, [ключ сегмента](../../concepts/glossary.md#partition-key) и объект, содержащий данные пользователя в кодировке Base64.

Возвращает идентификатор сегмента, в который было помещено сообщение, и [порядковый номер сообщения](../../concepts/glossary.md#sequence-number).

Сообщения записываются в сегмент потока строго в том порядке, в каком отправляются.

## Запрос {#request}

Запрос содержит данные в формате JSON.

```json
{
  "Data": blob,
  "ExplicitHashKey": "string",
  "PartitionKey": "string",
  "SequenceNumberForOrdering": "string",
  "StreamName": "string"
}
```

### Параметры запроса {#request-options}

Параметр | Описание
----- | -----
`Data` | Данные пользователя.<br/><br/>**Тип**: Бинарный, кодировка Base64<br/>**Размер**: `0`-`1048576` байт данных в кодировке Base64<br/>**Обязательный**: Да
`ExplicitHashKey` | Хеш ключа сегмента.<br/>При определении сегмента для записи сообщения с помощью хеша `PartitionKey` возможно неоптимальное распределение сообщений по сегментам. Используйте этот параметр для явного определения сегмента, в который будет записано сообщение.<br/><br/>**Тип**: Строка<br/>**Возможные значения**: `0\|([1-9]\d{0,38})`<br/>**Обязательный**: Нет
`PartitionKey` | Ключ сегмента.<br/>Определяет, в какой сегмент потока будет записано сообщение.<br/><br/>**Тип**: Строка<br/>**Размер**: `1`-`256` символов.<br/>**Обязательный**: Да
`StreamName` | Имя потока данных.<br/><br/>**Тип**: Строка<br/>**Размер**: `1`-`128` символов.<br/>**Возможные значения**: `[a-zA-Z][a-zA-Z0-9-]+*(?<!-)$`<br/>**Обязательный**: Да

## Ответ {#response}

В случае успеха возвращаются HTTP-ответ с кодом 200 и данные в формате JSON.

```json
{
  "EncryptionType": "string",
  "SequenceNumber": "string",
  "ShardId": "string"
}
```

### Параметры ответа {#response-options}

Параметр | Описание
----- | -----
`EncryptionType` | Тип шифрования.<br/><br/>**Тип**: Строка<br/>**Возможные значения**: `NONE`<br/>**Обязательный**: Да
`SequenceNumber` | Порядковый номер сообщения.<br/><br/>**Тип**: Строка<br/>**Возможные значения**: `0\|([1-9]\d{0,128})`<br/>**Обязательный**: Да
`ShardId` | Идентификатор сегмента, в который было записано сообщение.<br/><br/>**Тип**: Строка<br/>**Размер**: `1`-`128` символов.<br/>**Возможные значения**: `[a-zA-Z0-9_.-]+`<br/>**Обязательный**: Да

## Ошибки {#errors}

Параметр | Описание | Код HTTP
----- | ----- | -----
`InvalidArgumentException` | Недопустимый аргумент. Дополнительные сведения смотрите в сообщении об ошибке. | 400
`ProvisionedThroughputExceededException` | Недостаточно пропускной способности для выполнения запроса. | 400
`ResourceNotFoundException` | Запрошенный ресурс не найден. | 400

Могут возникать [ошибки](../common-errors.md), общие для всех методов.