Overview
GET /v2/streams/ returns confirmed streams. This is a public endpoint — no API key is required.
- If no query parameters are sent, the endpoint returns all confirmed streams.
- Use
idto retrieve a specific stream by its UUID. - Use
orgIdto filter results to streams belonging to a specific organization.
To display the rate a stream is currently distributing, read
estimatedLiveApr — not lastSnapshot.apr. lastSnapshot.apr is a historical value tied to its own snapshot timestamp and stays populated forever after a stream is paused or ends. See Live APR vs snapshot APR.Endpoint
Get all streams
Get streams filtered by organization
Get one stream by ID
uuid
Optional stream identifier. When provided, the endpoint filters the result set to that stream ID.
uuid
Optional organization identifier. When provided, the endpoint returns only streams belonging to that organization.
boolean
default:"false"
Include the full historical
snapshots array for each returned stream.boolean
default:"false"
Add
userCount and activeUserCount to each included snapshot object.Response Example
Response Semantics
No parameters means list all streams
No parameters means list all streams
If you omit all query parameters, the endpoint returns all confirmed streams across all organizations.
id is a filter, not a path selector
id is a filter, not a path selector
If you send
id, the endpoint still returns a streams array. The array will contain either one matching stream or be empty if no stream with that ID exists.orgId narrows results to one organization
orgId narrows results to one organization
If you send
orgId, only streams belonging to that organization are returned. You can combine orgId with id to look up a specific stream within a specific organization.Live APR vs snapshot APR
The response exposes two different APR values, and they answer two different questions.
A paused or ended stream keeps its last snapshot indefinitely, so
lastSnapshot.apr keeps returning the stream’s final rate long after it stopped distributing. Reading it as the current rate is the mistake estimatedLiveApr exists to prevent.
estimatedLiveApr is sourced from lastSnapshot.apr and is null when any of these hold:
- the stream has no snapshot yet, or the last snapshot has no
apr— for example, point-based streams; snapshotComputationPausedistrue;- the stream has ended —
endTimestampis in the past; lastSnapshot.timestampis more than 24 hours old.
Stream Fields
The response body contains astreams array. Each item in that array is a Stream object with the fields described below.
Stream[]
required
List of confirmed streams matching the provided filters.
Stream
uuid
Unique stream identifier.
integer | null
Decimal EVM chain ID for on-chain streams.
null for point-based streams that do not deploy a contract.string | null
Deployed on-chain stream contract address when available. It can be
null for point-based streams or token-based streams that are still pending confirmation.uuid | null
Optional user identifier associated with the stream when present.
uuid
Organization that owns the stream.
string | null
Admin EVM address for the stream when applicable.
integer
Stream type. Supported values are
1 (Fixed Rate), 2 (Fixed APR), 3 (Daily Budget), 4 (Airdrop), and 5 (Yield Match).datetime
Timestamp when the stream record was created in Turtle’s backend.
datetime
Timestamp of the most recent update to the stream record.
datetime
UTC start time for the stream.
datetime | null
UTC end time for the stream when configured.
string | null
Total reward amount in base units when applicable.
datetime | null
Confirmation timestamp for stream creation. It can be
null while a token-based stream is still pending on-chain creation.boolean
Whether snapshot computation is paused for the stream.
boolean
Whether merkle tree computation is paused for the stream.
boolean
Whether hash commitment updates are paused for the stream.
boolean
Whether claiming rewards is currently paused for the stream.
object
Strategy-specific configuration object for the stream.
AdapterConfig[]
Persisted adapter configuration array. Each adapter item contains a
type string and a params object.Point | null
Point metadata when the stream uses a point-based reward source.
null for token-based streams.string
Human-readable strategy name for the stream.
StreamSnapshot | null
Most recent snapshot computed for the stream, if one exists.
StreamSnapshot | null
Most recent committed snapshot for the stream, if one exists.
StreamSnapshot[]
Full snapshot history when
withSnapshots=true. Otherwise this field can be empty or omitted.SupportedToken | null
Reward-token metadata for token-based streams. This uses the public
SupportedToken shape from Get Tokens.string | null
Estimated APR the stream is currently distributing, expressed as a decimal fraction — multiply by 100 for the percentage (for example,
0.12 means 12%).Use this field, not lastSnapshot.apr, whenever you display a stream’s current rate. It is sourced from lastSnapshot.apr but only returned while the stream is actively accruing: it is null when the stream has no snapshot APR, when snapshotComputationPaused is true, when the stream has ended, or when lastSnapshot.timestamp is more than 24 hours old. A null value means no live rate is available — it does not mean 0%. See Live APR vs snapshot APR.AdapterConfig
string
Adapter type identifier.
object
Adapter-specific configuration object.
Point
See Get Points for the full Point schema and examples.
StreamSnapshot
APR-related snapshot fields are only populated for token-based streams. For point-based streams, baseApr, apr, and rewardTokenPrice are omitted from the snapshot.
datetime
Snapshot timestamp.
string
Amount distributed in the snapshot, encoded as a decimal string.
string
Base amount used for the snapshot, encoded as a decimal string.
string | null
Merkle root hash when the snapshot has one.
string | null
Transaction hash of the commit operation when available.
datetime
Timestamp when the snapshot record was created.
datetime
Timestamp of the latest update to the snapshot record.
string | null
Total value locked at snapshot time when available.
string | null
Base TVL at snapshot time when available.
string | null
Base APR computed for the snapshot before adapter adjustments, expressed as a decimal fraction — multiply by 100 for the percentage (for example,
0.05 means 5%). This is only populated for token-based streams.string | null
Effective APR computed for the snapshot after adapter adjustments, expressed as a decimal fraction — multiply by 100 for the percentage (for example,
0.05 means 5%). This is only populated for token-based streams.This is a historical value, valid as of timestamp. On lastSnapshot it keeps returning the stream’s final rate after the stream is paused or ends, so do not treat it as the current rate — use the stream-level estimatedLiveApr for that.string | null
Time-weighted-average (TWA) USD price of the reward token across the snapshot interval. This is only populated for token-based streams.
object
Snapshot-specific computed metrics.
object
Snapshot-specific custom arguments.
integer | null
Number of users represented in the snapshot when
usersCount=true.integer | null
Number of active users represented in the snapshot when
usersCount=true.Error Handling
Unexpected internal error
Unexpected internal error
Status Code: 500 Internal Server ErrorSolution: Retry the request and contact Turtle if the issue persists.

