Update a webhook endpoint

patch/v1/webhook-endpoints/{webhook_endpoint_id}

Change its name, URL, events, or enable/disable it. Does not change the secret.

Adding verification.score to enabled_events gives the endpoint the same permissive filter settings as POST /v1/webhook-endpoints (no band floor, no event minimums, backfill off), unless it already has filter settings, which are kept unchanged. The event fires only for plays in the endpoint's scope that reach their final score after those settings are created; past plays are never replayed. attestConfigId in the payload identifies them. Score filters are not configurable through /v1 yet.

Access

Authentication
Secret key or OAuth access token.
Scope
webhooks:write
User permission
developerAccess

Path parameters

  • webhook_endpoint_idstringRequired

Headers

  • Vojo-Organisationstring

    The organisation this request acts on (org id). Required for oauth2 callers — a missing header returns 400 organisation_header_required; an org the user cannot access (a membership or an access grant, and granted to this OAuth client) returns 403 organisation_access_denied. Secret keys are bound to one org: the header may be omitted, and if sent it must match the key's org (else 403). Every query is scoped by the resolved org, never by an id in the body.

  • Vojo-Versionstring

    Optional API version pin (a date). Overrides the version pinned on the secret key / organisation for this request. Echoed in the Vojo-Version response header. Within /v1 only additive changes ship, so most callers can omit it.

    date

Request body

at least 1 field

  • namestring

    1 to 120 characters

  • urlstring

    uri

  • enabled_eventsarray of string

    at least 1 item

  • statusstring

    One of active, inactive

Response 200

OK

  • dataobjectRequired
    Show 8 fields
    • idstringRequired
    • namestringRequired
    • urlstringRequired

      HTTPS only.

      uri

    • enabled_eventsarray of stringRequired

      Event types from the webhook catalogue (event reference). Unknown types return 422.

    • statusstringRequired

      disabled = turned off by Vojo after repeated delivery failures; set active to resume.

      One of active, inactive, disabled

    • signedbooleanRequired

      False only for legacy endpoints whose secret predates signing; roll the secret to start signing.

    • created_atstringRequired

      date-time

    • updated_atstring or nullRequired

      date-time

  • metaobjectRequired

Response headers

  • Vojo-Versionstring

    The API version (date) this response was rendered with — the request's Vojo-Version, else the key/org pin.

  • RateLimitstring

    IETF RateLimit header: remaining quota in the current window, e.g. "default";r=97;t=42.

  • RateLimit-Policystring

    IETF RateLimit-Policy header, e.g. "default";q=100;w=60. Portal OAuth clients get a higher tier.

Errors

Every error is application/problem+json. Branch on its code.

  • 400

    Malformed request: invalid JSON, a bad cursor, a missing Vojo-Organisation for an OAuth caller, or an unknown Vojo-Version.

  • 401

    Missing, invalid, expired or revoked credential.

  • 403

    The caller is authenticated but not allowed: missing scope (insufficient_scope), missing Permissions flag (permission_denied), a client/installer persona on an operator endpoint (operator_access_required), or no access to the requested org (organisation_access_denied).

  • 404

    The resource does not exist, or belongs to another organisation. Cross-org ids always 404, never 403.

  • 422

    Well-formed request that failed validation. errors[] lists each failing field.

  • 429

    Rate limit exceeded for this principal. Back off for Retry-After seconds.

  • 500

    Unexpected server failure.