Skip to main content

Authentication

Learn how to authenticate your API requests to the Stream platform.

Overview​

All API calls to Stream require authentication using your API Key Pair. Stream uses a simple but secure authentication method where you encode your credentials and include them in every request.

Getting Your API Keys​

  1. Log in to your Stream dashboard
  2. Navigate to API Settings
  3. Click Create Key Pair
  4. Store your api-key and api-secret securely
  5. Copy x-api-key to use in the APIs or you can gernerate later
Important

Your API secret should be kept secure and never exposed in client-side code or public repositories. Treat it like a password.

Authentication Methods​

Stream uses HTTP Basic Authentication with Base64 encoding of your API credentials.

Encode your API key and secret as a Base64-encoded token:

echo -n 'api-key:api-secret' | base64

Example:

echo -n '038cb769-9ce3-49da-9d52-17fd49bf07e8:6ea68e79-8756-4be8-9bd2-307314e8d12c' | base64
# Output: MDM4Y2I3NjktOWNlMy00OWRhLTlkNTItMTdmZDQ5YmYwN2U4OjZlYTY4ZTc5LTg3NTYtNGJlOC05YmQyLTMwNzMxNGU4ZDEyYw==

Using the Token​

Include the Base64-encoded token in the x-api-key header for all API requests:

curl -X POST https://stream-app-service.streampay.sa/api/v2/payment_links \
-H "x-api-key: MDM4Y2I3NjktOWNlMy00OWRhLTlkNTItMTdmZDQ5YmYwN2U4OjZlYTY4ZTc5LTg3NTYtNGJlOC05YmQyLTMwNzMxNGU4ZDEyYw==" \
-H "Content-Type: application/json" \
-d '{
"name": "Test Payment",
"amount": 100.00
}'

Using SDKs​

When using Stream SDKs, authentication is handled automatically. Simply provide your x-api-key during initialization:

TypeScript SDK​

import StreamSDK from "@streamsdk/typescript";

const client = StreamSDK.init(process.env.STREAM_API_KEY!);

Express SDK​

import { Checkout, Webhooks } from "@streamsdk/express";

app.get(
"/checkout",
Checkout({
apiKey: process.env.STREAM_API_KEY!,
// ... other config
})
);