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

# Update webhook (v3)

> Update name, URL, subscribedEvents, or isActive. Omit subscribedEvents to preserve the current list. isTest cannot be changed. Setting isActive=false stops delivery and pending retries.



## OpenAPI

````yaml api-reference/openapi.yaml PUT /api/v3/orders/webhooks/{webhookId}
openapi: 3.0.0
info:
  title: ContentCare API
  version: 2.0.0
  description: >
    ContentCare API provides four core services for digital content protection:

    - **Anti-AI**: Protect images from AI training

    - **Watermark Embed**: Embed invisible digital watermarks into images

    - **Watermark Extract**: Extract and verify watermarks from images

    - **AI Detection**: Detect whether an image is AI-generated

    - **Test API keys**: Keys with the `sk_test_` prefix use the same Bearer
    authentication and support order-lifecycle testing with mock responses
    without running processing services or consuming credits; test uploads
    discard file contents and do not create result files
  contact:
    name: ContentCare Support
    email: support@contentcare.ai
  license:
    name: Proprietary
    url: https://docs.contentcare.ai/legal/terms
servers:
  - url: https://api.bizmori.com
    description: Production
security: []
tags:
  - name: Anti-AI
    description: Anti-AI image protection orders
  - name: Watermark Embed
    description: Watermark embedding orders
  - name: Watermark Extract
    description: Watermark extraction orders
  - name: AI Detection
    description: AI-generated image detection orders
  - name: Orders
    description: Order query and management
  - name: Webhooks
    description: Webhook configuration and events
  - name: Reports
    description: PDF analysis reports for watermark extract and AI Detection orders
paths:
  /api/v3/orders/webhooks/{webhookId}:
    parameters:
      - in: path
        name: webhookId
        required: true
        schema:
          type: integer
          minimum: 1
    put:
      tags:
        - Webhooks
      summary: Update webhook (v3)
      description: >-
        Update name, URL, subscribedEvents, or isActive. Omit subscribedEvents
        to preserve the current list. isTest cannot be changed. Setting
        isActive=false stops delivery and pending retries.
      operationId: updateWebhookV3
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookV3UpdateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/WebhookV3Endpoint'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          description: The normalized URL already exists for this account
      security:
        - BearerAuth: []
components:
  schemas:
    WebhookV3UpdateRequest:
      allOf:
        - $ref: '#/components/schemas/WebhookUpdateRequest'
        - type: object
          properties:
            subscribedEvents:
              type: array
              minItems: 1
              uniqueItems: true
              items:
                type: string
                enum:
                  - order.antiAi.completed
                  - order.antiAi.failed
                  - order.watermarkEmbed.completed
                  - order.watermarkEmbed.failed
                  - order.watermarkExtract.completed
                  - order.watermarkExtract.failed
                  - order.aiDetection.completed
                  - order.aiDetection.failed
    WebhookV3Endpoint:
      type: object
      properties:
        webhookId:
          type: integer
        name:
          type: string
        url:
          type: string
          format: uri
        secret:
          type: string
          description: Included only on create and detail lookup
        isTest:
          type: boolean
        isActive:
          type: boolean
        subscribedEvents:
          type: array
          items:
            type: string
        lastSentAt:
          type: string
          format: date-time
          nullable: true
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    WebhookUpdateRequest:
      type: object
      required:
        - url
      properties:
        name:
          type: string
          maxLength: 100
          description: Webhook name
        url:
          type: string
          format: uri
          description: Webhook URL
          example: https://example.com/webhook
        isTest:
          type: boolean
          description: >-
            Endpoint mode. For a test API key, omission preserves test mode and
            true is allowed; false returns AUTH_FORBIDDEN. Live API keys may
            choose either mode.
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
  responses:
    Unauthorized:
      description: Authentication failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: AUTH_NOT_AUTHENTICATED
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer API key for external client access. Live keys use the `sk_`
        prefix; test keys use the `sk_test_` prefix and support order-lifecycle
        testing with mock responses without processing or credit usage.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.