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

# Ingest Multi-Channel Chunk

> Ingest a chunk with multiple channels at once

Uploads a chunk of time series data for multiple channels simultaneously. This is more efficient than making separate requests for each channel when you have data from multiple sensors at the same time points.

<ParamField body="data_id" type="string" required>
  Data ID returned from stream initialization
</ParamField>

<ParamField body="chunk_index" type="integer" required>
  Zero-based chunk index for ordering. Must be >= 0.
</ParamField>

<ParamField body="channels" type="object" required>
  Mapping of channel names to their data. Each channel contains:

  <Expandable title="channel properties">
    <ParamField body="timestamps" type="array" required>
      Array of Unix epoch timestamps in seconds
    </ParamField>

    <ParamField body="values" type="array" required>
      Array of measured values
    </ParamField>

    <ParamField body="units" type="string">
      Units for the values
    </ParamField>
  </Expandable>
</ParamField>

## Response

Returns an array of chunk responses, one for each channel.

<ResponseField name="data_id" type="string">
  The data ID for this stream
</ResponseField>

<ResponseField name="channel_name" type="string">
  The channel name that was updated
</ResponseField>

<ResponseField name="chunk_index" type="integer">
  The chunk index that was ingested
</ResponseField>

<ResponseField name="total_points" type="integer">
  Total number of data points now stored for this channel
</ResponseField>

<RequestExample>
  ```python SDK theme={null}
  from atomscale.streaming import TimeseriesStreamer

  streamer = TimeseriesStreamer(api_key="YOUR_API_KEY", points_per_chunk=100)
  streamer.push_multi(
      data_id="d290f1ee-6c54-4b01-90e6-d701748f0851",
      chunk_index=0,
      channels={
          "thickness": {
              "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
              "values": [0, 5.2, 10.1],
              "units": "nm",
          },
          "deposition_rate": {
              "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
              "values": [0.52, 0.49, 0.52],
              "units": "nm/s",
          },
      },
  )
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.atomscale.ai/metrology/stream/chunk/multi",
      headers={
          "X-API-KEY": "YOUR_API_KEY",
          "Content-Type": "application/json"
      },
      json={
          "data_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
          "chunk_index": 0,
          "channels": {
              "thickness": {
                  "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
                  "values": [0, 5.2, 10.1],
                  "units": "nm"
              },
              "deposition_rate": {
                  "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
                  "values": [0.52, 0.49, 0.52],
                  "units": "nm/s"
              }
          }
      }
  )
  results = response.json()
  ```

  ```bash cURL theme={null}
  curl -X POST "https://api.atomscale.ai/metrology/stream/chunk/multi" \
    -H "X-API-KEY: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "data_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "chunk_index": 0,
      "channels": {
        "thickness": {
          "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
          "values": [0, 5.2, 10.1],
          "units": "nm"
        },
        "deposition_rate": {
          "timestamps": [1705312200.0, 1705312210.0, 1705312220.0],
          "values": [0.52, 0.49, 0.52],
          "units": "nm/s"
        }
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  [
    {
      "data_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "channel_name": "thickness",
      "chunk_index": 0,
      "total_points": 3
    },
    {
      "data_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "channel_name": "deposition_rate",
      "chunk_index": 0,
      "total_points": 3
    }
  ]
  ```
</ResponseExample>
