Stream
Version
This integration utilizes the Stream REST API v2.
Base URL
The base URL used for all Stream API endpoints:https://chat.stream-io-api.com/api/v2/
Authentication & Authorization
The DataGrail Stream integration connects using JWT authentication which requires an API Key and API Secret.
Authentication Details
Stream connects via API Key and API Secret. Authentication uses JWT (JSON Web Token) with HS256 encoding, where the API Secret is used to sign the token.
Publicly exposing your API credentials can allow unauthorized access to the Stream API endpoints and your Stream data by a third party. DataGrail stores your API credentials encrypted and protected.
Endpoints Utilized
DataGrail uses the following endpoints to authorize and test the connection:
Limits
Limits in Stream are calculated using the leaky
bucket algorithm. All requests that are made after rate limits have been
exceeded are throttled and an HTTP 429 Too Many Requests error is returned.
Requests succeed again after enough requests have emptied out of the bucket.
- DataGrail supports requests throttling to stay within 70-80% of specified service rate limits.
- DataGrail processes API responses with HTTP 429 status to interrupt requests, waiting and retrying (using an exponential backoff strategy).
Capabilities
Access
DataGrail's Stream integration provides Synchronous Access capabilities for the following supported identifier categories: Email and User ID.Data Interactions
For Access requests, DataGrail will take the following actions:
- Query the
/usersendpoint to retrieve user records matching the provided identifier (Email or User ID). - Export user messages via the
/users/{id}/exportendpoint. - Fetch user moderation reports via the
/moderation/user_reportendpoint. - Return all available fields and data for the matched user.
Endpoints Utilized
| Method | Endpoint | Purpose | Docs |
|---|---|---|---|
| GET | /moderation/user_report | Fetch user moderation reports | |
| GET | /users | Search for users by ID or email | |
| GET | /users/ID/export | Export user messages |
Deletion
DataGrail's Stream integration provides Asynchronous (Whole Record) Deletion capabilities for the following supported identifier categories: Email and User ID.Data Interactions
For Deletion requests, DataGrail will take the following actions:
- Submit a deletion request via the
/users/deleteendpoint withharddeletion settings for user records, calls, conversations, files, and messages. - Create a scheduling task for regular checking of deletion status via the
/tasks/{task_id}endpoint. - The deletion request will remain in processing status on the DataGrail side until Stream completes the deletion job.
Endpoints Utilized
| Method | Endpoint | Purpose | Docs |
|---|---|---|---|
| GET | /tasks/TASK_ID | Check deletion task status | |
| POST | /users/delete | Submit deletion request with hard deletion settings |
Disclaimer: The information contained in this message does not constitute as legal advice. We would advise seeking professional counsel before acting on or interpreting any material.