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

# update or test a webhook endpoint

> Changes url, description, event_types or enabled. Enabling clears the failure count. test: true sends a ping now instead, once, unretried.



## OpenAPI

````yaml /openapi.json patch /webhooks/{id}
openapi: 3.1.0
info:
  title: Eversince API
  version: '1'
  description: >-
    Every Eversince tool as one POST call, plus the routes beside them: the tool
    list, account and keys, uploads, webhooks and models. The prose is at
    https://docs.eversince.ai.
servers:
  - url: https://eversince.ai/api/v1
security:
  - bearer: []
tags:
  - name: Discovery
    description: The tool list, the same on the MCP server, the REST API and the CLI.
  - name: Workspace
    description: Jobs, balances, settings, templates, skills and the overview.
  - name: Library
    description: >-
      Items, search, import, reading media, comments, boards, calendars, the
      brand kit and public links.
  - name: Timeline
    description: 'Video editing: timelines, clips, captions, sound, language and rendering.'
  - name: Canvas
    description: 'Still editing: canvases, slides, layers and rendering.'
  - name: Generation
    description: Image, video and audio generation, upscaling, cutouts and models.
  - name: Research
    description: 'What platforms publish: pulling and keeping posts.'
  - name: Account
    description: Balances, keys, workspaces and script sessions.
  - name: Uploads
    description: Files into the library by presigned upload or by URL.
  - name: Webhooks
    description: Job results posted to a URL as they complete.
  - name: Models
    description: Generation models and cost estimates.
paths:
  /webhooks/{id}:
    patch:
      tags:
        - Webhooks
      summary: update or test a webhook endpoint
      description: >-
        Changes url, description, event_types or enabled. Enabling clears the
        failure count. test: true sends a ping now instead, once, unretried.
      operationId: update_webhook
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                description:
                  type: string
                event_types:
                  type: array
                  items:
                    type: string
                enabled:
                  type: boolean
                test:
                  type: boolean
                workspace_id:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      id:
                        type: string
                      url:
                        type: string
                      description:
                        type: string
                      event_types:
                        type: array
                        items:
                          type: string
                        description: Empty means every event.
                      enabled:
                        type: boolean
                      consecutive_failures:
                        type: number
                      disabled_reason:
                        type: string
                      last_success_at:
                        type: string
                      last_failure_at:
                        type: string
                      created_at:
                        type: string
                  - type: object
                    properties:
                      ok:
                        type: boolean
                      status_code:
                        type: number
                      error:
                        type: string
                      duration_ms:
                        type: number
                    required:
                      - ok
                      - duration_ms
                    description: The ping's result.
        '400':
          description: 'validation_error: the message names the field.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '401':
          description: 'unauthorized: the credential did not check out.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '403':
          description: 'forbidden: the credential has no access to this.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '404':
          description: not_found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '409':
          description: conflict.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '429':
          description: 'rate_limited: Retry-After says when.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
        '500':
          description: internal_error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: number
                    required:
                      - code
                      - message
                      - status
                required:
                  - error
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        An API key (es_live_…) from Settings, under API keys, or an OAuth access
        token.

````