All requests require an API key via the
X-API-Key header. Reads accept a publishable key (pk_live_) from browser code or a secret key (sk_live_) from your backend. See Authentication for details.Overview
GET /v2/streams/points returns points.
Use orgId to narrow results to a specific organization. This endpoint is useful when your integration supports point-based streams and needs to list the point assets available for stream creation or reporting.
If your organization only creates token-based streams with rewardToken, you do not need to call this endpoint.
Endpoint
uuid
Optional point identifier.
uuid
Optional organization identifier. When provided, returns only points belonging to that organization.
string
Optional point symbol filter.
string
Optional point name filter.
Response Example
Response Fields
Point[]
Array of points matching the provided filters.
Point schema.
Important Notes
Points are only relevant for point-based streams
Points are only relevant for point-based streams
Points are used when creating streams that use
pointId as the reward source. They are not required for streams that use rewardToken.Filters are optional and combinable
Filters are optional and combinable
You can query by
id, orgId, symbol, name, or any combination supported by your integration needs.Error Handling
Missing or invalid API key
Missing or invalid API key
Status Code: 401 UnauthorizedA key that is present but invalid, inactive, or expired also returns
401, with "Invalid API key", "API key is inactive", or "API key has expired".Solution: Send a valid key on the X-API-Key header.Origin not allowed
Origin not allowed
Status Code: 403 ForbiddenPublishable keys (
pk_live_) are checked against the origin allowlist configured on the key. A request from an origin that is not on the list — including a server-side call that sends no Origin or Referer header — is rejected.Solution: Call from an allowlisted browser origin, or use a secret key (sk_live_) from your backend.Rate limit exceeded
Rate limit exceeded
Status Code: 429 Too Many RequestsUsage is metered per key, hourly and monthly. Every response carries the hourly budget in the
X-RateLimit-* headers; keys with a monthly limit also get X-Monthly-* headers. A monthly overrun returns "Monthly usage limit exceeded" instead.Solution: Back off until the window resets — hourly limits also return Retry-After — or ask the Turtle team for a higher limit. See Rate limits.Unexpected internal error
Unexpected internal error
Status Code: 500 Internal Server ErrorSolution: Retry the request and contact Turtle if the issue persists.

