---
title: Check-ins
description: Get notified when cron jobs and scheduled tasks have errors or don't run on time.
url: https://docs.honeybadger.io/guides/check-ins/
---

Your Honeybadger account comes with check-ins, a way for the processes running on your servers to report that they are alive. Once configured, should a check-in go missing, Honeybadger will send you an alert to let you know that your process has stopped reporting. This is especially useful for monitoring cron jobs, so you can avoid having a cron job silently fail and go unnoticed.

![Check-Ins overview](https://docs.honeybadger.io/_astro/check_ins.-E2J2HRn_Z1FEJto.webp)

## Setup

When you create a check-in, you’ll configure the following options:

![Check-in creation form](https://docs.honeybadger.io/_astro/check_in_form.5H-aO53g_1iDIty.webp)

### Name

A label for your check-in. If not provided, a token identifier will be used.

### Slug

An optional human-readable identifier that can be used as an alternate check-in URL. See [Slugs](https://docs.honeybadger.io/guides/check-ins/#slugs) below.

### Schedule type

Choose **Simple** to check in at a regular interval, or **Cron** to use a cron expression for advanced scheduling.

#### Simple

Honeybadger will watch the process at an interval you define.

##### Report period

How often you expect the check-in to report (e.g., “1 hour”).

#### Cron

Cron scheduling allows you to use a cron expression to create an advanced check-in schedule or mirror the cron schedule on your server.

##### Schedule

The cron expression (e.g., `*/5 * * * *`).

##### Time zone

The time zone of the server where cron is running.

### Grace period

An optional grace period allows some time for long-running tasks to be completed before Honeybadger sends a notification due to a lack of reporting. For example, if you have a job that reports every hour but can take up to twenty minutes to run, you can specify a grace period of twenty minutes, and Honeybadger will allow up to one hour and twenty minutes to elapse before a notification is sent.

## Reporting

When you create a new check-in, you’ll get a URL that you can use to report that your process is alive. The easiest way to report a check-in is with [the Honeybadger CLI’s`hb check-in`command](https://docs.honeybadger.io/resources/cli/#check-in):

```sh
@hourly /usr/bin/do_something && hb check-in --id XyZZy
```

Or use `curl` to fetch the check-in URL directly:

```sh
@hourly /usr/bin/do_something && curl https://api.honeybadger.io/v1/check_in/XyZZy &> /dev/null
```

See the [API docs](https://docs.honeybadger.io/api/reporting-check-ins/) for more information about the data you can send when reporting a check-in.

You will also get an email address you can use for reporting the status of your process. No subject or body text is required, but the email address *is* case-sensitive:

```sh
@hourly /usr/bin/do_something && echo | mail XyZZy@report.hbchk.in
```

Please note that while these examples use cron, you can trigger check-in reporting from the shell, a scheduled background job, or any other process that can request a URL or send an email.

## Slugs

A slug is an optional, human-readable identifier for a check-in. When you add a slug, you get an alternate check-in URL that uses the slug and a [project API key](https://docs.honeybadger.io/guides/projects/#api-keys) instead of the check-in ID. This is useful if you don’t want to embed check-in IDs in your code or automated systems. For example, if you specify a slug of `hourly-check`, your alternate check-in URL will look like:

```sh
https://api.honeybadger.io/v1/check_in/hbp_ABC/hourly-check
```

You can add a slug when creating a check-in in the UI, via the [REST API](https://docs.honeybadger.io/api/check-ins/#create-a-check-in), or in a config file using our [PHP/Laravel](https://docs.honeybadger.io/lib/php/guides/configuring-checkins/) and [JavaScript](https://docs.honeybadger.io/lib/javascript/guides/check-ins/) client libraries.

## Payloads

You can POST a small payload to the UI that includes the results of the command you ran, including the command’s output, exit code, and duration. Please see our [API documentation](https://docs.honeybadger.io/api/reporting-check-ins/#check-in-payloads) for the format of that payload.

![Check-in payloads](https://docs.honeybadger.io/_astro/checkin-payloads.PhMr8LYv_Z22oS8s.webp)

The easiest way to send check-in payloads is to use [the Honeybadger CLI’s`hb run`command](https://docs.honeybadger.io/resources/cli/#run) to wrap your scheduled command:

```shell
hb run --id XyZZy -- /usr/local/bin/backup.sh
```

Or [POST directly to the check-in API](https://docs.honeybadger.io/api/reporting-check-ins/#check-in-payloads) with a JSON payload:

```bash
curl -X POST https://api.honeybadger.io/v1/check_in/XyZZy \
  -H "Content-Type: application/json" \
  -d '{"check_in": {"status": "success", "duration": 1234, "stdout": "backup completed"}}'
```

You can view the payload data in your check-in history or query it in [Insights](https://docs.honeybadger.io/guides/insights/).

## Notifications

![Check-in alerts configuration](https://docs.honeybadger.io/_astro/check_in_alerts.CfIwcD8D_1yKAqe.webp)

When your check-in goes missing, we’ll notify you with information about which job failed to report on time. You can enable or disable these notifications along with the rest of the notification events in your Personal Alerts or Project Integrations settings.

## Status page integration

Check out our [Status Pages](https://docs.honeybadger.io/guides/status-pages/#uptime-checks) feature for information on how to present the status your check-ins to your users.

---

## Try Honeybadger for FREE

Intelligent logging, error tracking, and Just Enough APM™ in one dev-friendly platform. Find and fix problems before users notice.

[Start free trial](https://app.honeybadger.io/users/sign_up)

[See plans and pricing](https://www.honeybadger.io/plans/)
