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

# Datapoints

> Insert, retrieve, and delete time series data points in Cognite Data Fusion (CDF).

<Info>
  **Works with both data modeling and asset-centric projects.**

  | Your project type          | How to identify time series                                |
  | -------------------------- | ---------------------------------------------------------- |
  | **Data modeling**          | Use `instanceId` — an object with `space` and `externalId` |
  | **Asset-centric (legacy)** | Use `externalId` (string) or `id` (integer)                |

  For the full workflow including time series metadata and aggregation, see [Time series and datapoints](/api-reference/concepts/20230101/time-series-data).
</Info>

**Data points** are the values stored in a time series — each point associates a timestamp with a numerical, string, or state value. Use the datapoints endpoints to insert, retrieve, and delete data points.

## Data point types

* **Numeric** data points can be aggregated (for example, `average`, `minimum`, `maximum`) with a time granularity. See [Aggregating time series data](/dev/concepts/aggregation/index) for available functions.
* **String** data points store arbitrary text or JSON. CDF cannot aggregate string data points.
* **State** data points *(Private Beta)* represent discrete equipment states with specialized aggregations. See [State time series](/dev/concepts/resource_types/state_timeseries).

Timestamps are in milliseconds (Unix Epoch). Fractional milliseconds and leap seconds are not supported.

## Interpolation and status codes

Use the `isStep` flag on the time series to control interpolation: `isStep` means each value holds until the next measurement; otherwise values interpolate linearly between points.

Each data point can have a status code (`Good`, `Uncertain`, `Bad`). By default only `Good` points are returned. See [Status codes](/dev/concepts/reference/status_codes) for details.

## What you can do

* **Insert** data points into one or more time series.
* **Retrieve** data points by time range, with optional aggregation.
* **Retrieve latest** — get the most recent data point per time series.
* **Delete** data points within a time range.

## Rate and concurrency limits

For datapoint rate and concurrency limits, see [API rate limits](/api-reference/concepts/20230101/rate-limits).
