List Webhooks

How to query and list webhooks in Blue with filtering and pagination.


List Webhooks

The webhooks query retrieves a paginated list of your webhooks. You can also fetch a single webhook by ID using the webhook query.

Basic Example

query {
  webhooks {
    items {
      id
      uid
      name
      url
      status
      enabled
      createdAt
    }
    pageInfo {
      totalItems
      totalPages
      hasNextPage
      hasPreviousPage
    }
  }
}

Advanced Example

query ListWebhooks($filter: WebhookFilter, $skip: Int, $take: Int) {
  webhooks(filter: $filter, skip: $skip, take: $take) {
    items {
      id
      uid
      name
      url
      status
      events
      projectIds
      enabled
      metadata
      createdAt
      updatedAt
    }
    pageInfo {
      totalItems
      totalPages
      page
      perPage
      hasNextPage
      hasPreviousPage
    }
  }
}

Variables:

{
  "filter": { "enabled": true },
  "skip": 0,
  "take": 10
}

Fetch a Single Webhook

query GetWebhook($id: String!) {
  webhook(id: $id) {
    id
    uid
    name
    url
    status
    events
    projectIds
    enabled
    metadata
    createdAt
    updatedAt
  }
}

Variables:

{
  "id": "webhook-abc-123"
}

Query Parameters

webhooks Query

ParameterTypeDefaultDescription
filterWebhookFilterOptional filter to narrow results
skipInt0Number of records to skip for pagination
takeInt20Number of records to return per page

webhook Query

ParameterTypeRequiredDescription
idString!YesThe unique identifier of the webhook to retrieve

WebhookFilter

ParameterTypeRequiredDescription
enabledBooleanNoFilter by enabled/disabled status. Omit to return all webhooks.

Response Fields

Webhook

FieldTypeDescription
idID!Unique identifier for the webhook
uidString!User-friendly unique identifier
nameStringHuman-readable name for the webhook
urlString!The endpoint URL receiving webhook events
secretStringAlways null when queried (only returned at creation)
statusWebhookStatusType!Health status: HEALTHY or UNHEALTHY
events[WebhookEvent!]Array of subscribed event types
projectIds[String!]Array of workspace IDs this webhook is scoped to
enabledBooleanWhether the webhook is currently active
metadataJSONAdditional metadata associated with the webhook
createdAtDateTime!Timestamp when the webhook was created
updatedAtDateTime!Timestamp when the webhook was last updated

Pagination Fields (PageInfo)

FieldTypeDescription
totalPagesIntTotal number of pages
totalItemsIntTotal number of webhooks matching the query
pageIntCurrent page number
perPageIntNumber of items per page
hasNextPageBoolean!Whether there are more results after this page
hasPreviousPageBoolean!Whether there are results before this page

Required Permissions

Webhooks are user-scoped. You can only view webhooks that you created.

RequirementDescription
Authenticated userYou must be logged in

Error Responses

Webhook Not Found

{
  "errors": [{
    "message": "Webhook not found",
    "extensions": {
      "code": "WEBHOOK_NOT_FOUND"
    }
  }]
}

When: The webhook query is called with an ID that does not exist.

Unauthorized

{
  "errors": [{
    "message": "Unauthorized",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

When: You attempt to query a webhook that was created by another user.

Important Notes

  • The webhooks query only returns webhooks created by the authenticated user.
  • Results are ordered by creation date, newest first.
  • The secret field is always null when querying webhooks; it is only returned once at creation time.
  • The default page size is 20 items. Use skip and take to paginate through results.