> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sending process monitor events using the AppSignal API

Before sending process monitor events to AppSignal, you must first [create a process monitor in AppSignal](/check-ins/create#create-a-process-monitor).

You can send process monitor events to AppSignal by performing HTTP POST requests to the AppSignal API, using any HTTP client. The examples in this page provide a sample cURL command, as well as the raw HTTP method and URL to use with any HTTP client of your choice.

In the examples below, replace `YOUR-APP-LEVEL-API-KEY` with the AppSignal app-level push API key for your app, which can be found in [your application's "Push & Deploy" settings](https://appsignal.com/redirect-to/app?to=api_keys\&key_tab=app), and `YOUR-PROCESS-MONITOR-IDENTIFIER` with the identifier of the process monitor you wish to send events to.

<Note>
  The Process Monitoring API still uses `check_ins` in endpoint URLs for
  compatibility with existing integrations.
</Note>

## Sending cron process monitor events

Cron process monitors are used to monitor the execution of scheduled jobs, such as cron jobs. AppSignal will expect to receive a finish cron process monitor event according to its configured schedule, and will notify you if no finish cron process monitor event is received within its configured maximum duration.

Additionally, you can send start cron process monitor events to AppSignal to notify that a cron process monitor event has started, allowing you to measure the duration of your cron jobs.

### Finish cron process monitor

To notify AppSignal that a cron job has finished successfully, send a POST request to the AppSignal API with the following URL query parameters:

<CodeGroup>
  ```curl Curl theme={null}
  curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/cron' \
    -d 'api_key=YOUR-APP-LEVEL-API-KEY' \
    -d 'identifier=YOUR-PROCESS-MONITOR-IDENTIFIER'
  ```

  ```http HTTP theme={null}
  POST https://appsignal-endpoint.net/check_ins/cron
    ?api_key=YOUR-APP-LEVEL-API-KEY
    &identifier=YOUR-PROCESS-MONITOR-IDENTIFIER
  ```
</CodeGroup>

AppSignal will notify you if no finish cron process monitor event is received within the cron process monitor's configured maximum duration.

### Start cron process monitor

Sending a start cron process monitor event is entirely optional. Doing so allows you to measure the duration of your cron jobs.

To notify AppSignal that a cron job has started, send a POST request to the AppSignal API with the following URL query parameters:

<CodeGroup>
  ```curl Curl theme={null}
  curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/cron' \
    -d 'api_key=YOUR-APP-LEVEL-API-KEY' \
    -d 'identifier=YOUR-PROCESS-MONITOR-IDENTIFIER' \
    -d 'kind=start'
  ```

  ```http HTTP theme={null}
  POST https://appsignal-endpoint.net/check_ins/cron
    ?api_key=YOUR-APP-LEVEL-API-KEY
    &identifier=YOUR-PROCESS-MONITOR-IDENTIFIER
    &kind=start
  ```
</CodeGroup>

#### Sending a digest

When sending a start cron process monitor, we recommend sending a digest for both the start and finish events. The digest is an arbitrary value that is used to correlate the start and finish cron process monitor events. It should be the same for both the start and finish events, and it should be unique for each pair of start and finish events.

Sending a digest is optional, but it is highly recommended when sending a start cron process monitor event, as it ensures that the start and finish events are correlated correctly.

<CodeGroup>
  ```curl Curl theme={null}
  curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/cron' \
    ... \
    -d 'digest=abc123'
  ```

  ```http HTTP theme={null}
  POST https://appsignal-endpoint.net/check_ins/cron
    ...
    &digest=abc123
  ```
</CodeGroup>

## Sending heartbeat process monitor events

Heartbeat process monitors are used to monitor the uptime of a process that should run continuously, such as a server application or a background job processor. AppSignal will expect to receive heartbeat process monitor events continuously, and will notify you if no heartbeat process monitor event is received within its configured maximum duration.

To send a heartbeat process monitor event to AppSignal, send a POST request to the AppSignal API with the following URL query parameters:

<CodeGroup>
  ```curl Curl theme={null}
  curl -D - -X POST -G 'https://appsignal-endpoint.net/check_ins/heartbeats' \
    -d 'api_key=YOUR-APP-LEVEL-API-KEY' \
    -d 'identifier=YOUR-PROCESS-MONITOR-IDENTIFIER'
  ```

  ```http HTTP theme={null}
  POST https://appsignal-endpoint.net/check_ins/heartbeats
    ?api_key=YOUR-APP-LEVEL-API-KEY
    &identifier=YOUR-PROCESS-MONITOR-IDENTIFIER
  ```
</CodeGroup>
