> ## 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.

# Get Tool State Timeseries

> Retrieve tool state timeseries data

Returns tool state timeseries data, such as instrument sensor readbacks. Data is organized by property name, where each property has its own arrays of timestamps and values, allowing different sampling rates per property.

<ParamField path="data_id" type="string" required>
  The data entry UUID for the tool state data
</ParamField>

<ParamField query="return_null_if_missing" type="boolean" default="false">
  If `true`, returns `null` instead of an error when no timeseries data exists for this entry
</ParamField>

<ParamField query="elapsed_seconds" type="number">
  Only return data points after this elapsed time (seconds). Useful for incremental fetching during live monitoring.
</ParamField>

<ParamField query="property_names" type="array">
  If set, only these property columns are returned. Omit to return all properties.
</ParamField>

<ParamField query="available_properties" type="boolean" default="false">
  If `true`, skip the data and return a metadata-only response listing the available properties
</ParamField>

## Response

<ResponseField name="properties" type="object">
  Mapping of property names to their timeseries data. Each key is a property name (e.g., `thickness`, `temperature`).

  <Expandable title="properties">
    <ResponseField name="relative_time_seconds" type="array">
      Array of time values relative to the start of the measurement (seconds)
    </ResponseField>

    <ResponseField name="unix_timestamp_ms" type="array">
      Array of Unix timestamps in milliseconds
    </ResponseField>

    <ResponseField name="values" type="array">
      Array of measurement values
    </ResponseField>

    <ResponseField name="units" type="string">
      Measurement unit for the values (e.g., `nm`, `C`)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="series_max_time" type="number">
  Maximum `relative_time_seconds` value across all properties
</ResponseField>

<RequestExample>
  ```python SDK theme={null}
  from atomscale import Client

  client = Client(api_key="YOUR_API_KEY")
  results = client.get(data_ids="d290f1ee-6c54-4b01-90e6-d701748f0851")
  tool_state = results[0]  # ToolStateResult
  print(tool_state.timeseries_data)
  ```

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

  response = requests.get(
      "https://api.atomscale.ai/tool-state/d290f1ee-6c54-4b01-90e6-d701748f0851/timeseries/",
      headers={"X-API-KEY": "YOUR_API_KEY"}
  )
  tool_state_data = response.json()
  ```

  ```bash cURL theme={null}
  curl "https://api.atomscale.ai/tool-state/d290f1ee-6c54-4b01-90e6-d701748f0851/timeseries/" \
    -H "X-API-KEY: YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "properties": {
      "thickness": {
        "relative_time_seconds": [0, 10, 20, 30, 40, 50],
        "unix_timestamp_ms": [1705312200000, 1705312210000, 1705312220000, 1705312230000, 1705312240000, 1705312250000],
        "values": [0, 5.2, 10.1, 15.3, 20.0, 25.1],
        "units": "nm"
      },
      "deposition_rate": {
        "relative_time_seconds": [0, 10, 20, 30, 40, 50],
        "unix_timestamp_ms": [1705312200000, 1705312210000, 1705312220000, 1705312230000, 1705312240000, 1705312250000],
        "values": [0.52, 0.49, 0.52, 0.47, 0.51, 0.50],
        "units": "nm/s"
      }
    },
    "series_max_time": 50.0
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.