Hund API (v1)

Download OpenAPI specification:Download

Welcome to the Hund REST API v1 documentation! If you would like to send us feedback on this API, send us an email or leave an issue on our api-specification GitHub repository.

Base URL

The base URL for the Hund API is of the following form: https://{domain}/api/v1, where domain is a status page or global dashboard domain, or the generic api.hund.io. Accessing the API through any of these domains will only show objects accessible from that domain.

Status Page Domain

When using the domain of a particular status page, only objects viewable from that status page will be available from the API on that domain. This includes Groups, Components, and their Issues, as well as Watchdogs used by those Components.

Only API keys with sufficient permissions for the given status page may use this API.

Global Dashboard Domain

When using the domain of the global dashboard, all objects across your entire account are visible, up to any Privacy Control the API key's user is subject to.

Note: since a shared Component will belong to multiple Groups across your status pages, the group field of Component does not exist in this context, and cannot be set. Thus, a specific status page API must be used to change the structure of that status page's Groups.

Only API keys with sufficient global permissions may use this API.

Generic Domain (api.hund.io)

When using the generic api.hund.io domain, either of the above described APIs are accessible, depending on the value of the header Hund-Context. The value of this header should be either be a StatusPage ObjectId, or the string global. The API key section of the dashboard will list the valid StatusPage IDs, in case you would prefer to access the API via the generic domain. By default, the global context is assumed.

Note: if your account uses a single status page, we recommend using your specific status page domain instead of this generic one for simplicity.

As above, whether a particular context is accessible from this domain depends on the permissions granted to the given API key.

Authentication

Hund uses API keys to facilitate authentication. These keys can be given in a couple different formats, described below. API keys are created from the dashboard (via the Account section, clicking Manage API Keys on your account page), and each is linked to the specific user that created it. API keys can be given lesser or equivalent permissions to the linked user.

basic

This API supports HTTP Basic Authentication, with the API key given as the username. No password should be given.

Security Scheme Type: HTTP
HTTP Authorization Scheme: basic

bearer

The API supports token authentication via the Authorization: Bearer header.

Security Scheme Type: HTTP
HTTP Authorization Scheme: bearer
Bearer format: ^[A-Za-z0-9_]+$

Internationalization (I18n)

Some fields in this API can be displayed differently on your status page based on the language requested by the user. These fields are marked with type i18n-string, and as such can be either a string or object (with IETF BCP 47 language tag keys and string values; e.g. {"en": "Hello!", "de": "Hallo!", "pt-BR": "Olá!"}), depending on the value of the Accept-Language header.

Given an Accept-Language header value of *, values of type i18n-string will be the full object of translations. If a translation does not exist for the requested language, the Status Page Default Language is used as a fallback.

Similarly, when sending values of type i18n-string in POST or PUT requests, the Accept-Language header will dictate the particular language given strings are in. Again, to set the entire object of translations at once requires setting Accept-Language: *. Without this header, the Status Page Default Language is assumed to be the language of any given i18n-strings.

A Status Page's Default Language can be changed at any time from the "Settings > Localization" section of the dashboard.

Errors

Our API returns traditional HTTP response codes to describe the status of a response. Thus, 2xx codes denote success, 4xx codes denote an error on the part of the user, and 5xx codes denote a backend server error (these are rare, and monitored internally).

User errors (4xx) will return a vnd.error object, which contains a more descriptive error message, as well as the request ID, which should be supplied in any support requests concerning particular requests you have made.

If a resource returns a specific success/error code for some reason, it will be documented within that particular resource. There are some general error codes, however, that you may encounter within any resource:

Code Description
401 (Unauthorized) A valid API key was not given.
403 (Forbidden) The given API key does not have permission to access the requested resource.
404 (Not Found) The requested HTTP verb/path combination does not exist.
429 (Too Many Requests) You are making too many requests too quickly. Try using some form of backoff (Fibonacci or exponential are good choices) if you must make large batches of requests.
5xx (Server Errors) Hund has encountered some form of backend error. These errors are uncommon, and are automatically reported to our staff.

Request IDs

Every request made against the Hund API is logged with a unique request ID, which is returned in the response header Request-Id. When making a support request concerning a specific API request, this ID should be supplied for fastest possible resolution.

Expandable Fields

Certain ID fields returned in API objects may be expanded to the full referenced object in the response by requesting expansion as part of the request query parameters. These fields are marked in this documentation as "expandable: true."

To request expansion for an expandable field, a dot-delimited path to that field must be given in the expand array query parameter (i.e. one or more expand[] query parameters).

For example, to expand the watchdog field of GET /components/{id} would require the query string expand[]=watchdog. If we wanted to accomplish the same expansion for the GET /components index, we must use the path data.watchdog instead, since the index returns a PagedArray, whose data field contains the actual objects on the given page.

As a more complex example, say we are requesting GET /issues, the Issue index; and, we want to expand each Watchdog and Group for each Component in each Issue. Respectively, the two paths required are thusly data.components.data.watchdog and data.components.data.group, which gives us the query parameter fragment expand[]=data.components.data.watchdog&expand[]=data.components.data.group.

Note: An expansion path may only have up to four segments, to limit excessive expansion depth.

Field Projection

For cases where only a fraction of the returned fields of a response is desired, the project[] query parameter may be used. This parameter can greatly speed up response times for large indexes, especially when only a portion of the returned data will be used.

Similar to the expand[] parameter, each project[] parameter expects a dot-delimited path describing each field that should be returned in the response. To expand fields contained within a PagedArray, data must be included in the path to step through each element of the array.

For example, to request only the name and components.data.name fields from the GET /groups index, which will return only Group and Component names, we can add the following project[] parameters: project[]=data.name&project[]=data.components.data.name. Again, similar to expand[], the Group index returns a PagedArray, and so data must prefix each parameter, to project over the elements of the data field for both the groups, and the PagedArrays of Components within each Group.

The resulting response will contain a PagedArray of Groups with only id, type, and name fields, as well as the PagedArray of components, each also containing only id, type, and name fields.

Note: Certain essential fields, like the properties of PagedArrays (has_more, total_count, data, etc.), and fields like id and type, are always projected into responses, and cannot be suppressed.

Hypermedia (HAL) Support

To facilitate discoverability, as well as compatibility with the existing hypermedia API software ecosystem, the Hund API supports HAL, a hypermedia API standard. Both API and HTML UI links are supplied by the various endpoints of this API.

HAL Directory

The root of the API (GET https://{domain}/api/v1) can be requested to retrieve a HAL directory with links to the various endpoints of the API. The Hund API should work with most HAL-compliant hypermedia clients (e.g. hyperclient for Ruby).

HAL Variants

The Hund API supports a few (unofficial) variants for rendering HAL links:

  • standard: Both _links and embedded record properties are stored under nested _embedded keys in the root object. This is "vanilla" HAL, and will have the best support with HAL-compliant hypermedia clients.
  • links-only: Only _links from embedded records will appear under nested _embedded keys in the root object. This leaves data in its usual place as described by this API documentation. For example, for a root Group object, there exists a components field, which under this variant would contain the actual Component objects in a PagedArray. However, any _links property associated with each member of components would be found from the root at _embedded.components._embedded.data._links instead of within each Component object. This is the usual location for _links in HAL, though normally the data would go with it as well. Compatibility with hypermedia clients is not guaranteed.
  • compact: Objects will not embed data nor _links under _embedded in the root object. Instead, _links is always a direct property of any object, regardless of nesting. For example, for a root Group object, there exists a components field, which under this variant, each Component in components.data would contain its own _links property. This is a highly compacted variant of HAL, which is more reminiscent of non-HAL APIs. Compatibility with hypermedia clients is not guaranteed nor expected.

The default variant returned by the API is links-only. To request the API to return HAL in one of these variants, simply supply an Accept header with value application/hal+json;variant={variant}, where {variant} is one of the variants listed above.

Variant Examples

standard

{
  "id": "5e16ee938fbb652ab878caa9",
  "type": "group",
  "name": "Regions",
  "created_at": 1543958163,
  "updated_at": 1543958564,
  "description": "My **description**",
  "description_html": "<p>My <strong>description</strong></p>",
  "collapsed": false,
  "position": 3,
  "_links": {
    "self": { "href": "..." },
    "update-form": { "href": "..." }
  },
  "_embedded": {
    "components": {
      "type": "paged_array",
      "total_count": 2,
      "has_more": false,
      "_links": {
        "self": { "href": "..." },
        "create": { "href": "..." },
        "next": { "href": "..." },
        "prev": { "href": "..." },
        "beginning": { "href": "..." },
        "end": { "href": "..." }
      },
      "_embedded": {
        "data": [
          {
            "id": "5e16ee938fbb652ab878cabb",
            "type": "component",
            "group": "5e16ee938fbb652ab878caa9",
            "name": "Singapore",
            "created_at": 1543958163,
            "updated_at": 1543958164,
            "last_event_at": 1580352001,
            "exclude_from_global_uptime": false,
            "exclude_from_global_history": false,
            "description": "My **description**",
            "description_html": "<p>My <strong>description</strong></p>",
            "percent_uptime": 100,
            "watchdog": "5e06ee938fbb652ab878cab9",
            "_links": {
              "self": { "href": "..." },
              "self-view": { "href": "..." },
              "update-form": { "href": "..." }
            }
          },
          {
            "id": "5e16ee938fbb652ab878cacc",
            "type": "component",
            "group": "5e16ee938fbb652ab878caa9",
            "name": "Amsterdam",
            "created_at": 1543958100,
            "updated_at": 1543958169,
            "last_event_at": 1580353042,
            "exclude_from_global_uptime": false,
            "exclude_from_global_history": false,
            "description": "My **description**",
            "description_html": "<p>My <strong>description</strong></p>",
            "percent_uptime": 100,
            "watchdog": "5e16ee938fbb652ab878cac9",
            "_links": {
              "self": { "href": "..." },
              "self-view": { "href": "..." },
              "update-form": { "href": "..." }
            }
          }
        ]
      }
    }
  }
}
{
  "id": "5e16ee938fbb652ab878caa9",
  "type": "group",
  "name": "Regions",
  "created_at": 1543958163,
  "updated_at": 1543958564,
  "description": "My **description**",
  "description_html": "<p>My <strong>description</strong></p>",
  "collapsed": false,
  "position": 3,
  "components": {
    "type": "paged_array",
    "total_count": 2,
    "has_more": false,
    "data": [
      {
        "id": "5e16ee938fbb652ab878cabb",
        "type": "component",
        "group": "5e16ee938fbb652ab878caa9",
        "name": "Singapore",
        "created_at": 1543958163,
        "updated_at": 1543958164,
        "last_event_at": 1580352001,
        "exclude_from_global_uptime": false,
        "exclude_from_global_history": false,
        "description": "My **description**",
        "description_html": "<p>My <strong>description</strong></p>",
        "percent_uptime": 100,
        "watchdog": "5e06ee938fbb652ab878cab9"
      },
      {
        "id": "5e16ee938fbb652ab878cacc",
        "type": "component",
        "group": "5e16ee938fbb652ab878caa9",
        "name": "Amsterdam",
        "created_at": 1543958100,
        "updated_at": 1543958169,
        "last_event_at": 1580353042,
        "exclude_from_global_uptime": false,
        "exclude_from_global_history": false,
        "description": "My **description**",
        "description_html": "<p>My <strong>description</strong></p>",
        "percent_uptime": 100,
        "watchdog": "5e16ee938fbb652ab878cac9"
      }
    ]
  },
  "_links": {
    "self": { "href": "..." },
    "update-form": { "href": "..." }
  },
  "_embedded": {
    "components": {
      "_links": {
        "self": { "href": "..." },
        "create": { "href": "..." },
        "next": { "href": "..." },
        "prev": { "href": "..." },
        "beginning": { "href": "..." },
        "end": { "href": "..." }
      },
      "_embedded": {
        "data": [
          {
            "_links": {
              "self": { "href": "..." },
              "self-view": { "href": "..." },
              "update-form": { "href": "..." }
            }
          },
          {
            "_links": {
              "self": { "href": "..." },
              "self-view": { "href": "..." },
              "update-form": { "href": "..." }
            }
          }
        ]
      }
    }
  }
}

compact

{
  "id": "5e16ee938fbb652ab878caa9",
  "type": "group",
  "name": "Regions",
  "created_at": 1543958163,
  "updated_at": 1543958564,
  "description": "My **description**",
  "description_html": "<p>My <strong>description</strong></p>",
  "collapsed": false,
  "position": 3,
  "components": {
    "type": "paged_array",
    "total_count": 2,
    "has_more": false,
    "data": [
      {
        "id": "5e16ee938fbb652ab878cabb",
        "type": "component",
        "group": "5e16ee938fbb652ab878caa9",
        "name": "Singapore",
        "created_at": 1543958163,
        "updated_at": 1543958164,
        "last_event_at": 1580352001,
        "exclude_from_global_uptime": false,
        "exclude_from_global_history": false,
        "description": "My **description**",
        "description_html": "<p>My <strong>description</strong></p>",
        "percent_uptime": 100,
        "watchdog": "5e06ee938fbb652ab878cab9",
        "_links": {
          "self": { "href": "..." },
          "self-view": { "href": "..." },
          "update-form": { "href": "..." }
        }
      },
      {
        "id": "5e16ee938fbb652ab878cacc",
        "type": "component",
        "group": "5e16ee938fbb652ab878caa9",
        "name": "Amsterdam",
        "created_at": 1543958100,
        "updated_at": 1543958169,
        "last_event_at": 1580353042,
        "exclude_from_global_uptime": false,
        "exclude_from_global_history": false,
        "description": "My **description**",
        "description_html": "<p>My <strong>description</strong></p>",
        "percent_uptime": 100,
        "watchdog": "5e16ee938fbb652ab878cac9",
        "_links": {
          "self": { "href": "..." },
          "self-view": { "href": "..." },
          "update-form": { "href": "..." }
        }
      }
    ],
    "_links": {
      "self": { "href": "..." },
      "create": { "href": "..." },
      "next": { "href": "..." },
      "prev": { "href": "..." },
      "beginning": { "href": "..." },
      "end": { "href": "..." }
    }
  },
  "_links": {
    "self": { "href": "..." },
    "update-form": { "href": "..." }
  }
}

Versioning

Our API supports dated versioning. A dated version is cut whenever backwards incompatible changes are made to the API. This way, usage of the same dated version across time will never break your integrations.

The default API version to use can be configured and upgraded from the dashboard.

To make an API call against a specific version, use the Hund-Version header like so: Hund-Version: 2021-09-01.

API request URLs also contain a major version (currently v1). This major version will ideally never change, but a new version may be cut if it is deemed absolutely necessary.

Components

An object representing a specific part of a service, which is potentially subject to downtime.

Get All Components

Index of Components collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
group
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Components for the provided Group ObjectId.

issue
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Components for the provided Issue ObjectId.

event
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Components of the provided Event's context.component_ids.

timeline_item
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Return the Components for the provided TimelineItem UUID.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Components to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Component ObjectId after which the returned array of Components will begin in descending order. Typically, this is used to retrieve the next page of Components in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Component ObjectId before which the returned array of Components will end in descending order. Typically, this is used to retrieve the previous page of Components in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Component-Expansionary) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 2,
  • "has_more": false,
  • "data": [
    • {
      },
    • {
      }
    ]
}

Create a Component

Create a new Component. Returns the newly created Component.

Authorizations:
basicbearer
Request Body schema: application/json
group
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The Group that this Component belongs to.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Component.

required
object (Watchdog)

The Watchdog that supplies the current status and metrics for this Component.

exclude_from_global_uptime
boolean
Default: false

Exclude this Component's uptime percentage from being factored into the global percent uptime calculation.

exclude_from_global_history
boolean
Default: false

Exclude this Component from appearing in the global history.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

exclude_from_global_uptime
required
boolean

Exclude this Component's uptime percentage from being factored into the global percent uptime calculation.

exclude_from_global_history
required
boolean

Exclude this Component from appearing in the global history.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was created.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Component.

last_event_at
required
integer or null <int64> (maybe-timestamp) >= 0

A UNIX timestamp at which the last event for this Component occurred. This includes automated status changes, as well as issue creation and update.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Component.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was last updated.

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that supplies the current status and metrics for this Component.

percent_uptime
required
number

The rolling 30-day percent uptime of this Component.

type
required
string
Value: "component"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

ObjectId (string) or Group (object)
expandable: true

The Group that this Component belongs to.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "group": "5c06ee938fbb652ab878c2a1",
  • "name": "Filtering Service",
  • "watchdog": {
    • "service": {
      }
    }
}

Response samples

Content type
application/hal+json
{
  • "id": "5e06ee938fbb652ab878caaa",
  • "type": "component",
  • "group": "5c06ee938fbb652ab878c2a1",
  • "name": "Filtering Service",
  • "created_at": 1543958163,
  • "updated_at": 1543958164,
  • "last_event_at": null,
  • "exclude_from_global_uptime": false,
  • "exclude_from_global_history": false,
  • "description": "My **description**",
  • "description_html": "<p>My <strong>description</strong></p>",
  • "percent_uptime": 100,
  • "watchdog": {
    • "id": "5e06ee938fbb652ab878caa9",
    • "type": "watchdog",
    • "high_frequency": false,
    • "latest_status": null,
    • "service": {
      }
    }
}

Update a Component

Update the given Component by ObjectId.

Authorizations:
basicbearer
path Parameters
component_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Component.

Request Body schema: application/json
exclude_from_global_uptime
boolean

Exclude this Component's uptime percentage from being factored into the global percent uptime calculation.

group
string (ObjectId) ^[a-fA-F0-9]{24}$

The Group that this Component belongs to.

exclude_from_global_history
boolean

Exclude this Component from appearing in the global history.

i18n-string (string) or i18n (object) (i18n-string)

The name of this Component.

object (Watchdog)

The Watchdog that supplies the current status and metrics for this Component.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

exclude_from_global_uptime
required
boolean

Exclude this Component's uptime percentage from being factored into the global percent uptime calculation.

exclude_from_global_history
required
boolean

Exclude this Component from appearing in the global history.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was created.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Component.

last_event_at
required
integer or null <int64> (maybe-timestamp) >= 0

A UNIX timestamp at which the last event for this Component occurred. This includes automated status changes, as well as issue creation and update.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Component.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was last updated.

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that supplies the current status and metrics for this Component.

percent_uptime
required
number

The rolling 30-day percent uptime of this Component.

type
required
string
Value: "component"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

ObjectId (string) or Group (object)
expandable: true

The Group that this Component belongs to.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "description": "A *perhaps* better description."
}

Response samples

Content type
application/hal+json
{
  • "id": "5e06ee938fbb652ab878caaa",
  • "type": "component",
  • "group": "5c06ee938fbb652ab878c2a1",
  • "name": "Filtering Service",
  • "created_at": 1543958163,
  • "updated_at": 1543958164,
  • "last_event_at": 1580352001,
  • "exclude_from_global_uptime": false,
  • "exclude_from_global_history": false,
  • "description": "A *perhaps* better description.",
  • "description_html": "<p>A <em>perhaps</em> better description.</p>",
  • "percent_uptime": 99.123,
  • "watchdog": "5e06ee938fbb652ab878caa9"
}

Delete a Component

Delete the given Component by ObjectId.

Authorizations:
basicbearer
path Parameters
component_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Component.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Insufficient API key permissions.",
  • "logref": "e23f766b-d576-41ec-a3c4-9263d854dab3"
}

Retrieve a Component

Retrieve the given Component by ObjectId.

Authorizations:
basicbearer
path Parameters
component_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Component.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

exclude_from_global_uptime
required
boolean

Exclude this Component's uptime percentage from being factored into the global percent uptime calculation.

exclude_from_global_history
required
boolean

Exclude this Component from appearing in the global history.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was created.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Component.

last_event_at
required
integer or null <int64> (maybe-timestamp) >= 0

A UNIX timestamp at which the last event for this Component occurred. This includes automated status changes, as well as issue creation and update.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Component.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Component was last updated.

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that supplies the current status and metrics for this Component.

percent_uptime
required
number

The rolling 30-day percent uptime of this Component.

type
required
string
Value: "component"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

ObjectId (string) or Group (object)
expandable: true

The Group that this Component belongs to.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5e06ee938fbb652ab878caaa",
  • "type": "component",
  • "group": "5c06ee938fbb652ab878c2a1",
  • "name": "Filtering Service",
  • "created_at": 1543958163,
  • "updated_at": 1543958164,
  • "last_event_at": 1580352001,
  • "exclude_from_global_uptime": false,
  • "exclude_from_global_history": false,
  • "description": "My **description**",
  • "description_html": "<p>My <strong>description</strong></p>",
  • "percent_uptime": 99.123,
  • "watchdog": "5e06ee938fbb652ab878caa9"
}

Groups

A logical grouping of Components.

Create a Group

Create a new Group. Returns the newly created Group.

Authorizations:
basicbearer
Request Body schema: application/json
required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

collapsed
boolean
Default: false

Whether or not this group is displayed collapsed by default on the status page.

position
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Group, potentially with markdown formatting.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

required
ComponentPagedArray (object) or Array of ObjectId (strings)

A PagedArray of the Components contained within this Group.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Group.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was last updated.

collapsed
required
boolean

Whether or not this group is displayed collapsed by default on the status page.

position
required
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

type
required
string
Value: "group"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "name": "Offices",
  • "description": "Internet availability of our offices."
}

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938fbb652ab878cbbb",
  • "type": "group",
  • "name": "Offices",
  • "created_at": 1581101541,
  • "updated_at": 1581101541,
  • "description": "Internet availability of our offices.",
  • "description_html": "<p>Internet availability of our offices.</p>",
  • "collapsed": false,
  • "position": 3,
  • "components": {
    • "type": "paged_array",
    • "total_count": 0,
    • "has_more": false,
    • "data": [ ]
    }
}

Get All Groups

Index of Groups collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Groups to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Group ObjectId after which the returned array of Groups will begin in descending order. Typically, this is used to retrieve the next page of Groups in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Group ObjectId before which the returned array of Groups will end in descending order. Typically, this is used to retrieve the previous page of Groups in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Group) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 2,
  • "has_more": false,
  • "data": [
    • {
      },
    • {
      }
    ]
}

Update a Group

Update the given Group by ObjectId.

Authorizations:
basicbearer
path Parameters
group_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Group.

Request Body schema: application/json
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

collapsed
boolean

Whether or not this group is displayed collapsed by default on the status page.

position
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Group, potentially with markdown formatting.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

required
ComponentPagedArray (object) or Array of ObjectId (strings)

A PagedArray of the Components contained within this Group.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Group.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was last updated.

collapsed
required
boolean

Whether or not this group is displayed collapsed by default on the status page.

position
required
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

type
required
string
Value: "group"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "collapsed": true,
  • "position": 10
}

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938fbb652ab878cbbb",
  • "type": "group",
  • "name": "Offices",
  • "created_at": 1581101541,
  • "updated_at": 1581102010,
  • "description": "Internet availability of our offices.",
  • "description_html": "<p>Internet availability of our offices.</p>",
  • "collapsed": true,
  • "position": 10,
  • "components": {
    • "type": "paged_array",
    • "total_count": 0,
    • "has_more": false,
    • "data": [ ]
    }
}

Delete a Group

Delete the given Group by ObjectId.

Authorizations:
basicbearer
path Parameters
group_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Group.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Group is not empty.",
  • "logref": "ffd8da37-81c6-4f08-aa48-ef85c00ca7c9"
}

Retrieve a Group

Retrieve the given Group by ObjectId.

Authorizations:
basicbearer
path Parameters
group_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Group.

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

required
ComponentPagedArray (object) or Array of ObjectId (strings)

A PagedArray of the Components contained within this Group.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Group.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was last updated.

collapsed
required
boolean

Whether or not this group is displayed collapsed by default on the status page.

position
required
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

type
required
string
Value: "group"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938fbb652ab878caa9",
  • "type": "group",
  • "name": "Regions",
  • "created_at": 1543958163,
  • "updated_at": 1543958564,
  • "description": "My **description**",
  • "description_html": "<p>My <strong>description</strong></p>",
  • "collapsed": false,
  • "position": 3,
  • "components": {
    • "type": "paged_array",
    • "total_count": 2,
    • "has_more": false,
    • "data": [
      ]
    }
}

Reorder a Group's Components

Reorder the components of the given group by listing the complete new ordering of component ObjectIds. The listing must not remove nor add components.

Authorizations:
basicbearer
path Parameters
group_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Group.

Request Body schema: application/json
Array
string (ObjectId) ^[a-fA-F0-9]{24}$

Responses

Response Schema: application/hal+json
required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendering of the markdown-formatted description.

required
i18n-string (string) or i18n (object) (i18n-string)

The name of this Group.

required
ComponentPagedArray (object) or Array of ObjectId (strings)

A PagedArray of the Components contained within this Group.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Group.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Group was last updated.

collapsed
required
boolean

Whether or not this group is displayed collapsed by default on the status page.

position
required
integer

An integer representing the position of this Group. Groups are displayed on the status page in ascending order according to this value.

type
required
string
Value: "group"
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

A description of this Component, potentially with markdown formatting.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
[
  • "5e16ee938fbb652ab878cacc",
  • "5e16ee938fbb652ab878caee",
  • "5e16ee938fbb652ab878cabb"
]

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938fbb652ab878caa9",
  • "type": "group",
  • "name": "Regions",
  • "created_at": 1543958163,
  • "updated_at": 1543958564,
  • "description": "My **description**",
  • "description_html": "<p>My <strong>description</strong></p>",
  • "collapsed": false,
  • "position": 3,
  • "components": {
    • "type": "paged_array",
    • "total_count": 2,
    • "has_more": false,
    • "data": [
      ]
    }
}

MetricProviders

MetricProviders gather metrics from a configured service for viewing on the Status Page.

Get All MetricProviders

Index of MetricProviders collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
watchdog
string (ObjectId) ^[a-fA-F0-9]{24}$

ObjectId for a particular Watchdog to retrieve MetricProviders on.

default
boolean
Default: false

When true, returns only MetricProviders for which default is true (i.e. returns MetricProviders that are considered the "default" for their respective Watchdogs).

When used in conjunction with the watchdog parameter, returns the single default MetricProvider of that Watchdog, if it exists.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of MetricProviders to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A MetricProvider ObjectId after which the returned array of MetricProviders will begin in descending order. Typically, this is used to retrieve the next page of MetricProviders in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A MetricProvider ObjectId before which the returned array of MetricProviders will end in descending order. Typically, this is used to retrieve the previous page of MetricProviders in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (MetricProvider) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 2,
  • "has_more": false,
  • "data": [
    • {
      },
    • {
      }
    ]
}

Create a MetricProvider

Create a new MetricProvider. Returns the newly created MetricProvider.

Authorizations:
basicbearer
Request Body schema: application/json
required
Array of objects (MetricInstance)

An array of MetricInstances, which describe each Metric that the MetricProvider provides.

watchdog
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The Watchdog that owns this MetricProvider.

required
Builtin (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Form)

The service configuration for this MetricProvider, which describes how the given instances are provided.

Responses

Response Schema: application/hal+json
required
Array of objects (MetricInstance)

An array of MetricInstances, which describe each Metric that the MetricProvider provides.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this MetricProvider.

default
required
boolean

When true, denotes that this MetricProvider is the default MetricProvider of the Watchdog. This means that they share the same service configuration, which the MetricProvider inherits from the Watchdog. This MetricProvider is created automatically depending on the Watchdog, and cannot be deleted without also deleting the Watchdog.

watchdog
required
string (ObjectId) ^[a-fA-F0-9]{24}$
expandable: true

The Watchdog that owns this MetricProvider.

type
required
string
Value: "metric_provider"
required
Builtin (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this MetricProvider, which describes how the given instances are provided.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "watchdog": "5a06ee938fbb652ab878c000",
  • "instances": [
    • {
      }
    ],
  • "service": {
    • "type": "webhook"
    }
}

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938cca652ab8780010",
  • "type": "metric_provider",
  • "watchdog": "5a06ee938fbb652ab878c000",
  • "default": true,
  • "instances": [
    • {
      }
    ],
  • "service": {
    • "type": "webhook",
    • "webhook_key": "AAAAAAAAaaaaaaaa"
    }
}

Retrieve a MetricProvider

Retrieve the given MetricProvider by ObjectId.

Authorizations:
basicbearer
path Parameters
metric_provider_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the MetricProvider.

Responses

Response Schema: application/hal+json
required
Array of objects (MetricInstance)

An array of MetricInstances, which describe each Metric that the MetricProvider provides.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this MetricProvider.

default
required
boolean

When true, denotes that this MetricProvider is the default MetricProvider of the Watchdog. This means that they share the same service configuration, which the MetricProvider inherits from the Watchdog. This MetricProvider is created automatically depending on the Watchdog, and cannot be deleted without also deleting the Watchdog.

watchdog
required
string (ObjectId) ^[a-fA-F0-9]{24}$
expandable: true

The Watchdog that owns this MetricProvider.

type
required
string
Value: "metric_provider"
required
Builtin (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this MetricProvider, which describes how the given instances are provided.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938cca652ab8780010",
  • "type": "metric_provider",
  • "watchdog": "5a06ee938fbb652ab878c000",
  • "default": true,
  • "instances": [
    • {
      }
    ],
  • "service": {
    • "type": "webhook"
    }
}

Update a MetricProvider

Update the given MetricProvider by ObjectId.

Authorizations:
basicbearer
path Parameters
metric_provider_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the MetricProvider.

Request Body schema: application/json
Array of MetricInstance (object) or MetricInstance (object)

An array of MetricInstances, which describe each Metric that the MetricProvider provides.

Builtin (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) or PingdomLegacyV2 (object) (Form)

The service configuration for this MetricProvider, which describes how the given instances are provided.

Responses

Response Schema: application/hal+json
required
Array of objects (MetricInstance)

An array of MetricInstances, which describe each Metric that the MetricProvider provides.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this MetricProvider.

default
required
boolean

When true, denotes that this MetricProvider is the default MetricProvider of the Watchdog. This means that they share the same service configuration, which the MetricProvider inherits from the Watchdog. This MetricProvider is created automatically depending on the Watchdog, and cannot be deleted without also deleting the Watchdog.

watchdog
required
string (ObjectId) ^[a-fA-F0-9]{24}$
expandable: true

The Watchdog that owns this MetricProvider.

type
required
string
Value: "metric_provider"
required
Builtin (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this MetricProvider, which describes how the given instances are provided.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "instances": [
    • {
      },
    • {
      }
    ]
}

Response samples

Content type
application/hal+json
{
  • "id": "5e16ee938cca652ab8780010",
  • "type": "metric_provider",
  • "watchdog": "5a06ee938fbb652ab878c000",
  • "default": true,
  • "instances": [
    • {
      }
    ],
  • "service": {
    • "type": "webhook"
    }
}

Delete a MetricProvider

Delete the given MetricProvider by ObjectId.

Authorizations:
basicbearer
path Parameters
metric_provider_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the MetricProvider.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Cannot delete a Watchdog's default MetricProvider.",
  • "logref": "645888fa-1e1b-477a-947a-50fd2bd28249"
}

MetricDefinitions

MetricDefinitions describe the particular structure of metrics that can be instanced as a MetricInstance, provided by a MetricProvider.

The fields of a MetricDefinition serve as the defaults for any MetricInstance that references the definition. MetricInstances reference definitions by their slug (via the definition_slug field).

Get All MetricDefinitions

Index of MetricDefinitions collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of MetricDefinitions to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A MetricDefinition ObjectId after which the returned array of MetricDefinitions will begin in descending order. Typically, this is used to retrieve the next page of MetricDefinitions in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A MetricDefinition ObjectId before which the returned array of MetricDefinitions will end in descending order. Typically, this is used to retrieve the previous page of MetricDefinitions in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (MetricDefinition) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 10,
  • "data": [
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      }
    ],
  • "has_more": true
}

Retrieve a MetricDefinition

Retrieve the given MetricDefinition by ObjectId.

Authorizations:
basicbearer
path Parameters
metric_definition_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the MetricDefinition.

Responses

Response Schema: application/hal+json
interpolation
required
string (METRIC_INTERPOLATION)
Enum: "linear" "step" "basis" "bundle" "cardinal"

The kind of interpolation to use between points displayed in the graph (line plots only).

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the y-axis of this metric.

plot_type
required
string (METRIC_PLOT_TYPE)
Enum: "line" "bar"

The kind of visualization to display the metric with.

slug
required
string

A string that uniquely identifies this MetricDefinition. This value is referenced by MetricInstances via their definition_slug fields.

aggregation
required
string (METRIC_AGGREGATION)
Enum: "sum" "average" "first" "last" "max" "min"

The kind of aggregation method to use in case multiple displayed data points share the same time-axis value (depending on the axis configured for time, by default x).

Note: this field does not have any effect on the underlying data; it is purely cosmetic, and applied only when viewing the data on the status page.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the MetricDefinition.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the metric, displayed above its graph on the status page.

x_type
required
string (METRIC_AXIS_TYPE)
Enum: "time" "measure"

The type of quantity represented by the x-axis.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the x-axis of this metric.

y_type
required
string (METRIC_AXIS_TYPE)
Enum: "time" "measure"

The type of quantity represented by the y-axis.

builtin
required
boolean

Whether this MetricDefinition is built into Hund, and cannot be modified.

y_supremum
required
number (nonnegative-number) >= 0

The least upper bound to display the y-axis on. The metric will always display up to at least this value on the y-axis regardless of the graphed data. If the graph exceeds this value, then the bound will be raised as much as necessary to accommodate the data.

type
required
string
Value: "metric_definition"
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "671af3fb8fbb6584e0190d32",
  • "type": "metric_definition",
  • "title": "Metric 4",
  • "x_title": "Time",
  • "y_title": "Metric 4",
  • "x_type": "time",
  • "y_type": "measure",
  • "y_supremum": 100,
  • "plot_type": "line",
  • "interpolation": "linear",
  • "aggregation": "average",
  • "slug": "metric4",
  • "builtin": false,
}

Watchdogs

Watchdogs determine the method by which component availability is calculated, and generate statuses at the configured frequency (regular or high).

Get All Watchdogs

Index of Watchdogs collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
service.type
string

Return Watchdogs of the given service.type.

Note: This field is ignored when service.method is given.

service.method
string

Return Native Monitoring Watchdogs of the given service.method. If this parameter is given, service.type is ignored, and assumed to be native.

high_frequency
boolean

When true, returns Watchdogs where high_frequency is true. When false, returns Watchdogs where high_frequency is false.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Watchdogs to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Watchdog ObjectId after which the returned array of Watchdogs will begin in descending order. Typically, this is used to retrieve the next page of Watchdogs in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Watchdog ObjectId before which the returned array of Watchdogs will end in descending order. Typically, this is used to retrieve the previous page of Watchdogs in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Watchdog) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Preview a Watchdog

Preview a new Watchdog. Returns the Watchdog that would be created if the same request is made against the actual collection.

This endpoint does not persist the returned Watchdog.

Authorizations:
basicbearer
Request Body schema: application/json
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Form)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

high_frequency
boolean
Default: false

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

object (MetricProvider)

MetricProvider creation form.

Responses

Response Schema: application/hal+json
high_frequency
required
boolean

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Watchdog.

latest_status
required
string or null (Maybe(ObjectId)) ^[a-fA-F0-9]{24}$

The ObjectId of the latest Status object generated by this Watchdog. When null, this Watchdog is still pending initial status.

type
required
string
Value: "watchdog"
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "service": {
    • "type": "native",
    • "method": "icmp",
    • "regions": [
      ],
    • "target": "example.com"
    }
}

Response samples

Content type
application/hal+json
{}

Enumerate Watchdog Service Options

For supported Watchdog service types, returns a service-specific document enumerating the options available for the service, with respect to the given service credentials.

Service credentials can either be provided directly to this endpoint, or the credentials of an existing Watchdog can be used, by providing the respective ID.

Authorizations:
basicbearer
query Parameters
watchdog
string (ObjectId) ^[a-fA-F0-9]{24}$

When given, uses the credentials of this Watchdog to perform service option enumeration, if supported.

type
string
Enum: "pingdom" "pagerduty" "updown"

Selects the Watchdog service type to perform service option enumeration. If this field is given, then you should also pass appropriate service credentials.

Note: this field is ignored when watchdog is given.

Request Body schema: application/json
Any of
api_token
required
string

The Pingdom API v3 key.

type
string
Value: "pingdom"

Responses

Response Schema: application/hal+json
Any of
required
object

A Check Id -> Name mapping of the Pingdom TMS checks available via the given credentials.

required
object

A Check Id -> Name mapping of the Pingdom checks available via the given credentials.

type
required
string
Value: "pingdom"

Request samples

Content type
application/json
{
  • "type": "pingdom",
  • "api_token": "AAAAAAAAA"
}

Response samples

Content type
application/hal+json
{
  • "type": "pingdom",
  • "transactionals": {
    • "10000": "example.com TMS"
    },
  • "checks": {
    • "5800000": "Example"
    }
}

Retrieve a Watchdog

Retrieve the given Watchdog by ObjectId.

Authorizations:
basicbearer
path Parameters
watchdog_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Watchdog.

Responses

Response Schema: application/hal+json
high_frequency
required
boolean

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Watchdog.

latest_status
required
string or null (Maybe(ObjectId)) ^[a-fA-F0-9]{24}$

The ObjectId of the latest Status object generated by this Watchdog. When null, this Watchdog is still pending initial status.

type
required
string
Value: "watchdog"
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5a06ee938fbb652ab878c000",
  • "type": "watchdog",
  • "high_frequency": true,
  • "latest_status": "5b0001938fbb652ab878c001",
  • "service": {
    • "type": "updown",
    • "monitor_token": "kn121"
    }
}

Update a Watchdog

Update the given Watchdog by ObjectId.

Authorizations:
basicbearer
path Parameters
watchdog_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Watchdog.

Request Body schema: application/json
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) or PingdomLegacyV2 (object) (Form)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

high_frequency
boolean

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

object (MetricProvider)

MetricProvider update form.

Array of objects (MetricProvider)

Responses

Response Schema: application/hal+json
high_frequency
required
boolean

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Watchdog.

latest_status
required
string or null (Maybe(ObjectId)) ^[a-fA-F0-9]{24}$

The ObjectId of the latest Status object generated by this Watchdog. When null, this Watchdog is still pending initial status.

type
required
string
Value: "watchdog"
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "high_frequency": false,
  • "service": {
    • "monitor_token": "ml554"
    }
}

Response samples

Content type
application/hal+json
{
  • "id": "5a06ee938fbb652ab878c000",
  • "type": "watchdog",
  • "high_frequency": false,
  • "latest_status": "5b0001938fbb652ab878c001",
  • "service": {
    • "type": "updown",
    • "monitor_token": "ml554"
    }
}

Convert a Watchdog's Service Type

Convert the service type of a watchdog to another service type. This operation does not affect the component, nor the watchdog's statuses nor metrics (unless specified). Useful for switching status providers in a single low-friction request.

Authorizations:
basicbearer
path Parameters
watchdog_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Watchdog.

Request Body schema: application/json
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Form)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

high_frequency
boolean
Default: false

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

object (MetricProvider)

MetricProvider creation form.

keep_original_default_metric_provider
boolean
Default: true

When true, the default MetricProvider (if one exists) for the Watchdog before conversion will be kept as a normal MetricProvider of the Watchdog after conversion. When false, the default MetricProvider will be deleted after conversion.

Responses

Response Schema: application/hal+json
high_frequency
required
boolean

When true, this Watchdog will run every 30 seconds, instead of the standard 1 minute.

Note: you are billed extra for each high frequency Watchdog. Please see our pricing page for more details.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Watchdog.

latest_status
required
string or null (Maybe(ObjectId)) ^[a-fA-F0-9]{24}$

The ObjectId of the latest Status object generated by this Watchdog. When null, this Watchdog is still pending initial status.

type
required
string
Value: "watchdog"
required
Manual (object) or Updown (object) or Uptimerobot (object) or Webhook (object) or Pingdom (object) or PingdomLegacyV2 (object) or Cloudwatch (object) or Newrelic (object) or Pagerduty (object) or (Native (ICMP (object) or HTTP (object) or DNS (object) or TCP (object) or UDP (object))) (Services)

The service configuration for this Watchdog, which describes how the Watchdog determines current status.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "service": {
    • "type": "uptimerobot",
    • "monitor_api_key": "BBBBBBBaaaaaaa"
    },
  • "keep_original_default_metric_provider": false
}

Response samples

Content type
application/hal+json
{
  • "id": "5a06ee938fbb652ab878c000",
  • "type": "watchdog",
  • "high_frequency": true,
  • "latest_status": "5b0001938fbb652ab878c001",
  • "service": {
    • "type": "uptimerobot",
    • "unconfirmed_is_down": false
    }
}

Statuses

Statuses record the operational states automatically generated by a particular Watchdog. These objects form one part of the Timeline (while Issues form the other). Statuses affect the Timeline over their effective duration according to the state field.

Statuses are generated/extended each time a Watchdog runs (according to configured frequency). Each Watchdog stores a latest_status field, which declares the current state of the Watchdog.

If the current state determined by a Watchdog has not changed since the last run, then the duration of that Status is extended. If, however, the state determined by a Watchdog changes from the last run, then a new Status object is created with an appropriate state. The state field of any given Status object will never change.

Get All Statuses

Index of Statuses collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
watchdog
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Statuses for the provided Watchdog ObjectId.

timeline_item
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Return the Statuses for the provided TimelineItem UUID.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Statuses to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Status ObjectId after which the returned array of Statuses will begin in descending order. Typically, this is used to retrieve the next page of Statuses in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Status ObjectId before which the returned array of Statuses will end in descending order. Typically, this is used to retrieve the previous page of Statuses in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Status) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Retrieve a Status

Retrieve the given Status by ObjectId.

Authorizations:
basicbearer
path Parameters
status_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Status.

Responses

Response Schema: application/hal+json
state
required
integer (integer-state)
Enum: -1 0 1

An integer denoting the operational state of this Status. This state affects any related Component Timelines over the duration of this Status.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status was created.

ended_at
required
integer or null <int64> (Maybe(timestamp)) >= 0

The UNIX timestamp at which this Status stops affecting related Component Timelines. A value of null implies that this is the current Status.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Status in seconds. The duration is continually extended by subsequent Watchdog runs until the state changes, at which point a new Status object is created.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status was last updated by a Watchdog run.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Status.

required
object or null (Maybe(Reasons))

When state < 1 (sub-operational), this field contains a PagedArray of zero or more Reason objects describing the specific reasons this Status was generated, over time and potentially by region when supported.

If state == 1 (operational), then this field will be null.

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that generated this Status

required
(ObjectId (string or null)) or (Semantic (object or null))
type
required
string
Value: "status"
began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status begins affecting related Component Timelines.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Correct a Status

Revises the state of the given sub-operational Status. Often helpful for marking previous downtime streaks as Operational again, in case the automated downtime should be considered incorrect.

A sub-operational Status can be changed to any given state. If the Status borders another Status object with the same state, it will be merged accordingly. This operation will mutate at least one Status, if not the given one. This operation may result in the deletion of one or more Status objects (including the given one), depending on the state of bordering Status objects.

Authorizations:
basicbearer
path Parameters
status_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Status.

Request Body schema: application/json
state
required
integer (integer-state)
Enum: -1 0 1

An integer denoting operational state (1 => operational, 0 => degraded, -1 => outage).

Responses

Response Schema: application/hal+json
state
required
integer (integer-state)
Enum: -1 0 1

An integer denoting the operational state of this Status. This state affects any related Component Timelines over the duration of this Status.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status was created.

ended_at
required
integer or null <int64> (Maybe(timestamp)) >= 0

The UNIX timestamp at which this Status stops affecting related Component Timelines. A value of null implies that this is the current Status.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Status in seconds. The duration is continually extended by subsequent Watchdog runs until the state changes, at which point a new Status object is created.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status was last updated by a Watchdog run.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Status.

required
object or null (Maybe(Reasons))

When state < 1 (sub-operational), this field contains a PagedArray of zero or more Reason objects describing the specific reasons this Status was generated, over time and potentially by region when supported.

If state == 1 (operational), then this field will be null.

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that generated this Status

required
(ObjectId (string or null)) or (Semantic (object or null))
type
required
string
Value: "status"
began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Status begins affecting related Component Timelines.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "state": 1
}

Response samples

Content type
application/hal+json
{}

Reasons

Reason objects record the specific (potentially regional) failure reasons that caused a specific sub-operational Status to occur according to Watchdogs. Reason objects are only generated by Watchdogs using a supporting service type (i.e. native).

Get All Reasons

Index of Reasons collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
fingerprint
string

Return Reasons whose fingerprint matches the given one.

subject
string

Return Reasons whose subject matches the given one.

description
string

Return Reasons whose description matches the given one.

status
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Reasons for the provided Status ObjectId.

watchdog
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Reasons for the provided Watchdog ObjectId.

region
string

Return Reasons whose region matches the given one.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Reasons to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Reason ObjectId after which the returned array of Reasons will begin in descending order. Typically, this is used to retrieve the next page of Reasons in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Reason ObjectId before which the returned array of Reasons will end in descending order. Typically, this is used to retrieve the previous page of Reasons in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Reason-Expansionary) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Retrieve a Reason

Retrieve the given Reason by ObjectId.

Authorizations:
basicbearer
path Parameters
reason_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Reason.

Responses

Response Schema: application/hal+json
subject
required
string

The specific "subject" of this error, typically a URL, domain name, or IP address.

context
required
Array of strings

A list of string terms that further describe the nature of the error, depending on description. Typically, this field will be filled with terms related to a failed assertion: with the actual value first (if recordable), then the expectation after that, potentially followed by further description-specific terms.

For example, given a description of response_code_invalid, then the context field will look like ["500", "200"], meaning an HTTP response code of 500 was returned from subject, while code 200 was expected by the Watchdog.

ended_at
required
integer or null <int64> (Maybe(timestamp)) >= 0

The UNIX timestamp at which this reason finally ceased causing the related sub-operational Status.

This field is null when this Reason is currently responsible for an ongoing sub-operational Status.

duration
required
integer (nonnegative-integer) >= 0

The number of seconds that this Reason lasted. The duration will continually increase until the Reason ends (when ended_at != null).

region
required
string or null (maybe-string)

When non-null, describes the physical region (e.g. nj-us-1, fr-de-1, etc.) that this Reason occurred from.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Reason.

fingerprint
required
string

A unique hash identifying the subject/description/context combination that fully describes this Reason. Fingerprints between Reasons will be equal if and only if the subject, description, and context fields are all equal, hence representing the same error (regardless of regional/temporal fields).

required
ObjectId (string) or Watchdog (object)
expandable: true

The Watchdog that this Reason pertains to.

type
required
string
Value: "reason"
description
required
string

A machine-friendly, human-readable description of the error. To maintain machine-friendliness, this field will always be a underscore-delimited alphanumeric word (e.g. timeout, response_body_invalid, response_records_invalid, etc.).

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this reason began causing the related sub-operational Status.

required
ObjectId (string) or Status (object)
expandable: true

The Status that this Reason is (wholly or partially) responsible for causing.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Semantics

Semantics are applied to Statuses and Issues to give additional or alternative meaning to the core states within Hund (i.e. Operational, Degraded, Outage, Pending).

A Semantic can be applied to any state, which will both rename and recolor the state according to the Semantic. This affects both the display of current state on your status page, as well as the historical timeline.

Semantics can be applied by certain supporting Watchdogs, such as Manual and Webhook.

Issues and Updates can also accept a Semantic in conjunction with their state overrides. Similar to a state override, Semantic overrides will affect the display of ongoing state on your status page for the duration of the overriding Issue/Update.

Create a Semantic

Create a new Semantic. Returns the newly created Semantic.

Authorizations:
basicbearer
Request Body schema: application/json
color
required
string (hex-color) ^[0-9a-f]{6}$

A 6-digit hexadecimal RGB color, used to appropriately color usages of this Semantic on your status page.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the user-facing name of this Semantic.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the title of a TimelineItem where this Semantic occurred. This string is also shown in heading of the historical entry on your status page's History section (e.g. "Degraded Service", "Outage", etc.).

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of this Semantic when shown in the "Status Bar" of your status page, or the page of a specific Component (e.g. "Operating Normally", "Experiencing Downtime", etc.).

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of the Semantic in notifications when it occurs. This string will appear in the notifications from various Notifiers, including Emails, Slack, MS Teams, Web Push, and SMS (e.g. "is degraded", "has gone down" for Degraded and Outage states, respectively; and "has come back up" when entering Operational from a suboperational state).

(SEMANTIC_ICON_SHORTHAND (string or null)) or (STATICON_ICON (string or null)) (Maybe(SEMANTIC_ICON))

A string denoting a specific icon that should be shown next to Components on your status page when this Semantic occurs. When null, falls back to an icon determined by the underlying state of the Component.

slug
string (slug) ^[a-z][a-z0-9_\-]+$

An alphanumeric slug that can be used to reference this Semantic in place of its id (e.g. webhook calls, integrations). Thus, this value must be unique.

operational_historical_entry
boolean
Default: false

Whether to emit historical entries for events with this semantic, particularly when the underlying state is Operational.

By default, operational states are not recorded explicitly in history, since it is assumed that streaks of Operational status are typical and expected, and therefore and do not need to be shown as events in history.

historical_grouping
boolean
Default: false

Whether to group events with this Semantic with other events of similar underlying state (i.e. suboperational vs. operational) in your status page's historical timeline.

severity
integer
Default: 0

An integer that denotes how "severe" this Semantic is. Smaller (including negative) values are considered more severe. This field is primarily used to order Semantics, and choose a predominant Semantic when a Component is under multiple Semantics (e.g. when multiple Issues are active with semantic_overrides).

(integer-state (integer or null)) or (PENDING_STATE (string or null)) (maybe-integer-state-or-pending)

The default underlying state that this Semantic implies in cases when a state is not supplied in conjunction with the Semantic (e.g. a Webhook watchdog).

Note: This field has no effect on Components where the underlying state is already determined, and thus the Semantic would merely rename/recolor that state, whether ongoing or historical.

Responses

Response Schema: application/hal+json
color
required
string (hex-color) ^[0-9a-f]{6}$

A 6-digit hexadecimal RGB color, used to appropriately color usages of this Semantic on your status page.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the user-facing name of this Semantic.

required
(SEMANTIC_ICON_SHORTHAND (string or null)) or (STATICON_ICON (string or null)) (Maybe(SEMANTIC_ICON))

A string denoting a specific icon that should be shown next to Components on your status page when this Semantic occurs. When null, falls back to an icon determined by the underlying state of the Component.

slug
required
string (slug) ^[a-z][a-z0-9_\-]+$

An alphanumeric slug that can be used to reference this Semantic in place of its id (e.g. webhook calls, integrations). Thus, this value must be unique.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Semantic.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the title of a TimelineItem where this Semantic occurred. This string is also shown in heading of the historical entry on your status page's History section (e.g. "Degraded Service", "Outage", etc.).

operational_historical_entry
required
boolean

Whether to emit historical entries for events with this semantic, particularly when the underlying state is Operational.

By default, operational states are not recorded explicitly in history, since it is assumed that streaks of Operational status are typical and expected, and therefore and do not need to be shown as events in history.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of this Semantic when shown in the "Status Bar" of your status page, or the page of a specific Component (e.g. "Operating Normally", "Experiencing Downtime", etc.).

historical_grouping
required
boolean

Whether to group events with this Semantic with other events of similar underlying state (i.e. suboperational vs. operational) in your status page's historical timeline.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of the Semantic in notifications when it occurs. This string will appear in the notifications from various Notifiers, including Emails, Slack, MS Teams, Web Push, and SMS (e.g. "is degraded", "has gone down" for Degraded and Outage states, respectively; and "has come back up" when entering Operational from a suboperational state).

severity
required
integer

An integer that denotes how "severe" this Semantic is. Smaller (including negative) values are considered more severe. This field is primarily used to order Semantics, and choose a predominant Semantic when a Component is under multiple Semantics (e.g. when multiple Issues are active with semantic_overrides).

type
required
string
Value: "semantic"
required
(integer-state (integer or null)) or (PENDING_STATE (string or null)) (maybe-integer-state-or-pending)

The default underlying state that this Semantic implies in cases when a state is not supplied in conjunction with the Semantic (e.g. a Webhook watchdog).

Note: This field has no effect on Components where the underlying state is already determined, and thus the Semantic would merely rename/recolor that state, whether ongoing or historical.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "name": "Unavailable",
  • "color": "ffff00",
  • "status_page_heading": "Service Unavailable",
  • "historical_entry_heading": "Unavailable",
  • "notification_description": "is unavailable"
}

Response samples

Content type
application/hal+json
{
  • "id": "665e1c6d8fbb65080d60bd40",
  • "type": "semantic",
  • "created_at": 1717443693,
  • "updated_at": 1717443693,
  • "name": "Unavailable",
  • "slug": "unavailable",
  • "color": "ffff00",
  • "icon": null,
  • "severity": 0,
  • "default_state": null,
  • "historical_grouping": false,
  • "operational_historical_entry": false,
  • "status_page_heading": "Service Unavailable",
  • "historical_entry_heading": "Unavailable",
  • "notification_description": "is unavailable",
}

Get All Semantics

Index of Semantics collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Semantics to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Semantic ObjectId after which the returned array of Semantics will begin in descending order. Typically, this is used to retrieve the next page of Semantics in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Semantic ObjectId before which the returned array of Semantics will end in descending order. Typically, this is used to retrieve the previous page of Semantics in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Semantic) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Update a Semantic

Update the given Semantic by ObjectId.

Authorizations:
basicbearer
path Parameters
semantic_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Semantic.

Request Body schema: application/json
color
string (hex-color) ^[0-9a-f]{6}$

A 6-digit hexadecimal RGB color, used to appropriately color usages of this Semantic on your status page.

i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the user-facing name of this Semantic.

(SEMANTIC_ICON_SHORTHAND (string or null)) or (STATICON_ICON (string or null)) (Maybe(SEMANTIC_ICON))

A string denoting a specific icon that should be shown next to Components on your status page when this Semantic occurs. When null, falls back to an icon determined by the underlying state of the Component.

slug
string (slug) ^[a-z][a-z0-9_\-]+$

An alphanumeric slug that can be used to reference this Semantic in place of its id (e.g. webhook calls, integrations). Thus, this value must be unique.

i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the title of a TimelineItem where this Semantic occurred. This string is also shown in heading of the historical entry on your status page's History section (e.g. "Degraded Service", "Outage", etc.).

i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of this Semantic when shown in the "Status Bar" of your status page, or the page of a specific Component (e.g. "Operating Normally", "Experiencing Downtime", etc.).

operational_historical_entry
boolean

Whether to emit historical entries for events with this semantic, particularly when the underlying state is Operational.

By default, operational states are not recorded explicitly in history, since it is assumed that streaks of Operational status are typical and expected, and therefore and do not need to be shown as events in history.

historical_grouping
boolean

Whether to group events with this Semantic with other events of similar underlying state (i.e. suboperational vs. operational) in your status page's historical timeline.

i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of the Semantic in notifications when it occurs. This string will appear in the notifications from various Notifiers, including Emails, Slack, MS Teams, Web Push, and SMS (e.g. "is degraded", "has gone down" for Degraded and Outage states, respectively; and "has come back up" when entering Operational from a suboperational state).

severity
integer

An integer that denotes how "severe" this Semantic is. Smaller (including negative) values are considered more severe. This field is primarily used to order Semantics, and choose a predominant Semantic when a Component is under multiple Semantics (e.g. when multiple Issues are active with semantic_overrides).

(integer-state (integer or null)) or (PENDING_STATE (string or null)) (maybe-integer-state-or-pending)

The default underlying state that this Semantic implies in cases when a state is not supplied in conjunction with the Semantic (e.g. a Webhook watchdog).

Note: This field has no effect on Components where the underlying state is already determined, and thus the Semantic would merely rename/recolor that state, whether ongoing or historical.

Responses

Response Schema: application/hal+json
color
required
string (hex-color) ^[0-9a-f]{6}$

A 6-digit hexadecimal RGB color, used to appropriately color usages of this Semantic on your status page.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the user-facing name of this Semantic.

required
(SEMANTIC_ICON_SHORTHAND (string or null)) or (STATICON_ICON (string or null)) (Maybe(SEMANTIC_ICON))

A string denoting a specific icon that should be shown next to Components on your status page when this Semantic occurs. When null, falls back to an icon determined by the underlying state of the Component.

slug
required
string (slug) ^[a-z][a-z0-9_\-]+$

An alphanumeric slug that can be used to reference this Semantic in place of its id (e.g. webhook calls, integrations). Thus, this value must be unique.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Semantic.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the title of a TimelineItem where this Semantic occurred. This string is also shown in heading of the historical entry on your status page's History section (e.g. "Degraded Service", "Outage", etc.).

operational_historical_entry
required
boolean

Whether to emit historical entries for events with this semantic, particularly when the underlying state is Operational.

By default, operational states are not recorded explicitly in history, since it is assumed that streaks of Operational status are typical and expected, and therefore and do not need to be shown as events in history.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of this Semantic when shown in the "Status Bar" of your status page, or the page of a specific Component (e.g. "Operating Normally", "Experiencing Downtime", etc.).

historical_grouping
required
boolean

Whether to group events with this Semantic with other events of similar underlying state (i.e. suboperational vs. operational) in your status page's historical timeline.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of the Semantic in notifications when it occurs. This string will appear in the notifications from various Notifiers, including Emails, Slack, MS Teams, Web Push, and SMS (e.g. "is degraded", "has gone down" for Degraded and Outage states, respectively; and "has come back up" when entering Operational from a suboperational state).

severity
required
integer

An integer that denotes how "severe" this Semantic is. Smaller (including negative) values are considered more severe. This field is primarily used to order Semantics, and choose a predominant Semantic when a Component is under multiple Semantics (e.g. when multiple Issues are active with semantic_overrides).

type
required
string
Value: "semantic"
required
(integer-state (integer or null)) or (PENDING_STATE (string or null)) (maybe-integer-state-or-pending)

The default underlying state that this Semantic implies in cases when a state is not supplied in conjunction with the Semantic (e.g. a Webhook watchdog).

Note: This field has no effect on Components where the underlying state is already determined, and thus the Semantic would merely rename/recolor that state, whether ongoing or historical.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "icon": "circle-slash"
}

Response samples

Content type
application/hal+json
{
  • "id": "665e1c6d8fbb65080d60bd40",
  • "type": "semantic",
  • "created_at": 1717443693,
  • "updated_at": 1717443780,
  • "name": "Unavailable",
  • "slug": "unavailable",
  • "color": "ffff00",
  • "icon": "circle-slash",
  • "severity": 0,
  • "default_state": null,
  • "historical_grouping": false,
  • "operational_historical_entry": false,
  • "status_page_heading": "Service Unavailable",
  • "historical_entry_heading": "Unavailable",
  • "notification_description": "is unavailable",
}

Delete a Semantic

Delete the given Semantic by ObjectId.

Authorizations:
basicbearer
path Parameters
semantic_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Semantic.

Responses

Response samples

Content type
application/hal+json
{
  • "type": "api/error/not_authorized",
  • "logref": "018fdf9b-352d-73f1-8dac-73c2f591cd0a",
  • "message": "Insufficient API key permissions."
}

Retrieve a Semantic

Retrieve the given Semantic by ObjectId.

Authorizations:
basicbearer
path Parameters
semantic_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Semantic.

Responses

Response Schema: application/hal+json
color
required
string (hex-color) ^[0-9a-f]{6}$

A 6-digit hexadecimal RGB color, used to appropriately color usages of this Semantic on your status page.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the user-facing name of this Semantic.

required
(SEMANTIC_ICON_SHORTHAND (string or null)) or (STATICON_ICON (string or null)) (Maybe(SEMANTIC_ICON))

A string denoting a specific icon that should be shown next to Components on your status page when this Semantic occurs. When null, falls back to an icon determined by the underlying state of the Component.

slug
required
string (slug) ^[a-z][a-z0-9_\-]+$

An alphanumeric slug that can be used to reference this Semantic in place of its id (e.g. webhook calls, integrations). Thus, this value must be unique.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Semantic was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Semantic.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the title of a TimelineItem where this Semantic occurred. This string is also shown in heading of the historical entry on your status page's History section (e.g. "Degraded Service", "Outage", etc.).

operational_historical_entry
required
boolean

Whether to emit historical entries for events with this semantic, particularly when the underlying state is Operational.

By default, operational states are not recorded explicitly in history, since it is assumed that streaks of Operational status are typical and expected, and therefore and do not need to be shown as events in history.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of this Semantic when shown in the "Status Bar" of your status page, or the page of a specific Component (e.g. "Operating Normally", "Experiencing Downtime", etc.).

historical_grouping
required
boolean

Whether to group events with this Semantic with other events of similar underlying state (i.e. suboperational vs. operational) in your status page's historical timeline.

required
i18n-string (string) or i18n (object) (i18n-string)

An I18nString representing the description of the Semantic in notifications when it occurs. This string will appear in the notifications from various Notifiers, including Emails, Slack, MS Teams, Web Push, and SMS (e.g. "is degraded", "has gone down" for Degraded and Outage states, respectively; and "has come back up" when entering Operational from a suboperational state).

severity
required
integer

An integer that denotes how "severe" this Semantic is. Smaller (including negative) values are considered more severe. This field is primarily used to order Semantics, and choose a predominant Semantic when a Component is under multiple Semantics (e.g. when multiple Issues are active with semantic_overrides).

type
required
string
Value: "semantic"
required
(integer-state (integer or null)) or (PENDING_STATE (string or null)) (maybe-integer-state-or-pending)

The default underlying state that this Semantic implies in cases when a state is not supplied in conjunction with the Semantic (e.g. a Webhook watchdog).

Note: This field has no effect on Components where the underlying state is already determined, and thus the Semantic would merely rename/recolor that state, whether ongoing or historical.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "661066a78fbb65f9ac923714",
  • "type": "semantic",
  • "created_at": 1712350887,
  • "updated_at": 1717440636,
  • "name": "Disconnected",
  • "slug": "disconnected",
  • "color": "ff33cc",
  • "icon": "plug",
  • "severity": -1,
  • "default_state": null,
  • "historical_grouping": false,
  • "operational_historical_entry": false,
  • "status_page_heading": "Not Accepting Requests",
  • "historical_entry_heading": "Requests Denied",
  • "notification_description": "is not accepting requests",
}

Issues

Issues represent an evolving incident in time. Issues have updates, which describe the evolution of an issue, often up to resolution. Issues may also set a schedule, which allows automatically starting and ending the issue.

Get All Issues

Index of Issues collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
components[]
Array of strings (ObjectId)

One or more Components to return Issues for. To use this query parameter, supply components[]={component_id} for each {component_id} you are requesting Issues for.

component
string (ObjectId) ^[a-fA-F0-9]{24}$

A single Component to return Issues for. This field is ignored if components[] is supplied.

standing
boolean
Default: false

When true, returns only ongoing Issues.

upcoming
boolean
Default: false

When true, returns only upcoming scheduled Issues.

resolved
boolean
Default: false

When true, returns only resolved Issues.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Issues to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Issue ObjectId after which the returned array of Issues will begin in descending order. Typically, this is used to retrieve the next page of Issues in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Issue ObjectId before which the returned array of Issues will end in descending order. Typically, this is used to retrieve the previous page of Issues in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Issue) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 2,
  • "has_more": false,
  • "data": [
    • {
      },
    • {
      }
    ]
}

Create a Issue

Create a new Issue. Returns the newly created Issue.

Authorizations:
basicbearer
Request Body schema: application/json
components
required
Array of strings (ObjectId)

The Components affected by this Issue.

open_graph_image_url
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

ObjectId (string) or IssueTemplate (object)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

(slug (string or null)) or (ObjectId (string or null))
ended_at
integer <int64> >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

Array of objects (Update)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

object (Schedule)

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

priority
integer
Default: 0
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
integer <int64> >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

Responses

Response Schema: application/hal+json
open_graph_image_url
required
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

scheduled
required
boolean

Whether this Issue has a Schedule.

specialization
required
string (ISSUE_SPECIALIZATION)
Enum: "informational" "maintenance" "general"

Whether this Issue has special abilities or connotations. general is the default behavior, indicating no specialization. Other values include maintenance, which indicates an Issue shows affected components as "under maintenance," and informational, which indicates that the Issue is an informational bulletin.

required
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

retrospective
required
boolean

Whether this Issue is retrospective; that is, the Issue was created both resolved and backdated.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was created.

standing
required
boolean

Whether this Issue is currently active and affecting its given Components.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

resolved
required
boolean

Whether this Issue is currently resolved, thus no longer affecting its given Components.

required
(ObjectId (string or null)) or (Semantic (object or null))
required
object (PagedArray)

The Components affected by this Issue.

required
object (PagedArray)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

ended_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Issue in seconds. That is, the total amount of time for which this Issue affects its Components. Thus, this field only accumulates while the Issue is ongoing/open.

Note: This value is zero for cancelled and informational Issues. For scheduled Issues, this field will remain zero until the Issue begins according to the Schedule.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Issue.

required
object or null (Maybe(Schedule))

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was last updated.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

cancelled_at
required
integer or null <int64> (maybe-timestamp) >= 0

The time at which this Issue was cancelled. This field is null if the Issue has not been cancelled or is not scheduled.

type
required
string
Value: "issue"
priority
required
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

cancelled
required
boolean or null (maybe-boolean)

Whether this Issue has been cancelled. Note that this field is null if the Issue is not scheduled.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "title": "Unplanned maintenance",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "label": "maintenance",
  • "components": [
    • "5c06ee938fbb652ab878c2a2"
    ]
}

Response samples

Content type
application/hal+json
{
  • "id": "5c06ee978fbb652ab878c3b8",
  • "type": "issue",
  • "label": "maintenance",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": null,
  • "semantic_override": null,
  • "created_at": 1543958167,
  • "updated_at": 1543958167,
  • "title": "Unplanned maintenance",
  • "priority": 0,
  • "open_graph_image_url": null,
  • "components": {
    • "type": "paged_array",
    • "total_count": 1,
    • "has_more": false,
    • "data": [
      ]
    },
  • "specialization": "maintenance",
  • "retrospective": false,
  • "scheduled": false,
  • "standing": true,
  • "resolved": false,
  • "cancelled": null,
  • "began_at": 1543958167,
  • "ended_at": null,
  • "duration": 0,
  • "cancelled_at": null,
  • "schedule": null,
  • "template": null,
  • "updates": {
    • "type": "paged_array",
    • "total_count": 0,
    • "has_more": false,
    • "data": [ ]
    }
}

Preview a Issue

Preview a new Issue. Returns the Issue that would be created if the same request is made against the actual collection.

This endpoint does not persist the returned Issue.

Authorizations:
basicbearer
Request Body schema: application/json
components
required
Array of strings (ObjectId)

The Components affected by this Issue.

open_graph_image_url
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

ObjectId (string) or IssueTemplate (object)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

(slug (string or null)) or (ObjectId (string or null))
ended_at
integer <int64> >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

Array of objects (Update)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

object (Schedule)

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

priority
integer
Default: 0
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
integer <int64> >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

Responses

Response Schema: application/hal+json
open_graph_image_url
required
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

scheduled
required
boolean

Whether this Issue has a Schedule.

specialization
required
string (ISSUE_SPECIALIZATION)
Enum: "informational" "maintenance" "general"

Whether this Issue has special abilities or connotations. general is the default behavior, indicating no specialization. Other values include maintenance, which indicates an Issue shows affected components as "under maintenance," and informational, which indicates that the Issue is an informational bulletin.

required
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

retrospective
required
boolean

Whether this Issue is retrospective; that is, the Issue was created both resolved and backdated.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was created.

standing
required
boolean

Whether this Issue is currently active and affecting its given Components.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

resolved
required
boolean

Whether this Issue is currently resolved, thus no longer affecting its given Components.

required
(ObjectId (string or null)) or (Semantic (object or null))
required
object (PagedArray)

The Components affected by this Issue.

required
object (PagedArray)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

ended_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Issue in seconds. That is, the total amount of time for which this Issue affects its Components. Thus, this field only accumulates while the Issue is ongoing/open.

Note: This value is zero for cancelled and informational Issues. For scheduled Issues, this field will remain zero until the Issue begins according to the Schedule.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Issue.

required
object or null (Maybe(Schedule))

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was last updated.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

cancelled_at
required
integer or null <int64> (maybe-timestamp) >= 0

The time at which this Issue was cancelled. This field is null if the Issue has not been cancelled or is not scheduled.

type
required
string
Value: "issue"
priority
required
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

cancelled
required
boolean or null (maybe-boolean)

Whether this Issue has been cancelled. Note that this field is null if the Issue is not scheduled.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "title": "Unplanned maintenance",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "label": "maintenance",
  • "components": [
    • "5c06ee938fbb652ab878c2a2"
    ]
}

Response samples

Content type
application/hal+json
{
  • "id": "5c06ee978fbb652ab878c3b8",
  • "type": "issue",
  • "label": "maintenance",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": null,
  • "semantic_override": null,
  • "created_at": 1543958167,
  • "updated_at": 1543958167,
  • "title": "Unplanned maintenance",
  • "priority": 0,
  • "open_graph_image_url": null,
  • "components": {
    • "type": "paged_array",
    • "total_count": 1,
    • "has_more": false,
    • "data": [
      ]
    },
  • "specialization": "maintenance",
  • "retrospective": false,
  • "scheduled": false,
  • "standing": true,
  • "resolved": false,
  • "cancelled": null,
  • "began_at": 1543958167,
  • "ended_at": null,
  • "duration": 0,
  • "cancelled_at": null,
  • "schedule": null,
  • "template": null,
  • "updates": {
    • "type": "paged_array",
    • "total_count": 0,
    • "has_more": false,
    • "data": [ ]
    }
}

Revise an Issue

Revise an Issue by ObjectId.

Note: this endpoint does not create Issue Updates, but merely revises the properties of the original Issue.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Request Body schema: application/json
open_graph_image_url
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

(ObjectId (string or null)) or (IssueTemplate (object or null)) or (IssueTemplate (object or null))
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

components
Array of strings (ObjectId)

The Components affected by this Issue.

(slug (string or null)) or (ObjectId (string or null))
object (Schedule)

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

priority
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
integer <int64> >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

Responses

Response Schema: application/hal+json
open_graph_image_url
required
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

scheduled
required
boolean

Whether this Issue has a Schedule.

specialization
required
string (ISSUE_SPECIALIZATION)
Enum: "informational" "maintenance" "general"

Whether this Issue has special abilities or connotations. general is the default behavior, indicating no specialization. Other values include maintenance, which indicates an Issue shows affected components as "under maintenance," and informational, which indicates that the Issue is an informational bulletin.

required
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

retrospective
required
boolean

Whether this Issue is retrospective; that is, the Issue was created both resolved and backdated.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was created.

standing
required
boolean

Whether this Issue is currently active and affecting its given Components.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

resolved
required
boolean

Whether this Issue is currently resolved, thus no longer affecting its given Components.

required
(ObjectId (string or null)) or (Semantic (object or null))
required
object (PagedArray)

The Components affected by this Issue.

required
object (PagedArray)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

ended_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Issue in seconds. That is, the total amount of time for which this Issue affects its Components. Thus, this field only accumulates while the Issue is ongoing/open.

Note: This value is zero for cancelled and informational Issues. For scheduled Issues, this field will remain zero until the Issue begins according to the Schedule.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Issue.

required
object or null (Maybe(Schedule))

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was last updated.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

cancelled_at
required
integer or null <int64> (maybe-timestamp) >= 0

The time at which this Issue was cancelled. This field is null if the Issue has not been cancelled or is not scheduled.

type
required
string
Value: "issue"
priority
required
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

cancelled
required
boolean or null (maybe-boolean)

Whether this Issue has been cancelled. Note that this field is null if the Issue is not scheduled.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "body": "We are currently doing some spot upgrades to degraded subsystems to maintain stability."
}

Response samples

Content type
application/hal+json
{
  • "id": "5c06ee978fbb652ab878c3b8",
  • "type": "issue",
  • "label": "maintenance",
  • "body": "We are currently doing some spot upgrades to degraded subsystems to maintain stability.",
  • "body_html": "<p>We are currently doing some spot upgrades to degraded subsystems to maintain stability.</p>\n",
  • "state_override": null,
  • "semantic_override": null,
  • "created_at": 1543958167,
  • "updated_at": 1543958400,
  • "title": "Unplanned maintenance",
  • "priority": 0,
  • "open_graph_image_url": null,
  • "components": {
    • "type": "paged_array",
    • "total_count": 1,
    • "has_more": false,
    • "data": [
      ]
    },
  • "specialization": "maintenance",
  • "retrospective": false,
  • "scheduled": false,
  • "standing": true,
  • "resolved": false,
  • "cancelled": null,
  • "began_at": 1543958167,
  • "ended_at": null,
  • "duration": 3670,
  • "cancelled_at": null,
  • "schedule": null,
  • "template": null,
  • "updates": {
    • "type": "paged_array",
    • "total_count": 0,
    • "has_more": false,
    • "data": [ ]
    }
}

Delete a Issue

Delete the given Issue by ObjectId.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Insufficient API key permissions.",
  • "logref": "2112f739-d1c5-4735-a686-d8a08a64686d"
}

Retrieve a Issue

Retrieve the given Issue by ObjectId.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Responses

Response Schema: application/hal+json
open_graph_image_url
required
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

scheduled
required
boolean

Whether this Issue has a Schedule.

specialization
required
string (ISSUE_SPECIALIZATION)
Enum: "informational" "maintenance" "general"

Whether this Issue has special abilities or connotations. general is the default behavior, indicating no specialization. Other values include maintenance, which indicates an Issue shows affected components as "under maintenance," and informational, which indicates that the Issue is an informational bulletin.

required
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

retrospective
required
boolean

Whether this Issue is retrospective; that is, the Issue was created both resolved and backdated.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was created.

standing
required
boolean

Whether this Issue is currently active and affecting its given Components.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

resolved
required
boolean

Whether this Issue is currently resolved, thus no longer affecting its given Components.

required
(ObjectId (string or null)) or (Semantic (object or null))
required
object (PagedArray)

The Components affected by this Issue.

required
object (PagedArray)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

ended_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Issue in seconds. That is, the total amount of time for which this Issue affects its Components. Thus, this field only accumulates while the Issue is ongoing/open.

Note: This value is zero for cancelled and informational Issues. For scheduled Issues, this field will remain zero until the Issue begins according to the Schedule.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Issue.

required
object or null (Maybe(Schedule))

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was last updated.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

cancelled_at
required
integer or null <int64> (maybe-timestamp) >= 0

The time at which this Issue was cancelled. This field is null if the Issue has not been cancelled or is not scheduled.

type
required
string
Value: "issue"
priority
required
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

cancelled
required
boolean or null (maybe-boolean)

Whether this Issue has been cancelled. Note that this field is null if the Issue is not scheduled.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5c06ee978fbb652ab878c3b8",
  • "type": "issue",
  • "label": "maintenance",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": null,
  • "semantic_override": null,
  • "created_at": 1543958167,
  • "updated_at": 1543958167,
  • "title": "Unplanned maintenance",
  • "priority": 0,
  • "open_graph_image_url": null,
  • "components": {
    • "type": "paged_array",
    • "total_count": 1,
    • "has_more": false,
    • "data": [
      ]
    },
  • "specialization": "maintenance",
  • "retrospective": false,
  • "scheduled": false,
  • "standing": false,
  • "resolved": true,
  • "cancelled": null,
  • "began_at": 1543958167,
  • "ended_at": 1543959101,
  • "duration": 934,
  • "cancelled_at": null,
  • "schedule": null,
  • "template": null,
  • "updates": {
    • "type": "paged_array",
    • "total_count": 2,
    • "has_more": false,
    • "data": [
      ]
    }
}

Cancel a Scheduled Issue

Cancel a scheduled issue, before or after it starts. Scheduled issues that have already ended cannot be cancelled.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Request Body schema: application/json
ObjectId (string) or IssueTemplate (object)

An optional Issue Template which will create an Issue Update describing the cancellation. This field takes precedence over body.

i18n-string (string) or i18n (object) (i18n-string)

An optional Issue Update body describing the cancellation.

Responses

Response Schema: application/hal+json
open_graph_image_url
required
string or null (maybe-string)

The URL to an image which will be displayed alongside this issue when shared on social media websites.

scheduled
required
boolean

Whether this Issue has a Schedule.

specialization
required
string (ISSUE_SPECIALIZATION)
Enum: "informational" "maintenance" "general"

Whether this Issue has special abilities or connotations. general is the default behavior, indicating no specialization. Other values include maintenance, which indicates an Issue shows affected components as "under maintenance," and informational, which indicates that the Issue is an informational bulletin.

required
i18n-string (string) or i18n (object) (i18n-string)

The initial body text of the issue in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Issue is applied against, which controls the values of title, body, and label when set.

retrospective
required
boolean

Whether this Issue is retrospective; that is, the Issue was created both resolved and backdated.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was created.

standing
required
boolean

Whether this Issue is currently active and affecting its given Components.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

resolved
required
boolean

Whether this Issue is currently resolved, thus no longer affecting its given Components.

required
(ObjectId (string or null)) or (Semantic (object or null))
required
object (PagedArray)

The Components affected by this Issue.

required
object (PagedArray)

A PagedArray whose data field contains an array of Issue Update objects. This PagedArray will always be completely paged in, so expect has_more to always be false. The first element of this array is the latest Update for this Issue, and should be considered the current status of this Issue.

ended_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Issue stopped affecting its given Components. This field is null if it has not ended yet.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this Issue in seconds. That is, the total amount of time for which this Issue affects its Components. Thus, this field only accumulates while the Issue is ongoing/open.

Note: This value is zero for cancelled and informational Issues. For scheduled Issues, this field will remain zero until the Issue begins according to the Schedule.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Issue.

required
object or null (Maybe(Schedule))

An object detailing the Schedule of this issue if it is scheduled. This field is null if the Issue is not scheduled.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue was last updated.

required
i18n-string (string) or i18n (object) (i18n-string)

The title of the Issue.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(ISSUE_LABEL))
Enum: "assessed" "identified" "informational" "investigating" "maintenance"

The initial label applied to the issue. The "current" label of the entire issue may be updated by the labels of Issue Updates, though this must be taken from the latest Update in updates.

cancelled_at
required
integer or null <int64> (maybe-timestamp) >= 0

The time at which this Issue was cancelled. This field is null if the Issue has not been cancelled or is not scheduled.

type
required
string
Value: "issue"
priority
required
integer (ISSUE_PRIORITY)
Enum: -1 0 1

The integer priority of the Issue. Priority pertains to how notifications are triggered for this Issue: -1 indicates low priority, meaning no notifications whatsoever will be triggered for this issue; 0 indicates normal priority, which is the default behavior; and, 1 indicates high priority, meaning all subscriptions across all notifiers will receive notifications for this Issue regardless of their notification preferences.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Issue began affecting its given Components.

cancelled
required
boolean or null (maybe-boolean)

Whether this Issue has been cancelled. Note that this field is null if the Issue is not scheduled.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "body": "We have discovered that this scheduled work is not actually necessary. Services continue to run as normal."
}

Response samples

Content type
application/hal+json
{
  • "id": "5c06ee978fbb652ab878c3b8",
  • "type": "issue",
  • "label": null,
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": -1,
  • "semantic_override": null,
  • "created_at": 1543950000,
  • "updated_at": 1543950000,
  • "title": "Issue 34",
  • "priority": 0,
  • "open_graph_image_url": null,
  • "components": {
    • "type": "paged_array",
    • "total_count": 2,
    • "has_more": false,
    • "data": [
      ]
    },
  • "specialization": "general",
  • "retrospective": false,
  • "scheduled": true,
  • "standing": false,
  • "resolved": false,
  • "cancelled": true,
  • "began_at": 1543958167,
  • "ended_at": null,
  • "duration": 0,
  • "cancelled_at": 1543963200,
  • "schedule": {
    • "id": "5c06ee9a8fbb652ab878c4ee",
    • "type": "schedule",
    • "starts_at": 1543958167,
    • "ends_at": 1543965370,
    • "notify_subscribers_at": 1543951000,
    • "started": true,
    • "ended": false,
    • "notified": true
    },
  • "template": null,
  • "updates": {
    • "type": "paged_array",
    • "total_count": 1,
    • "has_more": false,
    • "data": [
      ]
    }
}

Issue Updates

Issue Updates describe a particular phase in the evolution of an issue. Updates have their own bodies and label, and can also change the current state override of the Issue. Updates are also responsible for resolving/reopening Issues, as well as adding addendums/postmortems to the end of an Issue.

Get All Updates

Index of Updates collection. Returns a PagedArray.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Updates to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Update ObjectId after which the returned array of Updates will begin in descending order. Typically, this is used to retrieve the next page of Updates in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Update ObjectId before which the returned array of Updates will end in descending order. Typically, this is used to retrieve the previous page of Updates in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Update-Expansionary) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 2,
  • "has_more": false,
  • "data": [
    • {
      },
    • {
      }
    ]
}

Create a Update

Create a new Update. Returns the newly created Update.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Request Body schema: application/json
ObjectId (string) or IssueTemplate (object)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

(slug (string or null)) or (ObjectId (string or null))
state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
integer <int64> >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

Responses

Response Schema: application/hal+json
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

required
(ObjectId (string or null)) or (Semantic (object or null))
id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Update.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was last revised.

reopening
required
boolean

Whether this Update reopened the Issue if it was already resolved in an Update before this one.

required
ObjectId (string) or Issue (object)
expandable: true

The Issue that this Update pertains to.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
required
integer <int64> (timestamp) >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

effective
required
boolean

When true, denotes that this Update is the latest update on this Issue (hence, the "effective" Update according to effective_after).

type
required
string
Value: "update"
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "body": "**Lorem ipsum** _dolor sit amet_."
}

Response samples

Content type
application/hal+json
{
  • "id": "5c16ee948fbb652ab878c2c6",
  • "type": "update",
  • "label": null,
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": 0,
  • "semantic_override": null,
  • "created_at": 1543958900,
  • "updated_at": 1543958900,
  • "reopening": false,
  • "effective": true,
  • "effective_after": 1543958900,
  • "template": null,
  • "issue": {
    • "id": "5c06ee978fbb652ab878c3b8",
    • "type": "issue",
    • "label": "maintenance",
    • "body": "**Lorem ipsum** _dolor sit amet_.",
    • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
    • "state_override": null,
    • "semantic_override": null,
    • "created_at": 1543958167,
    • "updated_at": 1543958167,
    • "title": "Unplanned maintenance",
    • "priority": 0,
    • "open_graph_image_url": null,
    • "components": {
      },
    • "specialization": "maintenance",
    • "retrospective": false,
    • "scheduled": false,
    • "standing": true,
    • "resolved": false,
    • "cancelled": null,
    • "began_at": 1543958167,
    • "ended_at": null,
    • "duration": 3690,
    • "cancelled_at": null,
    • "schedule": null,
    • "template": null,
    • "updates": {
      }
    }
}

Preview a Update

Preview a new Update. Returns the Update that would be created if the same request is made against the actual collection.

This endpoint does not persist the returned Update.

Authorizations:
basicbearer
path Parameters
issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue.

Request Body schema: application/json
ObjectId (string) or IssueTemplate (object)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

(slug (string or null)) or (ObjectId (string or null))
state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
integer <int64> >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

Responses

Response Schema: application/hal+json
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

required
(ObjectId (string or null)) or (Semantic (object or null))
id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Update.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was last revised.

reopening
required
boolean

Whether this Update reopened the Issue if it was already resolved in an Update before this one.

required
ObjectId (string) or Issue (object)
expandable: true

The Issue that this Update pertains to.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
required
integer <int64> (timestamp) >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

effective
required
boolean

When true, denotes that this Update is the latest update on this Issue (hence, the "effective" Update according to effective_after).

type
required
string
Value: "update"
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "body": "**Lorem ipsum** _dolor sit amet_."
}

Response samples

Content type
application/hal+json
{
  • "id": "5c16ee948fbb652ab878c2c6",
  • "type": "update",
  • "label": null,
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": 0,
  • "semantic_override": null,
  • "created_at": 1543958900,
  • "updated_at": 1543958900,
  • "reopening": false,
  • "effective": true,
  • "effective_after": 1543958900,
  • "template": null,
  • "issue": {
    • "id": "5c06ee978fbb652ab878c3b8",
    • "type": "issue",
    • "label": "maintenance",
    • "body": "**Lorem ipsum** _dolor sit amet_.",
    • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
    • "state_override": null,
    • "semantic_override": null,
    • "created_at": 1543958167,
    • "updated_at": 1543958167,
    • "title": "Unplanned maintenance",
    • "priority": 0,
    • "open_graph_image_url": null,
    • "components": {
      },
    • "specialization": "maintenance",
    • "retrospective": false,
    • "scheduled": false,
    • "standing": true,
    • "resolved": false,
    • "cancelled": null,
    • "began_at": 1543958167,
    • "ended_at": null,
    • "duration": 3690,
    • "cancelled_at": null,
    • "schedule": null,
    • "template": null,
    • "updates": {
      }
    }
}

Retrieve a Update

Retrieve the given Update by ObjectId.

Authorizations:
basicbearer
path Parameters
update_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Update.

issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue that this Update pertains to.

Responses

Response Schema: application/hal+json
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

required
(ObjectId (string or null)) or (Semantic (object or null))
id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Update.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was last revised.

reopening
required
boolean

Whether this Update reopened the Issue if it was already resolved in an Update before this one.

required
ObjectId (string) or Issue (object)
expandable: true

The Issue that this Update pertains to.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
required
integer <int64> (timestamp) >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

effective
required
boolean

When true, denotes that this Update is the latest update on this Issue (hence, the "effective" Update according to effective_after).

type
required
string
Value: "update"
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5c16fe948fbb652ab878c2cc",
  • "type": "update",
  • "label": "resolved",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": null,
  • "semantic_override": null,
  • "created_at": 1543959101,
  • "updated_at": 1543959101,
  • "issue": "5c06ee978fbb652ab878c3b8",
  • "template": null,
  • "reopening": false,
  • "effective": true,
  • "effective_after": 1543959101
}

Revise an Update

Revise an Update by ObjectId.

Authorizations:
basicbearer
path Parameters
update_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Update.

issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue that this Update pertains to.

Request Body schema: application/json
(ObjectId (string or null)) or (IssueTemplate (object or null)) or (IssueTemplate (object or null))
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

(slug (string or null)) or (ObjectId (string or null))
state_override
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
integer <int64> >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

Responses

Response Schema: application/hal+json
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body text of this Update in raw markdown.

required
object or null (Maybe(IssueTemplate)

The IssueTemplateApplication that this Update is applied against, which controls the values of body, and label when set.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was created.

required
i18n-string (string) or i18n (object) (i18n-string)

An HTML rendered view of the markdown in body.

required
(ObjectId (string or null)) or (Semantic (object or null))
id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Update.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Update was last revised.

reopening
required
boolean

Whether this Update reopened the Issue if it was already resolved in an Update before this one.

required
ObjectId (string) or Issue (object)
expandable: true

The Issue that this Update pertains to.

state_override
required
integer or null (Maybe(integer-state))
Enum: -1 0 1

The integer state which overrides the state of affected Components in components. A value of null indicates no override is present.

label
required
string or null (Maybe(UPDATE_LABEL))
Enum: "identified" "investigating" "monitoring" "resolved" "addendum" "cancelled"

The label applied to this update, as well as the issue at large when this Update is the latest Update in the Issue. The label can be thought of as the "state" of the Issue as of this Update (e.g. "Problem Identified", "Monitoring", "Resolved").

effective_after
required
integer <int64> (timestamp) >= 0

The time after which this Update is considered the latest Update on its Issue, until the effective_after time of the Update succeeding this one, if one exists.

effective
required
boolean

When true, denotes that this Update is the latest update on this Issue (hence, the "effective" Update according to effective_after).

type
required
string
Value: "update"
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "label": "investigating"
}

Response samples

Content type
application/hal+json
{
  • "id": "5c16ee948fbb652ab878c2c6",
  • "type": "update",
  • "label": "investigating",
  • "body": "**Lorem ipsum** _dolor sit amet_.",
  • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
  • "state_override": 0,
  • "semantic_override": null,
  • "created_at": 1543958900,
  • "updated_at": 1543958900,
  • "reopening": false,
  • "effective": true,
  • "effective_after": 1543958900,
  • "template": null,
  • "issue": {
    • "id": "5c06ee978fbb652ab878c3b8",
    • "type": "issue",
    • "label": "maintenance",
    • "body": "**Lorem ipsum** _dolor sit amet_.",
    • "body_html": "<p><strong>Lorem ipsum</strong> <em>dolor sit amet</em>.</p>\n",
    • "state_override": null,
    • "semantic_override": null,
    • "created_at": 1543958167,
    • "updated_at": 1543958167,
    • "title": "Unplanned maintenance",
    • "priority": 0,
    • "open_graph_image_url": null,
    • "components": {
      },
    • "specialization": "maintenance",
    • "retrospective": false,
    • "scheduled": false,
    • "standing": true,
    • "resolved": false,
    • "cancelled": null,
    • "began_at": 1543958167,
    • "ended_at": null,
    • "duration": 3690,
    • "cancelled_at": null,
    • "schedule": null,
    • "template": null,
    • "updates": {
      }
    }
}

Delete a Update

Delete the given Update by ObjectId.

Authorizations:
basicbearer
path Parameters
update_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Update.

issue_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Issue that this Update pertains to.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Insufficient API key permissions.",
  • "logref": "6dd9a48c-4905-4f59-9d93-1d1e9c321bb9"
}

IssueTemplates

A template for creating Issues, as well as Issue Updates.

Get All IssueTemplates

Index of IssueTemplates collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
kind
string
Enum: "issue" "update"

Return only IssueTemplates for the given kind (i.e. Issue or Update).

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of IssueTemplates to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A IssueTemplate ObjectId after which the returned array of IssueTemplates will begin in descending order. Typically, this is used to retrieve the next page of IssueTemplates in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A IssueTemplate ObjectId before which the returned array of IssueTemplates will end in descending order. Typically, this is used to retrieve the previous page of IssueTemplates in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (IssueTemplate) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Create a IssueTemplate

Create a new IssueTemplate. Returns the newly created IssueTemplate.

Authorizations:
basicbearer
Request Body schema: application/json
name
required
string

An internal name for identifying this IssueTemplate.

kind
required
string (ISSUE_TEMPLATE_KIND)
Enum: "issue" "update"

The "kind" of this IssueTemplate. This field can be either issue or update, depending on whether this IssueTemplate can be applied to an Issue or Issue Update, respectively.

object (IssueTemplateVariables)

An object defining a set of typed variables that can be provided in an application of this IssueTemplate. The variables can be accessed from any field in the IssueTemplate supporting Liquid.

Each defined variable can be given an expected type, and can be marked as required.

i18n-string (string) or i18n (object) (i18n-string)

The body to use for an Issue/Update applied against this template. This field supports Liquid templating.

i18n-string (string) or i18n (object) (i18n-string)

When kind is issue, then the applied Issue will take on this title. This field supports Liquid templating.

label
string (ISSUE_TEMPLATE_LABEL)
Enum: "maintenance" "assessed" "identified" "investigating" "monitoring" "resolved" "addendum" "informational"

The label to use for an Issue/Update applied against this template.

Responses

Response Schema: application/hal+json
required
object (IssueTemplateVariables)

An object defining a set of typed variables that can be provided in an application of this IssueTemplate. The variables can be accessed from any field in the IssueTemplate supporting Liquid.

Each defined variable can be given an expected type, and can be marked as required.

required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body to use for an Issue/Update applied against this template. This field supports Liquid templating.

created_at
required
integer <int64> (timestamp) >= 0
name
required
string

An internal name for identifying this IssueTemplate.

updated_at
required
integer <int64> (timestamp) >= 0
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

When kind is issue, then the applied Issue will take on this title. This field supports Liquid templating.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the IssueTemplate.

label
required
string or null (Maybe(ISSUE_TEMPLATE_LABEL))
Enum: "maintenance" "assessed" "identified" "investigating" "monitoring" "resolved" "addendum" "informational"

The label to use for an Issue/Update applied against this template.

type
required
string
Value: "issue_template"
kind
required
string (ISSUE_TEMPLATE_KIND)
Enum: "issue" "update"

The "kind" of this IssueTemplate. This field can be either issue or update, depending on whether this IssueTemplate can be applied to an Issue or Issue Update, respectively.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "name": "Investigation",
  • "kind": "update",
  • "body": "Investigating:\n\n{{ vars.summary }}",
  • "label": "investigating",
  • "variables": {
    • "summary": {
      }
    }
}

Response samples

Content type
application/hal+json
{
  • "id": "646429738fbb658d5b169308",
  • "type": "issue_template",
  • "created_at": 1684285811,
  • "updated_at": 1684285847,
  • "name": "Investigation",
  • "kind": "update",
  • "title": null,
  • "body": "Investigating:\n\n{{ vars.summary }}",
  • "label": "investigating",
  • "variables": {
    • "summary": {
      }
    },
}

Retrieve a IssueTemplate

Retrieve the given IssueTemplate by ObjectId.

Authorizations:
basicbearer
path Parameters
issue_template_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the IssueTemplate.

Responses

Response Schema: application/hal+json
required
object (IssueTemplateVariables)

An object defining a set of typed variables that can be provided in an application of this IssueTemplate. The variables can be accessed from any field in the IssueTemplate supporting Liquid.

Each defined variable can be given an expected type, and can be marked as required.

required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body to use for an Issue/Update applied against this template. This field supports Liquid templating.

created_at
required
integer <int64> (timestamp) >= 0
name
required
string

An internal name for identifying this IssueTemplate.

updated_at
required
integer <int64> (timestamp) >= 0
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

When kind is issue, then the applied Issue will take on this title. This field supports Liquid templating.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the IssueTemplate.

label
required
string or null (Maybe(ISSUE_TEMPLATE_LABEL))
Enum: "maintenance" "assessed" "identified" "investigating" "monitoring" "resolved" "addendum" "informational"

The label to use for an Issue/Update applied against this template.

type
required
string
Value: "issue_template"
kind
required
string (ISSUE_TEMPLATE_KIND)
Enum: "issue" "update"

The "kind" of this IssueTemplate. This field can be either issue or update, depending on whether this IssueTemplate can be applied to an Issue or Issue Update, respectively.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "645ac4088fbb650535674c8f",
  • "type": "issue_template",
  • "created_at": 1683670024,
  • "updated_at": 1683858725,
  • "name": "Good Issue Template",
  • "kind": "issue",
  • "title": "Good Issue {{ vars.ordinal }}",
  • "body": "**Thing in itself**: {{ vars.thing | default: 'unknown' }}",
  • "label": null,
  • "variables": {
    • "ordinal": {
      },
    • "var_two": {
      },
    • "thing": {
      },
    • "time": {
      }
    },
}

Update a IssueTemplate

Update the given IssueTemplate by ObjectId.

Authorizations:
basicbearer
path Parameters
issue_template_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the IssueTemplate.

Request Body schema: application/json
object (IssueTemplateVariables)

An object defining a set of typed variables that can be provided in an application of this IssueTemplate. The variables can be accessed from any field in the IssueTemplate supporting Liquid.

Each defined variable can be given an expected type, and can be marked as required.

i18n-string (string) or i18n (object) (i18n-string)

The body to use for an Issue/Update applied against this template. This field supports Liquid templating.

name
string

An internal name for identifying this IssueTemplate.

i18n-string (string) or i18n (object) (i18n-string)

When kind is issue, then the applied Issue will take on this title. This field supports Liquid templating.

label
string (ISSUE_TEMPLATE_LABEL)
Enum: "maintenance" "assessed" "identified" "investigating" "monitoring" "resolved" "addendum" "informational"

The label to use for an Issue/Update applied against this template.

Responses

Response Schema: application/hal+json
required
object (IssueTemplateVariables)

An object defining a set of typed variables that can be provided in an application of this IssueTemplate. The variables can be accessed from any field in the IssueTemplate supporting Liquid.

Each defined variable can be given an expected type, and can be marked as required.

required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

The body to use for an Issue/Update applied against this template. This field supports Liquid templating.

created_at
required
integer <int64> (timestamp) >= 0
name
required
string

An internal name for identifying this IssueTemplate.

updated_at
required
integer <int64> (timestamp) >= 0
required
(maybe-i18n-string (string or null)) or (i18n (object or null)) (maybe-i18n-string)

When kind is issue, then the applied Issue will take on this title. This field supports Liquid templating.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the IssueTemplate.

label
required
string or null (Maybe(ISSUE_TEMPLATE_LABEL))
Enum: "maintenance" "assessed" "identified" "investigating" "monitoring" "resolved" "addendum" "informational"

The label to use for an Issue/Update applied against this template.

type
required
string
Value: "issue_template"
kind
required
string (ISSUE_TEMPLATE_KIND)
Enum: "issue" "update"

The "kind" of this IssueTemplate. This field can be either issue or update, depending on whether this IssueTemplate can be applied to an Issue or Issue Update, respectively.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "body": "lookin' into it\n\n{{ vars.summary }}"
}

Response samples

Content type
application/hal+json
{
  • "id": "646429738fbb658d5b169308",
  • "type": "issue_template",
  • "created_at": 1684285811,
  • "updated_at": 1684285847,
  • "name": "Investigation",
  • "kind": "update",
  • "title": null,
  • "body": "lookin' into it\n\n{{ vars.summary }}",
  • "label": "investigating",
  • "variables": {
    • "summary": {
      }
    },
}

Delete a IssueTemplate

Delete the given IssueTemplate by ObjectId.

Authorizations:
basicbearer
path Parameters
issue_template_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the IssueTemplate.

Responses

Response samples

Content type
application/hal+json
{
  • "message": "Insufficient API key permissions.",
  • "logref": "ad7742fc-d6ca-4985-90a5-b90009014a72"
}

Notifiers

Notifiers broadcast Event-based notifications to one or more endpoints. Most Notifier channels use Subscriptions to facilitate multi-endpoint notifications.

Some Notifier channels (e.g. twitter) do not use Subscriptions, and thus a notification will only be sent to the single configured endpoint.

Get All Notifiers

Index of Notifiers collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
channel.type
string

Return Notifiers with the provided channel.type.

enabled
boolean

When true, returns only Notifiers that are currently enabled. When false, returns only Notifiers that are currently disabled. When this parameter is not given, all Notifiers are returned.

subscribable
boolean

When true, returns only Notifiers that can have individual Subscriptions. When false, returns only "unsubscribable" Notifiers. When this parameter is not given, all Notifiers are returned.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Notifiers to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Notifier ObjectId after which the returned array of Notifiers will begin in descending order. Typically, this is used to retrieve the next page of Notifiers in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Notifier ObjectId before which the returned array of Notifiers will end in descending order. Typically, this is used to retrieve the previous page of Notifiers in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Notifier) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Create a Notifier

Create a new Notifier. Returns the newly created Notifier.

Authorizations:
basicbearer
Request Body schema: application/json
required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Form)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

enabled
boolean
Default: true

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

include_group_in_component_names
boolean
Default: false

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
boolean
Default: false

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
enabled
required
boolean

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Channels)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was created.

include_group_in_component_names
required
boolean

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
required
boolean

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Notifier.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was last updated.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "notifier"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
subscribable
required
boolean

Whether this Notifier channel can have individual Subscriptions. When false, this Notifier cannot create Subscriptions, and broadcasts to a single endpoint configured in channel.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "channel": {
    • "type": "ms_teams"
    }
}

Response samples

Content type
application/hal+json
{}

Retrieve a Notifier

Retrieve the given Notifier by ObjectId.

Authorizations:
basicbearer
path Parameters
notifier_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Notifier.

Responses

Response Schema: application/hal+json
enabled
required
boolean

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Channels)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was created.

include_group_in_component_names
required
boolean

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
required
boolean

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Notifier.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was last updated.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "notifier"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
subscribable
required
boolean

Whether this Notifier channel can have individual Subscriptions. When false, this Notifier cannot create Subscriptions, and broadcasts to a single endpoint configured in channel.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Update a Notifier

Update the given Notifier by ObjectId.

Authorizations:
basicbearer
path Parameters
notifier_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Notifier.

Request Body schema: application/json
enabled
boolean

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Form)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

include_group_in_component_names
boolean

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
boolean

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
enabled
required
boolean

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Channels)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was created.

include_group_in_component_names
required
boolean

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
required
boolean

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Notifier.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was last updated.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "notifier"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
subscribable
required
boolean

Whether this Notifier channel can have individual Subscriptions. When false, this Notifier cannot create Subscriptions, and broadcasts to a single endpoint configured in channel.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "enabled": false
}

Response samples

Content type
application/hal+json
{}

Delete a Notifier

Delete the given Notifier by ObjectId.

Authorizations:
basicbearer
path Parameters
notifier_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Notifier.

Responses

Response samples

Content type
application/hal+json
{
  • "type": "api/error/not_authorized",
  • "logref": "4c6ab122-5232-4153-9579-bebea99c101b",
  • "message": "Insufficient API key permissions."
}

Broadcast a Test Notification

Broadcasts a test notification to all Subscriptions (if subscribable is true), that listen to event notifier_tested. This action always succeeds regardless of the correctness of the Notifier's configuration.

Authorizations:
basicbearer
path Parameters
notifier_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Notifier.

Responses

Response Schema: application/hal+json
enabled
required
boolean

Whether this Notifier is currently enabled. Disabled notifiers do not deliver notifications to endpoints until enabled again.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) or Feed (object) or Twitter (object) (Channels)

Defines the channel used by this Notifier to deliver notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. SMTP server details, API credentials, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was created.

include_group_in_component_names
required
boolean

For certain Notifier channels (i.e. email, slack), instructs templates to render Component names with their Group name as well (e.g. Group 1 / Component 1).

curated
required
boolean

Whether this Notifier is curated. When true, disables public subscriptions on this Notifier. Thus, Subscriptions for this Notifier may only be created from the dashboard or API.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Notifier.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Notifier was last updated.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "notifier"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
subscribable
required
boolean

Whether this Notifier channel can have individual Subscriptions. When false, this Notifier cannot create Subscriptions, and broadcasts to a single endpoint configured in channel.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Subscriptions

Subscriptions represent an individual notification endpoint, often managed by a single person (e.g. email address, SMS number, etc.), usually the recipient of notifications sent to the configured endpoint. However, some Subscription channels can be curated in order to prevent public changes to its preferences.

All Subscriptions are tied to a specific Notifier that may configure additional properties regarding the endpoint channel (e.g. SMTP server details, service credentials, etc.).

Get All Subscriptions

Index of Subscriptions collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
channel.type
string

Return Subscriptions with the provided channel.type.

channel.address
string
Example: channel.address=@example.com

Return Email Subscriptions whose channel.address field matches the query parameter by substring match. An incomplete email address (e.g. @example.com, user, user@example, etc.) is an acceptable input to this parameter. This field is ignored if channel.address! is given.

Note: It is possible for email addresses like 0user@example.com to match the query channel.address=user@example.com by substring match. If you require exact matching, use channel.address! as described below.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

channel.address!
string
Example: channel.address!=user@example.com

Return Email Subscriptions whose channel.address field matches the query parameter exactly. A valid email address must be given for this parameter to work correctly.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

channel.phone
string
Example: channel.phone=+1307

Return SNS Subscriptions whose channel.phone field matches the query parameter by substring match. An incomplete phone number is an acceptable input to this parameter. This field is ignored if channel.phone! is given.

channel.phone!
string^\+?[1-9]\d{1,14}$
Example: channel.phone!=+15555555555

Return SNS Subscriptions whose channel.phone field matches the parameter exactly. A valid phone number must be given for this parameter to work correctly.

notifier
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Subscriptions for the provided Notifier ObjectId.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Subscriptions to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Subscription ObjectId after which the returned array of Subscriptions will begin in descending order. Typically, this is used to retrieve the next page of Subscriptions in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Subscription ObjectId before which the returned array of Subscriptions will end in descending order. Typically, this is used to retrieve the previous page of Subscriptions in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Subscription) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Create a Subscription

Create a new Subscription. Returns the newly created Subscription.

Authorizations:
basicbearer
Request Body schema: application/json
required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) (Form)

Defines the channel used by this subscription to receive notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. Email address, SMS number, etc.).

notifier
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The Notifier that this Subscription receives notifications from.

remove_links
boolean
Default: false

For certain Notifier channels (i.e. email), instructs templates to render notifications without any links back to the status page. This field requires curated (and thus curatable) to be true.

notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

curated
boolean
Default: false

Whether this Subscription is curated. When true, disables public preference changes, requiring any Subscription preferences to be edited via the dashboard or API. This can be useful in cases like email, for example, when a Subscription's address represents an entire mailing list, rather than a single individual.

Note: a Subscription must be curatable in order to set curated true.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
remove_links
required
boolean

For certain Notifier channels (i.e. email), instructs templates to render notifications without any links back to the status page. This field requires curated (and thus curatable) to be true.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) (Channels)

Defines the channel used by this subscription to receive notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. Email address, SMS number, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was created.

curated
required
boolean

Whether this Subscription is curated. When true, disables public preference changes, requiring any Subscription preferences to be edited via the dashboard or API. This can be useful in cases like email, for example, when a Subscription's address represents an entire mailing list, rather than a single individual.

Note: a Subscription must be curatable in order to set curated true.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Subscription.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was last updated.

required
ObjectId (string) or Notifier (object)
expandable: true

The Notifier that this Subscription receives notifications from.

curatable
required
boolean

Whether this Subscription channel allows for curation.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "subscription"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "notifier": "5c81682c8fbb652388b9fdb9",
  • "channel": {
    • "type": "email",
    • "address": "sub3@example.com"
    }
}

Response samples

Content type
application/hal+json
{}

Retrieve a Subscription

Retrieve the given Subscription by ObjectId.

Authorizations:
basicbearer
path Parameters
subscription_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Subscription.

Responses

Response Schema: application/hal+json
remove_links
required
boolean

For certain Notifier channels (i.e. email), instructs templates to render notifications without any links back to the status page. This field requires curated (and thus curatable) to be true.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) (Channels)

Defines the channel used by this subscription to receive notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. Email address, SMS number, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was created.

curated
required
boolean

Whether this Subscription is curated. When true, disables public preference changes, requiring any Subscription preferences to be edited via the dashboard or API. This can be useful in cases like email, for example, when a Subscription's address represents an entire mailing list, rather than a single individual.

Note: a Subscription must be curatable in order to set curated true.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Subscription.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was last updated.

required
ObjectId (string) or Notifier (object)
expandable: true

The Notifier that this Subscription receives notifications from.

curatable
required
boolean

Whether this Subscription channel allows for curation.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "subscription"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Update a Subscription

Update the given Subscription by ObjectId.

Authorizations:
basicbearer
path Parameters
subscription_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Subscription.

Request Body schema: application/json
remove_links
boolean

For certain Notifier channels (i.e. email), instructs templates to render notifications without any links back to the status page. This field requires curated (and thus curatable) to be true.

Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) (Form)

Defines the channel used by this subscription to receive notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. Email address, SMS number, etc.).

notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

curated
boolean

Whether this Subscription is curated. When true, disables public preference changes, requiring any Subscription preferences to be edited via the dashboard or API. This can be useful in cases like email, for example, when a Subscription's address represents an entire mailing list, rather than a single individual.

Note: a Subscription must be curatable in order to set curated true.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
remove_links
required
boolean

For certain Notifier channels (i.e. email), instructs templates to render notifications without any links back to the status page. This field requires curated (and thus curatable) to be true.

required
Email (object) or Push (object) or SNS (object) or MsTeams (object) or Slack (object) or Webhook (object) (Channels)

Defines the channel used by this subscription to receive notifications. Typically, this sets the type as well as relevant credentials for the channel (e.g. Email address, SMS number, etc.).

notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was created.

curated
required
boolean

Whether this Subscription is curated. When true, disables public preference changes, requiring any Subscription preferences to be edited via the dashboard or API. This can be useful in cases like email, for example, when a Subscription's address represents an entire mailing list, rather than a single individual.

Note: a Subscription must be curatable in order to set curated true.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Subscription.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Subscription was last updated.

required
ObjectId (string) or Notifier (object)
expandable: true

The Notifier that this Subscription receives notifications from.

curatable
required
boolean

Whether this Subscription channel allows for curation.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "subscription"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "listens_to_level": "normal"
}

Response samples

Content type
application/hal+json
{}

Delete a Subscription

Delete the given Subscription by ObjectId.

Authorizations:
basicbearer
path Parameters
subscription_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Subscription.

Responses

Response samples

Content type
application/hal+json
{
  • "type": "api/error/not_authorized",
  • "logref": "353f9c9c-274a-4399-b8a3-47eb83df5b4e",
  • "message": "Insufficient API key permissions."
}

Events

Events are immutable objects representing various things that have happened on your status page, such as Issue creation/update/resolution, new Watchdog Statuses, object lifecycles, and more.

Get All Events

Index of Events collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
eventable
string (ObjectId) ^[a-fA-F0-9]{24}$

Return Events for the specific eventable ID. This could be the ID of any object that has events, such as a Component, Issue, Status, Subscription, Notifier, etc.

eventable.type
string
Enum: "component" "metric_provider" "issue" "notifier" "subscription" "status"

Return Events with the specific eventable.type.

kind
string

Only return Events with the given kind.

context.component
string (ObjectId) ^[a-fA-F0-9]{24}$

Only return Events whose context includes the given Component ID.

context.components[]
Array of strings (ObjectId)

Only return Events whose context includes one or more of the given Component IDs. To use this query parameter, supply context.components[]={component_id} for each {component_id} to return Events for.

context.update
string (ObjectId) ^[a-fA-F0-9]{24}$

Only return Events whose context includes the given Issue Update ID.

context.notifier
string (ObjectId) ^[a-fA-F0-9]{24}$

Only return Events whose context includes the given Notifier ID.

context.event
string (ObjectId) ^[a-fA-F0-9]{24}$

Only return Events whose context includes the given Event ID.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Events to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Event ObjectId after which the returned array of Events will begin in descending order. Typically, this is used to retrieve the next page of Events in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Event ObjectId before which the returned array of Events will end in descending order. Typically, this is used to retrieve the previous page of Events in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of any (Events) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Retrieve a Event

Retrieve the given Event by ObjectId.

Authorizations:
basicbearer
path Parameters
event_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Event.

Responses

Response Schema: application/hal+json
required
ObjectId (string) or Component (object)
expandable: true

The object responsible for the emission of this Event. The type of this field depends on the kind.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Event was emitted.

required
object (EmptyContextual)

Additional objects related to this Event. The structure of this field depends on the kind.

For example, Issue Events always have a context.components field which contains a PagedArray of the components of the Issue.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Event.

type
required
string
Value: "event"
kind
required
string

The particular subtype of Event.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Timeline

The Timeline is a global/Component-wise history of Issues and Statuses across your Status Page. Any Timeline is a PagedArray of TimelineItems in reverse-chronological order (i.e. descending). A TimelineItem can represent either a Status or Issue, or the interactions between them.

A Timeline can be pulled from this API for the entire Status Page (the default behavior), or one or more Components (or Group of Components).

For more information on the mechanics of the Timeline, please read this knowledgebase article.

Get a Timeline

Retrieve a Timeline according to the given filters. Returns a PagedArray of TimelineItems, with latest entries first.

Authorizations:
basicbearer
query Parameters
group
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Timeline for the Components of the given Group. This field is ignored if components[] is supplied.

components[]
Array of strings (ObjectId)

Return the Timeline for the given set of Components. To use this query parameter, supply components[]={component_id} for each {component_id} that makes up this composite Timeline.

component
string (ObjectId) ^[a-fA-F0-9]{24}$

Return the Timeline for the given Component. This field is ignored if components[] is supplied.

excluded
boolean
Default: false

When true, returns TimelineItems for which excluded is true, in addition to the rest (i.e. excluded false) of the queried Timeline. This field is ignored when component, components[], or group is supplied.

effective
boolean
Default: false

When false, returns TimelineItems for which effective is false, in addition to the rest (i.e. effective true) of the queried Timeline.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Timeline to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Timeline ObjectId after which the returned array of Timeline will begin in descending order. Typically, this is used to retrieve the next page of Timeline in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Timeline ObjectId before which the returned array of Timeline will end in descending order. Typically, this is used to retrieve the previous page of Timeline in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (TimelineItem) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Get a TimelineItem

Retrieve the given TimelineItem by UUID.

Authorizations:
basicbearer
path Parameters
timeline_item_id
required
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

The UUID of the of the TimelineItem.

Responses

Response Schema: application/hal+json
required
object (PagedArray)

A PagedArray of Components affected by this TimelineItem.

ended_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this TimelineItem stopped affecting the listed components.

duration
required
integer (nonnegative-integer) >= 0

The effective duration of this TimelineItem in seconds. This field is zero when effective is false.

id
required
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

The UUID of this TimelineItem.

required
TIMELINE_SOURCE_GLOBAL (string) or ObjectId (string) or Array of TIMELINE_SOURCE (strings) (TIMELINE_SOURCE)

The particular Timeline source that this TimelineItem belongs to. This is either the ObjectId of a single Component, an array of multiple Component ObjectIds, or the string global (i.e. the item comes from the global Timeline, aggregated from all Component-wise Timelines).

required
i18n-string (string) or i18n (object) (i18n-string)

The title of this TimelineItem. If issue exists, then it is the title of issue.

required
object (TIMELINE_OUTAGE_DURATIONS)

The per-Component outage durations of this TimelineItem, each in seconds. The keys of this object are Component ObjectIds, one for each Component in components.

This field is particularly useful when source is global (or multiple Components) and the outage durations of the affected components are not all equal (and thus outage_duration is null).

required
(ObjectId (string or null)) or (Issue (object or null))
excluded
required
boolean

Whether this TimelineItem is excluded from the global Timeline. Excluded items can still be pulled from this API, but will not be displayed on status pages.

effective
required
boolean

Whether this TimelineItem affects the listed components. Typically, this field is true, unless issue is a cancelled or informational Issue (neither of which can affect their Components).

type
required
string
Value: "timeline_item"
outage_duration
required
integer or null (Maybe(nonnegative-integer)) >= 0

The outage duration of this TimelineItem in seconds. That is, the amount of time for which components are considered to be in an "outage" state, thus negatively affecting their uptime measurements.

Note: when source is global (or multiple Components), and the Component-wise outage durations of components are not all equal, then this field is null. In this case, consult the generic outage_durations field, which breaks down the total outage duration per Component.

required
object (PagedArray)

A PagedArray of Statuses (if any) that make up this TimelineItem. Typically, this will only contain one Status. However, if multiple sub-operational (i.e. degraded/outage) Statuses occurred consecutively, then they will each be listed here.

began_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this TimelineItem began affecting the listed components.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Users

Users represent authenticated users of the status page. Each User has an associated email address and Role set. Users can be created directly, or by creating an Invitation for a specific email address.

Unless you have a specific provisioning strategy in mind (e.g. an existing IdP), Users should be created by Invitation, so that the invited User may set their password appropriately.

Depending on a User's Role set, a User may have access to the dashboard. However, without a sufficient Role, a User will only be able to access the status page itself.

Get All Users

Index of Users collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
role
string (ObjectId) ^[a-fA-F0-9]{24}$

Return Users who are currently granted the provided Role ID.

roles[]
Array of strings (ObjectId)

Return Users who are currently granted one or more of the provided Role IDs. To use this query parameter, supply roles[]={role_id} for each {role_id} to return Users for.

email
string

Return Users whose email matches the query parameter by substring match. An incomplete email address (e.g. @example.com, user, user@example, etc.) is an acceptable input to this parameter. This field is ignored if email! is given.

Note: It is possible for email addresses like 0user@example.com to match the query email=user@example.com by substring match. If you require exact matching, use email! as described below.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

email!
string

Return Users whose email field matches the query parameter exactly. A valid email address must be given for this parameter to work correctly.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Users to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A User ObjectId after which the returned array of Users will begin in descending order. Typically, this is used to retrieve the next page of Users in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A User ObjectId before which the returned array of Users will end in descending order. Typically, this is used to retrieve the previous page of Users in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (User) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Create a User

Create a new User. Returns the newly created User.

Authorizations:
basicbearer
Request Body schema: application/json
email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

password
string or null
notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

roles
Array of strings (ObjectId)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "email": "new-user@example.com"
}

Response samples

Content type
application/hal+json
{}

Retrieve Current User

Retrieve the User object for the currently authenticated API key or session.

Authorizations:
basicbearer

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Retrieve a User

Retrieve the given User by ObjectId.

Authorizations:
basicbearer
path Parameters
user_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the User.

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Update a User

Update the given User by ObjectId.

Authorizations:
basicbearer
path Parameters
user_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the User.

Request Body schema: application/json
password
string or null
notification_exclusions
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

roles
Array of strings (ObjectId)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

locale
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

listens_to_level
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "locale": "en"
}

Response samples

Content type
application/hal+json
{}

Delete a User

Delete the given User by ObjectId.

Authorizations:
basicbearer
path Parameters
user_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the User.

Responses

Response samples

Content type
application/hal+json
{
  • "type": "api/error/not_authorized",
  • "logref": "018dfc4c-f98e-7979-9eac-778335bcbf2f",
  • "message": "Insufficient API key permissions."
}

Initiate User Password Reset

Initiates a password reset flow for the given User. The User will receive an email allowing them to reset their password, similar to the User requesting a reset from the Sign-in form.

Authorizations:
basicbearer
path Parameters
user_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the User.

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Force User Sign-out

Forces a User to become signed out on all devices by resetting their remember token.

Authorizations:
basicbearer
path Parameters
user_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the User.

Responses

Response Schema: application/hal+json
notification_exclusions
required
Array of strings (ObjectId)

A list of Component ObjectIds that this User will ignore notifications regarding.

A specific notification is suppressed exactly when all of the Event's component context is excluded by this list. If any of an Event's component context remains unexcluded by the User, then a notification will be sent.

created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was created.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this User.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this User was last updated.

required
object (PagedArray)

The Role set granted to this User. All Roles granted to this User will appear here, regardless of their scope and the current API context.

email
required
string

The email address associated with this User. Notifications sent to this User will be delivered to this address.

Note: If this address is changed via the API, the old email address will be informed of the change.

required
object (Permissions)

The current Permission set calculated from the User's roles, according to the current API context. Thus, this field represents the User's Permissions under either the global account, or a specific status page, depending on the API that this User is retrieved from.

locale
required
string or null (maybe-string)

The language in which to render notifications sent to this User. The string should be a supported IETF BCP 47 language tag (e.g. en, de, pt-BR, etc.).

When this field is null, the default language of your Account will be used when rendering notifications.

listens_to
required
Array of strings (NotificationEvents) unique
Items Enum: "restored" "degraded" "issue_upcoming" "issue_retrospectively_created" "-issue_retrospectively_created" "informational_issue_created" "-informational_issue_created" "scheduled_issue_created" "-scheduled_issue_created" "issue_created" "issue_reopened" "-issue_reopened" "issue_resolved" "-issue_resolved" "issue_addended" "-issue_addended" "issue_updated" "issue_cancelled" "issue_started" "issue_ended" "notifier_tested"

A list of notification events that this User will listen for. Prefixing an event name with - (e.g. -issue_reopened) denotes that the event should be explicitly suppressed (useful when including superevents like issue_updated which implicitly includes events like issue_reopened).

To read more about the various notification event types encountered within Hund, please read this article.

type
required
string
Value: "user"
listens_to_level
required
string (NOTIFICATION_LISTEN_LEVEL)
Enum: "all" "normal" "custom"

A string representation of the listens_to array, when it matches a specific preset. This field can also be used to set listens_to according to a preset in forms.

  • all: listen to all event types.
  • normal: listen to most event types, except for generic issue_updated (listens only for issue_resolved instead)
  • custom: the current listens_to array does not match one of the above presets
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Roles

Roles represent a specific set of Permissions that are granted to Users of that Role. There are two main types of Roles: "builtin" and "custom".

Builtin Roles are generated automatically, and cannot be modified nor deleted. Roles like admin and team_member are examples of builtin Roles.

Custom Roles can be created via this API at any time, and may be modified or deleted as necessary.

A Role may also be scoped to a specific status page, implying that Users of that Role are granted the specific Permissions of the Role, but only for objects associated with the scoped status page. An "unscoped" or "global" Role grants the Role's Permissions across the entire account.

Get All Roles

Index of Roles collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
builtin
boolean
Default: false

When true, returns only Roles where builtin is true. When false, performs no filtering.

custom
boolean
Default: false

When true, returns only Roles where builtin is false (i.e. custom). When false, performs no filtering.

ROLE_SCOPE_GLOBAL (string) or ObjectId (string)

Return Roles whose scope matches the provided one.

slug
string

Return Roles of this specific slug. Roles can only be modified by slug, thus affecting all Role objects with the same slug.

user
string (ObjectId) ^[a-fA-F0-9]{24}$

Return Roles that are currently granted to the given User.

invitation
string (ObjectId) ^[a-fA-F0-9]{24}$

Return Roles that are currently granted to the given Invitation.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Roles to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Role ObjectId after which the returned array of Roles will begin in descending order. Typically, this is used to retrieve the next page of Roles in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Role ObjectId before which the returned array of Roles will end in descending order. Typically, this is used to retrieve the previous page of Roles in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Role) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 10,
  • "has_more": true,
  • "data": [
    • {
      },
    • {
      },
    • {},
    • {
      },
    • {
      },
    • {
      },
    • {},
    • {
      },
    • {
      },
    • {
      }
    ],
}

Create Custom Roles

Create a new set of custom Roles. Returns the newly created Roles. Each Role in the returned set will share the same slug, derived from the given name, one for each possible scope on your account.

If any status pages are added/removed later on, appropriately scoped roles for each page are automatically provisioned for every Role slug on your account.

Authorizations:
basicbearer
Request Body schema: application/json
name
required
string

The human-readable name of this Role.

object (Permissions)

The set of Permissions that this Role grants access to, under the given scope.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Role) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "name": "Issue Creators",
  • "permissions": {
    • "issue": {
      }
    }
}

Response samples

Content type
application/hal+json
{}

Update Custom Roles by Slug

Update the given Roles by slug. Only one slug may be updated at a time via this collection-based method.

Authorizations:
basicbearer
query Parameters
slug
required
string

The slug defining the set of Roles to update.

Request Body schema: application/json
name
string

The human-readable name of this Role.

object (Permissions)

The set of Permissions that this Role grants access to, under the given scope.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Role) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "permissions": {
    • "issue_template": {
      }
    }
}

Response samples

Content type
application/hal+json
{}

Delete Custom Roles by Slug

Delete the given Roles by slug. Only one slug may be deleted at a time via this collection-based method.

Authorizations:
basicbearer
query Parameters
slug
required
string

The slug defining the set of Roles to delete.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Role) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Retrieve a Role

Retrieve the given Role by ObjectId.

Authorizations:
basicbearer
path Parameters
role_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Role.

Responses

Response Schema: application/hal+json
name
required
string

The human-readable name of this Role.

slug
required
string

A machine-friendly slug, unique to this Role family (i.e. unique up to scope).

required
ROLE_SCOPE_GLOBAL (string) or ObjectId (string) (ROLE_SCOPE)

The scope over which this Role pertains. This can be either the string global, implying an account-wide Role, or a specific status page ID.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Role.

required
object (Permissions)

The set of Permissions that this Role grants access to, under the given scope.

builtin
required
boolean

Whether or not this Role is an immutable, automatically generated, builtin Role. When false, implies that this is a "custom" Role.

type
required
string
Value: "role"
object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "5b4d1c058fbb652e3d3e1817",
  • "type": "role",
  • "name": "Admin (Global)",
  • "slug": "admin",
  • "scope": "global",
  • "builtin": true,
  • "permissions": {
    • "component": {
      },
    • "group": {
      },
    • "issue": {
      },
    • "issue_template": {
      },
    • "metric_provider": {
      },
    • "notifier": {
      },
    • "subscription": {
      },
    • "watchdog": {
      },
    • "status": {
      },
    • "reason": {
      },
    • "event": {
      },
    • "timeline": {
      },
    • "user": {
      },
    • "role": {
      },
    • "invitation": {
      },
    • "request_log": {
      }
    },
}

Invitations

Invitations are one method for provisioning Users. When an Invitation object is created, an email is immediately sent to the chosen address of the Invitation.

This email contains a secure token that allows the recipient to create a new User object with their chosen credentials. Once the token has been used to provision a User, the Invitation enters the "redeemed" state, preventing further usage of the Invitation.

Get All Invitations

Index of Invitations collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
active
boolean
Default: false

When true, returns only Invitations where redeemed is false (i.e. active). When false, performs no filtering.

redeemed
boolean
Default: false

When true, returns only Invitations where redeemed is true. When false, performs no filtering.

role
string (ObjectId) ^[a-fA-F0-9]{24}$

Return Invitations who are currently granted the provided Role ID.

roles[]
Array of strings (ObjectId)

Return Invitations who are currently granted one or more of the provided Role IDs. To use this query parameter, supply roles[]={role_id} for each {role_id} to return Invitations for.

email
string

Return Invitations whose email matches the query parameter by substring match. An incomplete email address (e.g. @example.com, user, user@example, etc.) is an acceptable input to this parameter. This field is ignored if email! is given.

Note: It is possible for email addresses like 0user@example.com to match the query email=user@example.com by substring match. If you require exact matching, use email! as described below.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

email!
string

Return Invitations whose email field matches the query parameter exactly. A valid email address must be given for this parameter to work correctly.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of Invitations to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A Invitation ObjectId after which the returned array of Invitations will begin in descending order. Typically, this is used to retrieve the next page of Invitations in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A Invitation ObjectId before which the returned array of Invitations will end in descending order. Typically, this is used to retrieve the previous page of Invitations in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (Invitation) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Create a Invitation

Create a new Invitation. Returns the newly created Invitation.

Authorizations:
basicbearer
Request Body schema: application/json
email
required
string

The email address associated with this Invitation. A message containing a secure token will be sent to this address when an Invitation is first created.

Note: This field cannot be changed once the Invitation is created. In order to invite a different email address, a new Invitation must be created instead. If an email was invited by mistake, simply delete that Invitation.

roles
Array of strings (ObjectId)

The Role set that will be granted to the new User upon redemption of this Invitation.

Responses

Response Schema: application/hal+json
created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was created.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Invitation.

required
object (RoleSet)

The Role set that will be granted to the new User upon redemption of this Invitation.

redeemed
required
boolean

Whether or not this Invitation has been redeemed.

required
object (Permissions)

The calculated set of Permissions that will be granted to the User upon redemption of this Invitation, according to the configured roles.

email
required
string

The email address associated with this Invitation. A message containing a secure token will be sent to this address when an Invitation is first created.

Note: This field cannot be changed once the Invitation is created. In order to invite a different email address, a new Invitation must be created instead. If an email was invited by mistake, simply delete that Invitation.

redeemed_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Invitation was redeemed. This field is null if the Invitation hasn't been redeemed yet.

type
required
string
Value: "invitation"
token
required
string

The secure token that is sent to the email of this Invitation. This token is used to authenticate the request to provision a new User. This token is also provided in the redeem-form link, which points to the HTML form to create a new User via this Invitation.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "email": "new-user@example.com"
}

Response samples

Content type
application/hal+json
{}

Retrieve a Invitation

Retrieve the given Invitation by ObjectId.

Authorizations:
basicbearer
path Parameters
invitation_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Invitation.

Responses

Response Schema: application/hal+json
created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was created.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Invitation.

required
object (RoleSet)

The Role set that will be granted to the new User upon redemption of this Invitation.

redeemed
required
boolean

Whether or not this Invitation has been redeemed.

required
object (Permissions)

The calculated set of Permissions that will be granted to the User upon redemption of this Invitation, according to the configured roles.

email
required
string

The email address associated with this Invitation. A message containing a secure token will be sent to this address when an Invitation is first created.

Note: This field cannot be changed once the Invitation is created. In order to invite a different email address, a new Invitation must be created instead. If an email was invited by mistake, simply delete that Invitation.

redeemed_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Invitation was redeemed. This field is null if the Invitation hasn't been redeemed yet.

type
required
string
Value: "invitation"
token
required
string

The secure token that is sent to the email of this Invitation. This token is used to authenticate the request to provision a new User. This token is also provided in the redeem-form link, which points to the HTML form to create a new User via this Invitation.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{}

Update a Invitation

Update the given Invitation by ObjectId.

Authorizations:
basicbearer
path Parameters
invitation_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Invitation.

Request Body schema: application/json
roles
Array of strings (ObjectId)

The Role set that will be granted to the new User upon redemption of this Invitation.

Responses

Response Schema: application/hal+json
created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was created.

updated_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this Invitation was last updated.

id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of this Invitation.

required
object (RoleSet)

The Role set that will be granted to the new User upon redemption of this Invitation.

redeemed
required
boolean

Whether or not this Invitation has been redeemed.

required
object (Permissions)

The calculated set of Permissions that will be granted to the User upon redemption of this Invitation, according to the configured roles.

email
required
string

The email address associated with this Invitation. A message containing a secure token will be sent to this address when an Invitation is first created.

Note: This field cannot be changed once the Invitation is created. In order to invite a different email address, a new Invitation must be created instead. If an email was invited by mistake, simply delete that Invitation.

redeemed_at
required
integer or null <int64> (maybe-timestamp) >= 0

The UNIX timestamp at which this Invitation was redeemed. This field is null if the Invitation hasn't been redeemed yet.

type
required
string
Value: "invitation"
token
required
string

The secure token that is sent to the email of this Invitation. This token is used to authenticate the request to provision a new User. This token is also provided in the redeem-form link, which points to the HTML form to create a new User via this Invitation.

object (HAL Links)

An object describing the various link relations for this type.

Request samples

Content type
application/json
{
  • "roles": [ ]
}

Response samples

Content type
application/hal+json
{}

Delete a Invitation

Delete the given Invitation by ObjectId.

Authorizations:
basicbearer
path Parameters
invitation_id
required
string (ObjectId) ^[a-fA-F0-9]{24}$

The ObjectId of the of the Invitation.

Responses

Response samples

Content type
application/hal+json
{
  • "type": "api/error/not_authorized",
  • "logref": "018e0bef-a505-7623-893c-44c1f51e72b1",
  • "message": "Insufficient API key permissions."
}

RequestLogs

A log of API and dashboard requests, which can serve as an audit log of actions taken by Users against your account.

Get All RequestLogs

Index of RequestLogs collection. Returns a PagedArray.

Authorizations:
basicbearer
query Parameters
successful
boolean

When true, return only RequestLogs with success response. When false, returns RequestLogs with failed response.

source
string
Enum: "dashboard" "api"

Return RequestLogs only from the given source.

response_code
integer >= 0

Return RequestLogs with the given response code.

verb
string

Return RequestLogs with the given HTTP verb.

email
string

Return RequestLogs whose email matches the query parameter by substring match. An incomplete email address (e.g. @example.com, user, user@example, etc.) is an acceptable input to this parameter. This field is ignored if email! is given.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

email!
string

Return RequestLogs whose email field matches the query parameter exactly. A valid email address must be given for this parameter to work correctly.

Note: Email addresses are case insensitive. Any casing given to this parameter will be ignored.

domain
string

Return RequestLogs for requests made on the given domain.

ip_address
string

Return RequestLogs for requests made by the given IP address.

user
string (ObjectId) ^[a-fA-F0-9]{24}$

Return RequestLogs for requests made by the given User.

api_key
string (ObjectId) ^[a-fA-F0-9]{24}$

Return RequestLogs for requests made by the given API key.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=3

The number of RequestLogs to return per page.

starting_after
string (ObjectId) ^[a-fA-F0-9]{24}$

A RequestLog ObjectId after which the returned array of RequestLogs will begin in descending order. Typically, this is used to retrieve the next page of RequestLogs in descending order.

ending_before
string (ObjectId) ^[a-fA-F0-9]{24}$

A RequestLog ObjectId before which the returned array of RequestLogs will end in descending order. Typically, this is used to retrieve the previous page of RequestLogs in descending order.

Responses

Response Schema: application/hal+json
has_more
required
boolean

Whether or not there are more objects after this page in descending order. When false, this page is the final page of objects in descending order.

total_count
required
integer >= 0

The total number of objects in data.

type
required
string
Value: "paged_array"
required
Array of objects (RequestLog) unique

An array of the objects in this page.

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "type": "paged_array",
  • "total_count": 5,
  • "has_more": true,
  • "data": [
    • {
      },
    • {
      },
    • {
      },
    • {
      },
    • {
      }
    ],
}

Retrieve a RequestLog

Retrieve the given RequestLog by ObjectId.

Authorizations:
basicbearer
path Parameters
request_log_id
required
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

The UUID of the of the RequestLog.

Responses

Response Schema: application/hal+json
required
(User (object or null)) or (ObjectId (string or null))
created_at
required
integer <int64> (timestamp) >= 0

The UNIX timestamp at which this RequestLog was generated.

request_body
required
string or null
api_version
required
string or null (maybe-string)

The version of the REST API that this request was made under. This field is null if source is not api.

domain
required
string

The status page domain at which this request was made.

id
required
string (UUID) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

The UUID of this RequestLog. This is the same value that is sent in the Request-Id response header.

source
required
string (REQUEST_LOG_SOURCE)
Enum: "dashboard" "api"

The source of this request within Hund. This field takes on two values:

  • dashboard: The request originated from the Hund dashboard.
  • api: The request originated from the Hund REST API.
response_body
required
string or null
email
required
string or null (maybe-string)

The email address associated with the User at the time this request was made. This value never changes, even if the associated User changes email addresses, or is deleted.

path
required
string

The HTTP path at which this request was made.

api_key
required
string or null (Maybe(ObjectId)) ^[a-fA-F0-9]{24}$

The API key that was used to make this request, if applicable. This field is null when source is dashboard.

required
object or null (Maybe(json-object))

An object containing the key-value pairs used in the query string of this request. This field is null if the query string was empty.

locale
required
string

An IETF BCP 47 language tag denoting the locale of the response.

response_code
required
integer (nonnegative-integer) >= 0

The HTTP response code returned by the server.

ip_address
required
string

The IP address that this request originated from.

user_agent
required
string

The User-Agent header that was sent to the server in the request.

type
required
string
Value: "request_log"
verb
required
string

The HTTP verb used to make this request.

successful
required
boolean

When true, implies that this request had a successful response (response_code < 400); when false, implies that this request failed (response_code >= 400).

object (HAL Links)

An object describing the various link relations for this type.

Response samples

Content type
application/hal+json
{
  • "id": "018e0c06-3e69-75bd-b2a0-ae2fad58b6f2",
  • "type": "request_log",
  • "created_at": 1709598719,
  • "user": "5ad4fcb18fbb650f596df4a7",
  • "api_key": "5ec6e3f58fbb6545cc9dba5a",
  • "successful": true,
  • "source": "api",
  • "email": "user@example.com",
  • "domain": "status.example.com",
  • "path": "/api/v1/request_logs",
  • "verb": "get",
  • "response_code": 200,
  • "ip_address": "192.0.2.14",
  • "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
  • "locale": "en",
  • "api_version": "2021-09-01",
  • "query": null,
  • "request_body": null,
  • "response_body": null,
}