Luciq Webhooks

Outbound HTTP POST webhooks deliver Bugs, Crashes, and APM events to a customer-configured callback URL. Requests are signed with HMAC-SHA256 using a per-webhook secret and delivered with the x-ibg-signature-256 header. Configurable per product (Bugs & Crashes or APM) and toggleable on demand from the Luciq dashboard.

Luciq Webhooks is one of 8 APIs that Instabug (Luciq) publishes on the APIs.io network, described by an AsyncAPI event-driven specification.

Tagged areas include APM Events, Bugs, Crashes, Event-Driven, and Webhooks. The published artifact set on APIs.io includes API documentation and an AsyncAPI specification.

AsyncAPI Specification

instabug-webhooks-asyncapi.yml Raw ↑
asyncapi: 2.6.0
info:
  title: Luciq Webhook Events
  description: >-
    Luciq (formerly Instabug) webhooks deliver real-time notifications about
    bug reports, crash reports, and APM events to a configured callback URL
    via HTTP POST. The webhook integration is configured per Luciq project
    from the dashboard and can forward either "Bugs & Crashes" payloads or
    "APM" payloads. Each delivery is signed with HMAC-SHA256 using a 16-64
    character alphanumeric secret bound at configuration time; verify the
    signature in the `x-ibg-signature-256` header against a SHA256 HMAC of
    the raw body to confirm the request originated from Luciq.
  version: '1.0'
  contact:
    name: Luciq Support
    url: https://docs.luciq.ai/product-guides-and-integrations/integrations/webhook
    email: [email protected]
servers:
  customerEndpoint:
    url: '{webhookUrl}'
    protocol: https
    description: >-
      Customer-configured HTTPS callback URL registered in the Luciq
      dashboard under Integrations > Webhook.
    variables:
      webhookUrl:
        description: The HTTPS endpoint that receives the POSTed payload.
defaultContentType: application/json
channels:
  /webhook:
    description: >-
      Receives Luciq event notifications via HTTP POST. The specific message
      type depends on whether the webhook is configured for "Bugs & Crashes"
      or "APM" forwarding.
    bindings:
      http:
        type: request
        method: POST
    publish:
      operationId: receiveLuciqWebhook
      summary: Receive a Luciq webhook notification
      description: >-
        Luciq POSTs a JSON payload to the configured URL whenever a forwarded
        event occurs. The request is signed with HMAC-SHA256 using the secret
        bound to the webhook; the signature is delivered in the
        x-ibg-signature-256 header.
      bindings:
        http:
          type: request
      message:
        oneOf:
          - $ref: '#/components/messages/BugReportNotification'
          - $ref: '#/components/messages/CrashReportNotification'
          - $ref: '#/components/messages/APMEventNotification'
components:
  messages:
    BugReportNotification:
      name: bugReport
      title: Bug Report Notification
      summary: A new user-reported bug was submitted via the Luciq SDK.
      description: >-
        Sent when a user submits a bug via the in-app reporter. Payload
        carries the bug title, reporter email, categorization, environment,
        and reproduction artifacts.
      contentType: application/json
      headers:
        type: object
        properties:
          x-ibg-signature-256:
            type: string
            description: HMAC-SHA256 of the raw body using the webhook secret.
      payload:
        $ref: '#/components/schemas/BugWebhookPayload'
    CrashReportNotification:
      name: crashReport
      title: Crash Report Notification
      summary: A crash or non-fatal exception was captured.
      description: >-
        Sent when Luciq receives a new crash or non-fatal exception event
        for a project with crash forwarding enabled.
      contentType: application/json
      headers:
        type: object
        properties:
          x-ibg-signature-256:
            type: string
            description: HMAC-SHA256 of the raw body using the webhook secret.
      payload:
        $ref: '#/components/schemas/CrashWebhookPayload'
    APMEventNotification:
      name: apmEvent
      title: APM Event Notification
      summary: An APM alert condition was triggered.
      description: >-
        Sent when an APM alert rule fires (network failure, screen rendering
        regression, app launch threshold, flow Apdex drop, etc.).
      contentType: application/json
      headers:
        type: object
        properties:
          x-ibg-signature-256:
            type: string
            description: HMAC-SHA256 of the raw body using the webhook secret.
      payload:
        $ref: '#/components/schemas/APMEventWebhookPayload'
  schemas:
    BugWebhookPayload:
      type: object
      required: [title, reported_at]
      properties:
        title:
          type: string
        reported_at:
          type: string
          format: date-time
        email:
          type: string
          format: email
        private_url:
          type: string
          format: uri
        categories:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        device:
          type: string
        user_steps:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              message:
                type: string
              timestamp:
                type: string
                format: date-time
        console_log:
          type: string
        attachments:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum: [image, video, file]
              url:
                type: string
                format: uri
    CrashWebhookPayload:
      type: object
      required: [exception, number, url]
      properties:
        exception:
          type: string
        number:
          type: integer
        url:
          type: string
          format: uri
        status:
          type: string
          enum: [new, in-progress, resolved, ignored]
        device:
          type: string
        memory_mb:
          type: integer
        storage_mb:
          type: integer
        battery_pct:
          type: integer
          minimum: 0
          maximum: 100
        app_version:
          type: string
        console_log:
          type: string
        user_steps:
          type: array
          items:
            type: object
        image_attachments:
          type: array
          items:
            type: string
            format: uri
    APMEventWebhookPayload:
      type: object
      required: [title, metric, application, platform]
      properties:
        title:
          type: string
        trace:
          type: string
        trigger:
          type: string
        current_value:
          type: number
        metric:
          type: string
          enum: [network_failure_rate, app_launch_time, screen_loading_time, ui_hang_rate, flow_apdex]
        application:
          type: string
        platform:
          type: string
          enum: [ios, android, react_native, flutter]
        url:
          type: string
          format: uri