> ## Documentation Index
> Fetch the complete documentation index at: https://bavlio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Re-register BaviMail webhook for the calling tenant

> Force a fresh `ensure_webhook` round-trip for the calling user. Idempotent: if BaviMail already has an active+verified webhook, returns it as `already_active` without recreating. If a previously registered webhook is dead (consecutive_failures>=5, disabled_at set, or is_active=false), it is deleted and recreated. The endpoint is scoped strictly to `current_user.id`; operators with admin support tooling use a separate path. Rate-limited to 10 requests/minute per authenticated user (JWT `sub` claim, with credential/IP fallback for unparsable or unauthenticated callers).



## OpenAPI

````yaml https://api.bavlio.com/openapi.json post /api/v1/bavimail/webhooks/re-register
openapi: 3.1.0
info:
  title: Bavlio API
  description: >-
    Outreach automation API — lead enrichment, email campaigns, LinkedIn
    automation, and AI agent. Full docs at https://docs.bavlio.com.
  version: 1.0.0
servers: []
security: []
tags:
  - name: API Keys
    description: >-
      Create, list, and revoke API keys for programmatic access. JWT
      authentication required.
  - name: credits
    description: Credit balance, cost estimates, and transaction history.
  - name: campaigns
    description: Create, manage, launch, and monitor email campaigns.
  - name: campaign-personalization
    description: AI-powered email subject and body personalization for campaigns.
  - name: email-finder
    description: Find and verify email addresses for prospects.
  - name: email-verification
    description: Validate email addresses and prune invalid entries from datasets.
  - name: sender-profiles
    description: Manage sender identity profiles for outreach.
  - name: sender-profile-chat
    description: Interactive chat for building sender profiles.
  - name: templates
    description: Email template CRUD.
  - name: suppression
    description: Do-not-contact suppression list management.
  - name: datasets
    description: Lead dataset listing, download, and updates.
  - name: user-extractions
    description: Uploaded lead file management and processing.
  - name: enrichment-chat
    description: Interactive chat for data enrichment sessions.
  - name: enrichment-processing
    description: Batch lead enrichment processing.
  - name: File Upload (CSV/Excel)
    description: Upload and preview CSV/Excel lead files.
  - name: connected-accounts
    description: LinkedIn account connections via Unipile.
  - name: linkedin-content
    description: LinkedIn post creation, scheduling, and management.
  - name: linkedin-playground
    description: Direct LinkedIn actions (profile lookup, messaging, engagement).
  - name: bavimail-proxy
    description: BaviMail domain, alias, and email management.
  - name: agent
    description: Bavi AI agent chat with SSE streaming.
  - name: notifications
    description: Notification preferences and delivery.
  - name: referral
    description: Referral code management and stats.
  - name: feedback
    description: User feedback submission.
  - name: authentication
    description: JWT token verification and user info.
  - name: Google OAuth
    description: Google OAuth login flow and access tokens.
  - name: Google Sheets OAuth
    description: Google Sheets import and access management.
  - name: stripe
    description: Stripe checkout, billing portal, and subscription status. JWT only.
  - name: users
    description: User quota and usage information.
  - name: Health
    description: Health checks and system status.
  - name: Personalization
    description: Core lead personalization engine.
  - name: Session Management
    description: Enrichment session lifecycle.
  - name: Session Processing
    description: Session data processing.
  - name: webhooks
    description: Inbound webhook handlers (Stripe, BaviMail, Unipile).
paths:
  /api/v1/bavimail/webhooks/re-register:
    post:
      tags:
        - bavimail-self-service
      summary: Re-register BaviMail webhook for the calling tenant
      description: >-
        Force a fresh `ensure_webhook` round-trip for the calling user.
        Idempotent: if BaviMail already has an active+verified webhook, returns
        it as `already_active` without recreating. If a previously registered
        webhook is dead (consecutive_failures>=5, disabled_at set, or
        is_active=false), it is deleted and recreated. The endpoint is scoped
        strictly to `current_user.id`; operators with admin support tooling use
        a separate path. Rate-limited to 10 requests/minute per authenticated
        user (JWT `sub` claim, with credential/IP fallback for unparsable or
        unauthenticated callers).
      operationId: re_register_webhook_api_v1_bavimail_webhooks_re_register_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReRegisterResponse'
      security:
        - HTTPBearer: []
components:
  schemas:
    ReRegisterResponse:
      properties:
        webhook_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Webhook Id
        url:
          type: string
          title: Url
        status:
          type: string
          title: Status
      type: object
      required:
        - webhook_id
        - url
        - status
      title: ReRegisterResponse
      description: Response model for the self-service re-register endpoint.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````