🐛 Oopsie

SDK Configuration

The full configuration reference for Oopsie.init().

Required options

OptionTypeDescription
serverUrlstringURL of your Oopsie server instance
apiKeystringProject API key from the dashboard

Widget options

Oopsie.init({
  serverUrl: '...',
  apiKey: '...',
  widget: {
    enabled: true,             // true = floating widget, false = headless
    position: 'bottom-right',  // bottom-right, bottom-left, top-right, top-left
    color: '#FF5C39',          // Primary color
    theme: 'light',            // light or dark
    text: 'Report a bug',     // Button text
    icon: true,                // Show bug icon
  },
});

User context

Inject user information that will be sent with each report:

Oopsie.init({
  // ...
  user: {
    id: 'user_123',
    email: 'user@example.com',
    name: 'John Doe',
    plan: 'pro',
  },
});

Custom metadata

Oopsie.init({
  // ...
  metadata: {
    appVersion: '2.1.0',
    environment: 'production',
  },
});

Sanitization rules

Extend the default sanitization to redact additional sensitive data:

Oopsie.init({
  // ...
  sanitize: {
    headers: ['X-Custom-Token'],
    bodyKeys: ['creditCard', 'ssn'],
  },
});

Default redacted headers: Authorization, Cookie, Set-Cookie, X-API-Key.

Default redacted body keys: password, secret, token, access_token, refresh_token, creditCard, ssn, and more.

Labels (i18n)

Override any UI label for localization:

Oopsie.init({
  // ...
  labels: {
    title: 'Signaler un bug',
    messagePlaceholder: 'Décrivez le problème...',
    submit: 'Envoyer',
    cancel: 'Annuler',
    consent: 'J\'accepte d\'envoyer mes données de navigation',
  },
});

Buffer duration

Change the rolling buffer duration (default: 5 minutes):

Oopsie.init({
  // ...
  bufferDuration: 10 * 60 * 1000, // 10 minutes
});

© 2026 Oopsie. Built by Yoan Bernabeu

Edit on GitHub