Synthetic Tests
Moneat's synthetic testing runs automated HTTP tests against your APIs on a configurable schedule. Tests run from Moneat's own infrastructure and results appear in the Synthetics dashboard alongside results from any Datadog-sourced tests.
Synthetic testing is included on standard plans. Scheduled tests count against your monitor limits, and Datadog-sourced synthetic results can appear alongside tests run by Moneat.
Test types
| Type | What it tests |
|---|---|
| API test | A single HTTP request with assertions on the response |
| Multistep API test | A chain of HTTP requests that can pass data between steps |
Creating a test
Navigate to Synthetics in the sidebar and click New Test.
Step 1 - select type
Choose API Test for a single request, or Multistep API Test to chain multiple requests together.
Step 2 - configure the request
For API tests:
| Field | Description |
|---|---|
| Name | A label for the test (required) |
| Method | GET, POST, PUT, PATCH, or DELETE |
| URL | The endpoint to test (required) |
| Headers | Key-value pairs to include in the request |
| Body | Request body for POST/PUT/PATCH requests |
| Auth | None, Basic (username + password), or Bearer token |
For multistep tests:
Add one or more steps. Each step has its own name, URL, method, body, and can extract variables from the response to use in later steps.
Variable extraction - in any step, add an extraction with:
- Variable name - what to call the extracted value (e.g.,
AUTH_TOKEN) - Source -
json_path(e.g.,$.token) orheader(e.g.,Set-Cookie)
Reference extracted variables in later steps using {{AUTH_TOKEN}}.
Step 3 - add assertions
Assertions define what a passing response looks like. The default assertion checks that the status code equals 200.
| Assertion type | Description |
|---|---|
| status_code | HTTP response status code |
| body_contains | Response body includes a string |
| response_time | Response time in milliseconds (use less_than operator) |
| header | A response header matches a value |
Available operators: equals, not_equals, contains, less_than, greater_than.
Step 4 - set the schedule
| Field | Description |
|---|---|
| Interval | How often the test runs (1, 5, 15, 30, or 60 minutes) |
| Timeout | Max seconds to wait for a response before failing (10–60s) |
Click Create Test to save. The test starts running on the next scheduled interval.
Managing tests
The Synthetics page shows all configured tests with their current status, last run time, and interval. From the table you can:
- Run - trigger an immediate test run
- Delete - remove the test permanently
Viewing results
The Test Results table below the tests list shows every run - whether triggered by Moneat's scheduler or reported by a Datadog Agent - with test name, type, pass/fail status, duration, and probe location.