Sending and verifying a payload | laravel-uptime-monitor | Spatie

 SPATIE

  Laravel Uptime Monitor
=========================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-uptime-monitor](https://spatie.be/docs/laravel-uptime-monitor/v3)  Advanced-usage  Sending and verifying a payload

 Version   v3   v2   v1

 Other versions for crawler [v3](https://spatie.be/docs/laravel-uptime-monitor/v3) [v2](https://spatie.be/docs/laravel-uptime-monitor/v2) [v1](https://spatie.be/docs/laravel-uptime-monitor/v1)

- [ Introduction ](https://spatie.be/docs/laravel-uptime-monitor/v3/introduction)
- [ Postcardware ](https://spatie.be/docs/laravel-uptime-monitor/v3/postcardware)
- [ Requirements ](https://spatie.be/docs/laravel-uptime-monitor/v3/requirements)
- [ Upgrading from a previous version ](https://spatie.be/docs/laravel-uptime-monitor/v3/upgrading-from-v2)
- [ High level overview ](https://spatie.be/docs/laravel-uptime-monitor/v3/high-level-overview)
- [ Installation and setup ](https://spatie.be/docs/laravel-uptime-monitor/v3/installation-and-setup)
- [ Questions &amp; issues ](https://spatie.be/docs/laravel-uptime-monitor/v3/questions-and-issues)
- [ Changelog ](https://spatie.be/docs/laravel-uptime-monitor/v3/changelog)
- [ About us ](https://spatie.be/docs/laravel-uptime-monitor/v3/about-us)

Monitoring uptime
-----------------

- [ Adding and removing sites ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-uptime/getting-started)
- [ Events ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-uptime/events)
- [ Notifications ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-uptime/notifications)

Monitoring ssl certificates
---------------------------

- [ Getting started ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-ssl-certificates/getting-started)
- [ Events ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-ssl-certificates/events)
- [ Notifications ](https://spatie.be/docs/laravel-uptime-monitor/v3/monitoring-ssl-certificates/notifications)

Advanced usage
--------------

- [ Manually modifying monitors ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/manually-modifying-monitors)
- [ Syncing monitors from a file ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/syncing-monitors-from-a-file)
- [ Customizing the uptime check ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/customizing-the-uptime-check)
- [ Customizing notifications ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/customizing-notifications)
- [ Disabling monitors ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/disabling-monitors)
- [ Using your own model ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/using-your-own-model)
- [ Monitoring from multiple locations ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/monitoring-from-multiple-locations)
- [ Sending and verifying a payload ](https://spatie.be/docs/laravel-uptime-monitor/v3/advanced-usage/sending-and-verifying-a-payload)

 Sending and verifying a payload
===============================

There are cases in which you would like to send a payload and verify the response to determine if its services are up and active for example, if you need to determine if a down stream service is connected and functioning correctly.

To achieve this, you will need to manually update a few fields in the database and optionally create a custom response checker specifically for that monitor to verify the response from the uptime monitor request.

In this example, you will need to set the following fields in the database:

- `uptime_check_method`: `POST`
- `uptime_check_payload`: `{"foo":"bar"}`
- `uptime_check_additional_headers`: `{"Content-Type":"application/json"}`
- `uptime_check_response_checker`: `App\ResponseCheckers\ExampleChecker`

*More details on these fields can be found in the section "[Manually Modifying Monitors](/laravel-uptime-monitor/v3/advanced-usage/manually-modifying-monitors)"*

We will want to do some custom verification specifically for the response of this check.

Our checker could look something like the following:

```
