Getting Your API Key

To send notifications, you’ll need to authenticate as an application using your API key. If you don’t have your key yet, please open a ticket in our discord channel.

Using Your API Key

Include your API key in the x-dialect-api-key header for all server-side requests:

const response = await fetch(`https://alerts-api.dial.to/v2/${appId}/subscribers`, {
  method: 'GET',
  headers: {
    'x-dialect-api-key': 'YOUR_API_KEY'
  }
});

const { subscribers } = await response.json();

Error Handling

Common Authentication Errors

401 Unauthorized: Invalid or missing API key

{
  "error": "Unauthorized"
}

403 Forbidden: Valid API key but insufficient permissions

{
  "error": "Forbidden"
}

Error Handling Example

async function sendNotificationSafely(appId: string, apiKey: string, message: any) {
  try {
    const response = await fetch(`https://alerts-api.dial.to/v2/${appId}/send`, {
      method: 'POST',
      headers: {
        'x-dialect-api-key': apiKey,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(message)
    });

    if (!response.ok) {
      const error = await response.json();
      
      switch (response.status) {
        case 401:
          throw new Error('Invalid API key. Please check your credentials.');
        case 403:
          throw new Error('Access denied. Check your app permissions.');
        default:
          throw new Error(`HTTP ${response.status}: ${JSON.stringify(error)}`);
      }
    }

    return response.json();
  } catch (error) {
    console.error('Failed to send notification:', error);
    throw error;
  }
}

Best Practices

💡 Security:

  • Store API keys securely (environment variables, secrets management)
  • Never expose API keys in client-side code
  • Use HTTPS for all API communication

💡 Error Handling:

  • Always check response status codes
  • Implement proper retry logic for transient failures
  • Log authentication errors for debugging

💡 Rate Limiting:

  • Respect API rate limits to avoid being blocked
  • Implement exponential backoff for retries