API Key Authentication
BrowserTest SDK uses API key authentication for all requests. You need a valid API key to use any SDK features.
Getting Your API Key
- Visit BrowserTest Dashboard
- Sign up or log in to your account
- Navigate to the API Keys section
- Generate a new API key
Keep your API key secure! Never commit it to version control or share it publicly.
Initializing the SDK
import { BrowserTest } from 'browsertest-sdk';
const bt = new BrowserTest({
apiKey: 'your-api-key-here'
});
Environment Variables
Always use environment variables for API keys:
// .env file
BROWSERTEST_API_KEY=your-api-key-here
// In your code
const bt = new BrowserTest({
apiKey: process.env.BROWSERTEST_API_KEY
});
Configuration Options
const bt = new BrowserTest({
apiKey: process.env.BROWSERTEST_API_KEY,
baseUrl: 'https://api.browsertest.in', // Optional: defaults to production API
timeout: 30000, // Request timeout in milliseconds
retries: 3 // Number of retries for failed requests
});
Testing Authentication
// Test if your API key is valid
const isConnected = await bt.testConnection();
console.log('Authentication:', isConnected ? '✅ Valid' : '❌ Invalid');
Error Handling
The SDK throws specific errors for authentication issues:
try {
const result = await bt.screenshot.take({ url: 'https://example.com' });
} catch (error) {
if (error.name === 'BrowserTestAuthError') {
console.log('Invalid API key or authentication failed');
} else if (error.name === 'BrowserTestQuotaError') {
console.log('Quota exceeded - check your plan limits');
}
}
Rate Limits & Quotas
Each API key has associated quotas based on your plan:
- Starter: 1,000 screenshots/month, 100 agentic tests/month
- Pro: 10,000 screenshots/month, 500 agentic tests/month
- Enterprise: Custom limits
Checking Usage
const usage = await bt.getUsage();
console.log('Current plan:', usage.plan);
console.log('Screenshots used:', usage.usage.screenshot.used);
console.log('Screenshots remaining:', usage.usage.screenshot.remaining);
console.log('Agentic tests used:', usage.usage.agentic.used);
console.log('Agentic tests remaining:', usage.usage.agentic.remaining);
API Key Security Best Practices
- Never commit API keys to version control
- Use environment variables in production
- Rotate keys regularly for security
- Use different keys for different environments (dev/staging/prod)
- Monitor usage to detect unauthorized access
Multiple Environments
// Different keys for different environments
const config = {
development: process.env.BROWSERTEST_DEV_KEY,
staging: process.env.BROWSERTEST_STAGING_KEY,
production: process.env.BROWSERTEST_PROD_KEY
};
const bt = new BrowserTest({
apiKey: config[process.env.NODE_ENV || 'development']
});