Skip to content
RSXDocs
RSX · API · Reference

webhooks v1

GitHub App event receiver that relays repository activity (push, PRs, CI, releases) to Discord.

Current
Base URL
https://api.rsx.group/webhooks/v1
Self-grantable scopes
None. Every endpoint here needs a key issued by a platform admin.
Machine readable
openapi.json
01

admin

7 operations under /webhooks/v1/admin.

GET/webhooks/v1/admin/status

Report whether the GitHub + Discord integration is configured

Scope
webhooks:admin:status Admin-issued keys only.

Response 200Configuration status

Response of webhooksStatus

  • datarequired
    Type
    object
    Description
  • githubConfiguredrequired
    Type
    boolean
    Description
  • discordConfiguredrequired
    Type
    boolean
    Description
  • appSlugrequired
    Type
    string, or null
    Description
    GitHub App slug, for the install deep link.

Example

curl
curl "https://api.rsx.group/webhooks/v1/admin/status" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": {
    "githubConfigured": true,
    "discordConfigured": true,
    "appSlug": "string"
  }
}
GET/webhooks/v1/admin/installations

List GitHub App installations

Scope
webhooks:admin:installations Admin-issued keys only.

Response 200Installations

Response of listInstallations

  • datarequired
    Type
    array of WebhookInstallation
    Description
  • installationIdrequired
    Type
    string
    Description
  • accountLoginrequired
    Type
    string
    Description
  • accountTyperequired
    Type
    string
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • suspendedAtrequired
    Type
    string, date-time, or null
    Description
  • repoCountrequired
    Type
    integer
    Description

Example

curl
curl "https://api.rsx.group/webhooks/v1/admin/installations" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "installationId": "48291733",
      "accountLogin": "whitehill-group",
      "accountType": "Organization",
      "createdAt": "2026-10-10T12:00:00.000Z",
      "suspendedAt": "2026-10-10T12:00:00.000Z",
      "repoCount": 3
    }
  ]
}
GET/webhooks/v1/admin/repos

List repositories and their relay config

Scope
webhooks:admin:repos Admin-issued keys only.

Response 200Repositories

Response of listWebhookRepos

  • datarequired
    Type
    array of WebhookRepo
    Description
  • idrequired
    Type
    string, uuid
    Description
  • installationIdrequired
    Type
    string
    Description
  • fullNamerequired
    Type
    string
    Description
  • privaterequired
    Type
    boolean
    Description
  • enabledrequired
    Type
    boolean
    Description
    Whether events for this repo are relayed to Discord.
  • eventsrequired
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • hideBotsrequired
    Type
    boolean
    Description
    Skip activity from bot actors (dependabot, github-actions, …).
  • pingRulesrequired
    Type
    array of object
    Description
    Ping targets keyed by event + condition.
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description
  • descriptionrequired
    Type
    string, or null
    Description
    Repo description, shown in the channel topic.
  • discordChannelIdrequired
    Type
    string, or null
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • updatedAtrequired
    Type
    string, date-time
    Description
  • lastErrorrequired
    Type
    string, or null
    Description
    Current relay/permission problem, or null when healthy.
  • lastErrorAtrequired
    Type
    string, date-time, or null
    Description
  • lastOkAtrequired
    Type
    string, date-time, or null
    Description
    Last successful enable/relay.

Example

curl
curl "https://api.rsx.group/webhooks/v1/admin/repos" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "installationId": "48291733",
      "fullName": "whitehill-group/rsx-infra",
      "private": true,
      "enabled": true,
      "events": {
        "key": [
          "string"
        ]
      },
      "hideBots": true,
      "pingRules": [
        {
          "id": "string",
          "event": "workflow_run",
          "condition": "failure",
          "targets": [
            {
              "kind": null,
              "id": null
            }
          ]
        }
      ],
      "description": "string",
      "discordChannelId": "1180000000000000000",
      "createdAt": "2026-10-10T12:00:00.000Z",
      "updatedAt": "2026-10-10T12:00:00.000Z",
      "lastError": "string",
      "lastErrorAt": "2026-10-10T12:00:00.000Z",
      "lastOkAt": "2026-10-10T12:00:00.000Z"
    }
  ]
}
POST/webhooks/v1/admin/repos/configure

Enable/disable a repo and set its relayed events

Scope
webhooks:admin:repos:configure Admin-issued keys only.

Request bodyapplication/json

Request body of configureWebhookRepo

  • repoIdrequired
    Type
    string, uuid
    Description
  • enabled
    Type
    boolean
    Description
  • events
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • {key}
    Type
    array of string
    Description
  • hideBots
    Type
    boolean
    Description
  • pingRules
    Type
    array of object
    Description
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description

Response 200Updated

Response of configureWebhookRepo

  • datarequired
    Type
    WebhookRepo
    Description
  • idrequired
    Type
    string, uuid
    Description
  • installationIdrequired
    Type
    string
    Description
  • fullNamerequired
    Type
    string
    Description
  • privaterequired
    Type
    boolean
    Description
  • enabledrequired
    Type
    boolean
    Description
    Whether events for this repo are relayed to Discord.
  • eventsrequired
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • hideBotsrequired
    Type
    boolean
    Description
    Skip activity from bot actors (dependabot, github-actions, …).
  • pingRulesrequired
    Type
    array of object
    Description
    Ping targets keyed by event + condition.
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description
  • descriptionrequired
    Type
    string, or null
    Description
    Repo description, shown in the channel topic.
  • discordChannelIdrequired
    Type
    string, or null
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • updatedAtrequired
    Type
    string, date-time
    Description
  • lastErrorrequired
    Type
    string, or null
    Description
    Current relay/permission problem, or null when healthy.
  • lastErrorAtrequired
    Type
    string, date-time, or null
    Description
  • lastOkAtrequired
    Type
    string, date-time, or null
    Description
    Last successful enable/relay.

Example

curl
curl -X POST https://api.rsx.group/webhooks/v1/admin/repos/configure \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "repoId": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
  "enabled": true,
  "events": {
    "key": [
      "string"
    ]
  },
  "hideBots": true,
  "pingRules": [
    {
      "id": "string",
      "event": "workflow_run",
      "condition": "failure",
      "targets": [
        {
          "kind": "user",
          "id": "string"
        }
      ]
    }
  ]
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "installationId": "48291733",
    "fullName": "whitehill-group/rsx-infra",
    "private": true,
    "enabled": true,
    "events": {
      "key": [
        "string"
      ]
    },
    "hideBots": true,
    "pingRules": [
      {
        "id": "string",
        "event": "workflow_run",
        "condition": "failure",
        "targets": [
          {
            "kind": "user",
            "id": "string"
          }
        ]
      }
    ],
    "description": "string",
    "discordChannelId": "1180000000000000000",
    "createdAt": "2026-10-10T12:00:00.000Z",
    "updatedAt": "2026-10-10T12:00:00.000Z",
    "lastError": "string",
    "lastErrorAt": "2026-10-10T12:00:00.000Z",
    "lastOkAt": "2026-10-10T12:00:00.000Z"
  }
}
POST/webhooks/v1/admin/repos/disconnect

Delete a repo's Discord channel and disable its relay

Scope
webhooks:admin:repos:disconnect Admin-issued keys only.

Request bodyapplication/json

Request body of disconnectWebhookRepo

  • repoIdrequired
    Type
    string, uuid
    Description

Response 200Disconnected

Response of disconnectWebhookRepo

  • datarequired
    Type
    WebhookRepo
    Description
  • idrequired
    Type
    string, uuid
    Description
  • installationIdrequired
    Type
    string
    Description
  • fullNamerequired
    Type
    string
    Description
  • privaterequired
    Type
    boolean
    Description
  • enabledrequired
    Type
    boolean
    Description
    Whether events for this repo are relayed to Discord.
  • eventsrequired
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • hideBotsrequired
    Type
    boolean
    Description
    Skip activity from bot actors (dependabot, github-actions, …).
  • pingRulesrequired
    Type
    array of object
    Description
    Ping targets keyed by event + condition.
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description
  • descriptionrequired
    Type
    string, or null
    Description
    Repo description, shown in the channel topic.
  • discordChannelIdrequired
    Type
    string, or null
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • updatedAtrequired
    Type
    string, date-time
    Description
  • lastErrorrequired
    Type
    string, or null
    Description
    Current relay/permission problem, or null when healthy.
  • lastErrorAtrequired
    Type
    string, date-time, or null
    Description
  • lastOkAtrequired
    Type
    string, date-time, or null
    Description
    Last successful enable/relay.

Example

curl
curl -X POST https://api.rsx.group/webhooks/v1/admin/repos/disconnect \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "repoId": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d"
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "installationId": "48291733",
    "fullName": "whitehill-group/rsx-infra",
    "private": true,
    "enabled": true,
    "events": {
      "key": [
        "string"
      ]
    },
    "hideBots": true,
    "pingRules": [
      {
        "id": "string",
        "event": "workflow_run",
        "condition": "failure",
        "targets": [
          {
            "kind": "user",
            "id": "string"
          }
        ]
      }
    ],
    "description": "string",
    "discordChannelId": "1180000000000000000",
    "createdAt": "2026-10-10T12:00:00.000Z",
    "updatedAt": "2026-10-10T12:00:00.000Z",
    "lastError": "string",
    "lastErrorAt": "2026-10-10T12:00:00.000Z",
    "lastOkAt": "2026-10-10T12:00:00.000Z"
  }
}
GET/webhooks/v1/admin/deliveries

List recent webhook deliveries

Scope
webhooks:admin:deliveries Admin-issued keys only.

Query parameters

Query parameters of listDeliveries

  • cursor
    Type
    string
    Description
  • limit
    Type
    integer
    Description
    1 to 100 · default 50

Response 200Deliveries, newest first

Response of listDeliveries

  • datarequired
    Type
    array of WebhookDelivery
    Description
  • idrequired
    Type
    string, uuid
    Description
  • deliveryIdrequired
    Type
    string
    Description
    GitHub X-GitHub-Delivery id.
  • eventrequired
    Type
    string
    Description
  • actionrequired
    Type
    string, or null
    Description
  • repoFullNamerequired
    Type
    string, or null
    Description
  • statusrequired
    Type
    string
    Description
    posted → relayed; skipped → repo/event off; ignored → unsupported/dup; error → relay failed.one of "posted", "skipped", "ignored", "error"
  • detailrequired
    Type
    string, or null
    Description
  • atrequired
    Type
    string, date-time
    Description
  • metarequired
    Type
    object
    Description
  • cursorrequired
    Type
    string, or null
    Description

Example

curl
curl "https://api.rsx.group/webhooks/v1/admin/deliveries" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "deliveryId": "8f9a…",
      "event": "push",
      "action": "opened",
      "repoFullName": "whitehill-group/rsx-infra",
      "status": "posted",
      "detail": "string",
      "at": "2026-10-10T12:00:00.000Z"
    }
  ],
  "meta": {
    "cursor": "string"
  }
}
GET/webhooks/v1/admin/audit

List operator changes to repo relay config

Scope
webhooks:admin:audit Admin-issued keys only.

Query parameters

Query parameters of listRepoAudit

  • cursor
    Type
    string
    Description
  • limit
    Type
    integer
    Description
    1 to 100 · default 50

Response 200Audit records, newest first

Response of listRepoAudit

  • datarequired
    Type
    array of RepoAuditRecord
    Description
  • idrequired
    Type
    string, uuid
    Description
  • actorrequired
    Type
    string
    Description
  • actionrequired
    Type
    string
    Description
    one of "enabled", "disabled", "events_changed", "filters_changed", "pings_changed", "disconnected"
  • repoIdrequired
    Type
    string, uuid
    Description
  • repoFullNamerequired
    Type
    string
    Description
  • atrequired
    Type
    string, date-time
    Description
  • detailrequired
    Type
    string, or null
    Description
  • metarequired
    Type
    object
    Description
  • cursorrequired
    Type
    string, or null
    Description

Example

curl
curl "https://api.rsx.group/webhooks/v1/admin/audit" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "actor": "ada@rsx.group",
      "action": "enabled",
      "repoId": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "repoFullName": "whitehill-group/rsx-infra",
      "at": "2026-10-10T12:00:00.000Z",
      "detail": "events: 3 → 5 families"
    }
  ],
  "meta": {
    "cursor": "string"
  }
}
02

Schemas

Every named shape in this reference, as the operations above refer to it.

WebhookInstallation

WebhookInstallation

  • installationIdrequired
    Type
    string
    Description
  • accountLoginrequired
    Type
    string
    Description
  • accountTyperequired
    Type
    string
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • suspendedAtrequired
    Type
    string, date-time, or null
    Description
  • repoCountrequired
    Type
    integer
    Description

WebhookEvents

Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).

WebhookEvents

  • {key}
    Type
    array of string
    Description

WebhookRepo

WebhookRepo

  • idrequired
    Type
    string, uuid
    Description
  • installationIdrequired
    Type
    string
    Description
  • fullNamerequired
    Type
    string
    Description
  • privaterequired
    Type
    boolean
    Description
  • enabledrequired
    Type
    boolean
    Description
    Whether events for this repo are relayed to Discord.
  • eventsrequired
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • {key}
    Type
    array of string
    Description
  • hideBotsrequired
    Type
    boolean
    Description
    Skip activity from bot actors (dependabot, github-actions, …).
  • pingRulesrequired
    Type
    array of object
    Description
    Ping targets keyed by event + condition.
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description
  • descriptionrequired
    Type
    string, or null
    Description
    Repo description, shown in the channel topic.
  • discordChannelIdrequired
    Type
    string, or null
    Description
  • createdAtrequired
    Type
    string, date-time
    Description
  • updatedAtrequired
    Type
    string, date-time
    Description
  • lastErrorrequired
    Type
    string, or null
    Description
    Current relay/permission problem, or null when healthy.
  • lastErrorAtrequired
    Type
    string, date-time, or null
    Description
  • lastOkAtrequired
    Type
    string, date-time, or null
    Description
    Last successful enable/relay.

ConfigureRepo

ConfigureRepo

  • repoIdrequired
    Type
    string, uuid
    Description
  • enabled
    Type
    boolean
    Description
  • events
    Type
    WebhookEvents
    Description
    Enabled events keyed by family → enabled action keys. Atomic families use [] (present = on).
  • {key}
    Type
    array of string
    Description
  • hideBots
    Type
    boolean
    Description
  • pingRules
    Type
    array of object
    Description
  • idrequired
    Type
    string
    Description
  • eventrequired
    Type
    string
    Description
  • condition
    Type
    string
    Description
    CI conclusion, or the catalog action.
  • targetsrequired
    Type
    array of one of object, object, object, object, object
    Description

DisconnectRepo

DisconnectRepo

  • repoIdrequired
    Type
    string, uuid
    Description

WebhookDelivery

WebhookDelivery

  • idrequired
    Type
    string, uuid
    Description
  • deliveryIdrequired
    Type
    string
    Description
    GitHub X-GitHub-Delivery id.
  • eventrequired
    Type
    string
    Description
  • actionrequired
    Type
    string, or null
    Description
  • repoFullNamerequired
    Type
    string, or null
    Description
  • statusrequired
    Type
    string
    Description
    posted → relayed; skipped → repo/event off; ignored → unsupported/dup; error → relay failed.one of "posted", "skipped", "ignored", "error"
  • detailrequired
    Type
    string, or null
    Description
  • atrequired
    Type
    string, date-time
    Description

RepoAuditRecord

RepoAuditRecord

  • idrequired
    Type
    string, uuid
    Description
  • actorrequired
    Type
    string
    Description
  • actionrequired
    Type
    string
    Description
    one of "enabled", "disabled", "events_changed", "filters_changed", "pings_changed", "disconnected"
  • repoIdrequired
    Type
    string, uuid
    Description
  • repoFullNamerequired
    Type
    string
    Description
  • atrequired
    Type
    string, date-time
    Description
  • detailrequired
    Type
    string, or null
    Description