Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

Stream

This documentation for the Stream integration describes the technical capabilities of this integration, including authorization, scopes/permissions, and utilized endpoints. For more information on how to integrate Stream, visit our connection instructions.

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.

Sensitive Credentials
Publicly exposing your API credentials can allow unauthorized access to Stream API endpoints by a third party. DataGrail stores your API credentials encrypted and protected.

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.

Credential Security

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:

  1. Query the /users endpoint to retrieve user records matching the provided identifier (Email or User ID).
  2. Export user messages via the /users/{id}/export endpoint.
  3. Fetch user moderation reports via the /moderation/user_report endpoint.
  4. Return all available fields and data for the matched user.

Endpoints Utilized


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:

  1. Submit a deletion request via the /users/delete endpoint with hard deletion settings for user records, calls, conversations, files, and messages.
  2. Create a scheduling task for regular checking of deletion status via the /tasks/{task_id} endpoint.
  3. The deletion request will remain in processing status on the DataGrail side until Stream completes the deletion job.

Endpoints Utilized


 

Need help?
If you have any questions, please reach out to your dedicated Account Manager or contact us at support@datagrail.io.

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.