# Information streams

Information streams hold time-series **workload** and
**capacity** data that drives forecasting and demand-based
scheduling in Dyflexis.
- **Workload** measures the amount of work that needs to be
done in a given timeframe, for example "covers per hour" in
a restaurant, "transactions per hour" in a retail store, or
"room occupancy per day" in a hotel.
- **Staff Capacity** is the staffing needed to execute the
workload, the employees required expressed in hours or in
costs.

The transformation from workload to capacity, deriving how
much staff a given amount of work requires, can also be done
in Dyflexis, so you can push raw workload and let Dyflexis
compute the capacity it implies. Use these endpoints to
register a stream, push data points into it, and read back
what has been stored.
The `/api/information-streams/v3/...` family offers stream CRUD,
bulk reads, and a configuration-driven data-point payload.

 - [Onboarding flow](https://developer.dyflexis.com/openapi/information-streams/onboarding-flow.md): ### Onboarding flow When integrating a new information stream, follow these four phases in order: 1. **Create the stream.** Register the stream with `POST /api/information-streams/v3/streams`, declari
 - [Roll-ups](https://developer.dyflexis.com/openapi/information-streams/roll-ups.md): ### Roll-ups Roll-ups happen **bottom up**: hour → day → week → month → quarter → year. Push data at the **lowest granularity you have available** and Dyflexis aggregates it into every coarser bucket
 - [GET /api/information-streams/v3/list](https://developer.dyflexis.com/openapi/information-streams/listinformationstreams.md): **Requires scope:** `forecasting`. Returns information streams available to the authenticated token (scoped by the location selection logic). Filtering is supported via query parameters. List paramete
 - [GET /api/information-streams/v3/data-points](https://developer.dyflexis.com/openapi/information-streams/listinformationstreamdatapoints.md): **Requires scope:** `forecasting`. Returns data points for a single information stream. The timestamps specify the lower bound of the time window, where the window is `granularity` long. For example,
 - [POST /api/information-streams/v3/streams](https://developer.dyflexis.com/openapi/information-streams/createorupdateinformationstream.md): **Requires scope:** `forecasting`. Create or update the metadata for an information stream. **Important notes:** - `key` is optional. Send the key of an existing stream to update it, send a new key to
 - [POST /api/information-streams/v3/datapoint/{key}](https://developer.dyflexis.com/openapi/information-streams/storeinformationstreamdata.md): **Requires scope:** `forecasting`. Create or update one or more data points for the information stream’s **base (configured) granularity** channel. **Batching:** The request body is an array of data p
