HipChat Webhooks API

Event-driven webhook delivery from HipChat rooms. Webhooks could be registered via the REST API or declared in an add-on descriptor. Each delivery included a JWT-signed signed_request query parameter that the receiving service was expected to verify. The room_message event was the primary integration pattern, with additional events covering room enter, exit, topic change, archive, notification, and file upload. The webhook surface was retired with the rest of HipChat on February 15, 2019.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hipchat-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

AsyncAPI Specification

hipchat-webhooks-asyncapi.yml Raw ↑
asyncapi: 2.6.0
info:
  title: HipChat Webhooks API
  version: '2.0'
  description: |
    Event-driven webhook deliveries from Atlassian's discontinued HipChat platform. Every webhook POST
    included a `signed_request` query parameter containing a JWT that the receiver was expected to verify
    against the shared secret negotiated at add-on installation time.

    **Status: DISCONTINUED on February 15, 2019.** Preserved here for historical reference.
  contact:
    name: Atlassian (historical)
    url: https://www.atlassian.com/migration/move-from-hipchat-to-slack
  license:
    name: Documentation reused under Atlassian Developer Terms
    url: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
  x-status: sunset
  x-sunset-date: '2019-02-15'
defaultContentType: application/json
servers:
  hipchat-cloud:
    url: hipchat-cloud
    protocol: https
    description: HipChat Cloud delivered webhook POSTs to consumer-supplied URLs (historical; no longer
      operational).
channels:
  /webhook/room_message:
    description: Triggered when a message matching the optional regex pattern is posted to a room.
    subscribe:
      operationId: onRoomMessage
      summary: Message Posted To Room
      message:
        $ref: '#/components/messages/RoomMessageEvent'
  /webhook/room_notification:
    description: Triggered when a notification is sent to a room.
    subscribe:
      operationId: onRoomNotification
      summary: Notification Sent To Room
      message:
        $ref: '#/components/messages/RoomNotificationEvent'
  /webhook/room_enter:
    description: Triggered when a user enters a room.
    subscribe:
      operationId: onRoomEnter
      summary: User Entered Room
      message:
        $ref: '#/components/messages/RoomMembershipEvent'
  /webhook/room_exit:
    description: Triggered when a user leaves a room.
    subscribe:
      operationId: onRoomExit
      summary: User Exited Room
      message:
        $ref: '#/components/messages/RoomMembershipEvent'
  /webhook/room_topic_change:
    description: Triggered when a room topic is changed.
    subscribe:
      operationId: onRoomTopicChange
      summary: Room Topic Changed
      message:
        $ref: '#/components/messages/RoomTopicChangeEvent'
  /webhook/room_archived:
    description: Triggered when a room is archived.
    subscribe:
      operationId: onRoomArchived
      summary: Room Archived
      message:
        $ref: '#/components/messages/RoomLifecycleEvent'
  /webhook/room_unarchived:
    description: Triggered when a room is restored from the archive.
    subscribe:
      operationId: onRoomUnarchived
      summary: Room Unarchived
      message:
        $ref: '#/components/messages/RoomLifecycleEvent'
  /webhook/room_deleted:
    description: Triggered when a room is permanently deleted.
    subscribe:
      operationId: onRoomDeleted
      summary: Room Deleted
      message:
        $ref: '#/components/messages/RoomLifecycleEvent'
  /webhook/room_created:
    description: Triggered when a new room is created.
    subscribe:
      operationId: onRoomCreated
      summary: Room Created
      message:
        $ref: '#/components/messages/RoomLifecycleEvent'
  /webhook/room_file_upload:
    description: Triggered when a file is uploaded to a room.
    subscribe:
      operationId: onRoomFileUpload
      summary: File Uploaded To Room
      message:
        $ref: '#/components/messages/RoomFileUploadEvent'
components:
  messages:
    RoomMessageEvent:
      name: room_message
      title: Room Message
      summary: Webhook delivery for a message posted to a room.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomMessageEnvelope'
    RoomNotificationEvent:
      name: room_notification
      title: Room Notification
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomNotificationEnvelope'
    RoomMembershipEvent:
      name: room_membership
      title: Room Membership Change
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomMembershipEnvelope'
    RoomTopicChangeEvent:
      name: room_topic_change
      title: Room Topic Change
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomTopicChangeEnvelope'
    RoomLifecycleEvent:
      name: room_lifecycle
      title: Room Lifecycle Change
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomLifecycleEnvelope'
    RoomFileUploadEvent:
      name: room_file_upload
      title: Room File Upload
      contentType: application/json
      payload:
        $ref: '#/components/schemas/RoomFileUploadEnvelope'
  schemas:
    BaseEnvelope:
      type: object
      properties:
        event: {type: string}
        webhook_id: {type: string}
        oauth_client_id: {type: string}
        item:
          type: object
    RoomMessageEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event:
            type: string
            enum: [room_message]
          item:
            type: object
            properties:
              message:
                type: object
                properties:
                  id: {type: string}
                  date: {type: string, format: date-time}
                  from:
                    type: object
                    properties:
                      id: {type: integer}
                      mention_name: {type: string}
                      name: {type: string}
                  message: {type: string}
                  type: {type: string}
                  message_format: {type: string}
                  mentions:
                    type: array
                    items: {type: object}
              room:
                type: object
                properties:
                  id: {type: integer}
                  name: {type: string}
    RoomNotificationEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event: {type: string, enum: [room_notification]}
    RoomMembershipEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event:
            type: string
            enum: [room_enter, room_exit]
          item:
            type: object
            properties:
              sender:
                type: object
                properties:
                  id: {type: integer}
                  mention_name: {type: string}
              room:
                type: object
                properties:
                  id: {type: integer}
                  name: {type: string}
    RoomTopicChangeEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event: {type: string, enum: [room_topic_change]}
          item:
            type: object
            properties:
              topic: {type: string}
              room:
                type: object
                properties:
                  id: {type: integer}
                  name: {type: string}
    RoomLifecycleEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event:
            type: string
            enum: [room_archived, room_unarchived, room_deleted, room_created]
    RoomFileUploadEnvelope:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          event: {type: string, enum: [room_file_upload]}
          item:
            type: object
            properties:
              file:
                type: object
                properties:
                  name: {type: string}
                  url: {type: string, format: uri}
                  size: {type: integer}
                  thumb_url: {type: string, format: uri}